From 0b0626181b08bc06652fa551bfc8cd277c927f11 Mon Sep 17 00:00:00 2001 From: clinton Date: Thu, 13 Nov 2008 09:11:10 +0000 Subject: [PATCH] Make rate limiting penalties less severe * The max rate limit penalty is now 20 instead of 5 making the bot more responsive without making it flood; this seems like a reasonable value but may need to be further tweaked * No longer unconditionally add `1' to penalty to decrease the likelihood of the queue being saturated and never getting further than popping the first message --- source/ServerQueue.C | 6 ++++-- source/ServerQueue.H | 2 ++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/source/ServerQueue.C b/source/ServerQueue.C index 9ed8a83..e927c1c 100644 --- a/source/ServerQueue.C +++ b/source/ServerQueue.C @@ -25,6 +25,8 @@ #include "ServerQueue.H" #include "Utils.H" +int ServerQueue::max_penalty = 20; + ServerQueue::ServerQueue(Socket * s, bool d) : Queue(s,d), penalty(0) { @@ -90,10 +92,10 @@ ServerQueue::flush() penalty--; } - while (!serverQueue.empty() && (penalty < 5)) + while (!serverQueue.empty() && (penalty < max_penalty)) { ServerQueueItem * sqi = serverQueue.front (); - penalty += sqi->penalty + sqi->getLine().length()/100 + 1; + penalty += sqi->penalty + sqi->getLine().length()/100; bool res = sendLine(sqi->getLine()); diff --git a/source/ServerQueue.H b/source/ServerQueue.H index 2ae808f..a261248 100644 --- a/source/ServerQueue.H +++ b/source/ServerQueue.H @@ -59,6 +59,8 @@ class ServerQueue : public Queue { int penalty; BotMutex queue_mutex; + static int max_penalty; + public: ServerQueue(Socket *, bool); ~ServerQueue(); -- 2.20.1