From 8de15c9d0df59f872fa3d63fbf68028c3143ecfa Mon Sep 17 00:00:00 2001 From: orignal Date: Mon, 1 Feb 2016 18:10:45 -0500 Subject: [PATCH] fixed bandwidth logic --- Config.cpp | 4 ++-- Daemon.cpp | 38 ++++++++++++++++++++++++++------------ 2 files changed, 28 insertions(+), 14 deletions(-) diff --git a/Config.cpp b/Config.cpp index 60af0319..60f6b51d 100644 --- a/Config.cpp +++ b/Config.cpp @@ -114,13 +114,13 @@ namespace config { ("logfile", value()->default_value(""), "Path to logfile (stdout if not set, autodetect if daemon)") ("loglevel", value()->default_value("info"), "Set the minimal level of log messages (debug, info, warn, error)") ("host", value()->default_value(""), "External IP (deprecated)") - ("port", value()->default_value(4567), "Port to listen for incoming connections") + ("port", value()->default_value(0), "Port to listen for incoming connections") ("ipv6", value()->zero_tokens()->default_value(false), "Enable communication through ipv6") ("daemon", value()->zero_tokens()->default_value(false), "Router will go to background after start") ("service", value()->zero_tokens()->default_value(false), "Router will use system folders like '/var/lib/i2pd'") ("notransit", value()->zero_tokens()->default_value(false), "Router will not forward transit traffic") ("floodfill", value()->zero_tokens()->default_value(false), "Router will try to become floodfill") - ("bandwidth", value()->default_value('O'), "Bandwidth limiting: L - 32kbps, O - 256Kbps, P - unlimited (ignored if floodfill)") + ("bandwidth", value()->default_value('-'), "Bandwidth limiting: L - 32kbps, O - 256Kbps, P - unlimited") ; options_description httpserver("HTTP Server options"); diff --git a/Daemon.cpp b/Daemon.cpp index ef74dff3..2fbac28a 100644 --- a/Daemon.cpp +++ b/Daemon.cpp @@ -86,11 +86,15 @@ namespace i2p isLogging = true; uint16_t port; i2p::config::GetOption("port", port); - LogPrint(eLogInfo, "Daemon: accepting incoming connections at port ", port); - i2p::context.UpdatePort (port); + if (port) + { + LogPrint(eLogInfo, "Daemon: accepting incoming connections at port ", port); + i2p::context.UpdatePort (port); + } std::string host; i2p::config::GetOption("host", host); - if (host != "") { + if (host != "") + { LogPrint(eLogInfo, "Daemon: address for incoming connections is ", host); i2p::context.UpdateAddress (boost::asio::ip::address::from_string (host)); } @@ -103,18 +107,28 @@ namespace i2p bool isFloodfill; i2p::config::GetOption("floodfill", isFloodfill); char bandwidth; i2p::config::GetOption("bandwidth", bandwidth); - if (isFloodfill) { - LogPrint(eLogInfo, "Daemon: router will be floodfill, bandwidth set to 'extra'"); + if (isFloodfill) + { + LogPrint(eLogInfo, "Daemon: router will be floodfill"); i2p::context.SetFloodfill (true); - i2p::context.SetExtraBandwidth (); - } else if (bandwidth != '-') { + } + if (bandwidth != '-') + { LogPrint(eLogInfo, "Daemon: bandwidth set to ", bandwidth); - switch (bandwidth) { - case 'P' : i2p::context.SetExtraBandwidth (); break; - case 'L' : i2p::context.SetHighBandwidth (); break; - default : i2p::context.SetLowBandwidth (); break; - } + if (bandwidth > 'O') + i2p::context.SetExtraBandwidth (); + else if (bandwidth > 'L') + i2p::context.SetHighBandwidth (); + else + i2p::context.SetLowBandwidth (); } + else if (isFloodfill) + { + LogPrint(eLogInfo, "Daemon: floodfill bandwidth set to 'extra'"); + i2p::context.SetExtraBandwidth (); + } + else + i2p::context.SetLowBandwidth (); return true; }