From eca340b7851c8c56d868d136584c1ea234497ffc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com> Date: Fri, 8 Nov 2019 15:29:53 -0500 Subject: [PATCH] tools: add argument to disable rate limiting --- tools/dhtchat.cpp | 4 ++++ tools/dhtnode.cpp | 4 ++++ tools/tools_common.h | 7 ++++++- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/tools/dhtchat.cpp b/tools/dhtchat.cpp index 3ba7c6f4..5c7e72c1 100644 --- a/tools/dhtchat.cpp +++ b/tools/dhtchat.cpp @@ -82,6 +82,10 @@ main(int argc, char **argv) config.push_token = params.devicekey; config.peer_discovery = params.peer_discovery; config.peer_publish = params.peer_discovery; + if (params.no_rate_limit) { + config.dht_config.node_config.max_req_per_sec = -1; + config.dht_config.node_config.max_peer_req_per_sec = -1; + } dht::DhtRunner::Context context {}; if (params.log) { diff --git a/tools/dhtnode.cpp b/tools/dhtnode.cpp index b80d8cb8..31eca901 100644 --- a/tools/dhtnode.cpp +++ b/tools/dhtnode.cpp @@ -552,6 +552,10 @@ main(int argc, char **argv) config.push_token = params.devicekey; config.peer_discovery = params.peer_discovery; config.peer_publish = params.peer_discovery; + if (params.no_rate_limit) { + config.dht_config.node_config.max_req_per_sec = -1; + config.dht_config.node_config.max_peer_req_per_sec = -1; + } dht::DhtRunner::Context context {}; if (params.log) { diff --git a/tools/tools_common.h b/tools/tools_common.h index bd682a03..f368afda 100644 --- a/tools/tools_common.h +++ b/tools/tools_common.h @@ -131,6 +131,7 @@ struct dht_params { std::string privkey_pwd {}; std::string proxy_privkey_pwd {}; std::string save_identity {}; + bool no_rate_limit {false}; }; static const constexpr struct option long_options[] = { @@ -147,6 +148,7 @@ static const constexpr struct option long_options[] = { {"daemonize", no_argument , nullptr, 'd'}, {"service", no_argument , nullptr, 's'}, {"peer-discovery", no_argument , nullptr, 'D'}, + {"no-rate-limit", no_argument , nullptr, 'U'}, {"persist", required_argument, nullptr, 'f'}, {"logfile", required_argument, nullptr, 'l'}, {"syslog", no_argument , nullptr, 'L'}, @@ -168,7 +170,7 @@ parseArgs(int argc, char **argv) { int opt; std::string privkey; std::string proxy_privkey; - while ((opt = getopt_long(argc, argv, "hidsvDp:n:b:f:l:", long_options, nullptr)) != -1) { + while ((opt = getopt_long(argc, argv, "hidsvDUp:n:b:f:l:", long_options, nullptr)) != -1) { switch (opt) { case 'p': { int port_arg = atoi(optarg); @@ -212,6 +214,9 @@ parseArgs(int argc, char **argv) { case 'n': params.network = strtoul(optarg, nullptr, 0); break; + case 'U': + params.no_rate_limit = true; + break; case 'b': params.bootstrap = dht::splitPort((optarg[0] == '=') ? optarg+1 : optarg); if (not params.bootstrap.first.empty() and params.bootstrap.second.empty()) { -- GitLab