From 62f705f97e580fe61520793b3387081915f240ba Mon Sep 17 00:00:00 2001 From: Alexander Barton Date: Mon, 21 Mar 2011 09:42:01 +0100 Subject: [PATCH] Allow servers to send more commands in the first 10 secods This helps to speed up server login and network synchronisation. --- src/ngircd/conn.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/ngircd/conn.c b/src/ngircd/conn.c index 397bc915..63093c25 100644 --- a/src/ngircd/conn.c +++ b/src/ngircd/conn.c @@ -1629,18 +1629,25 @@ Handle_Buffer(CONN_ID Idx) CLIENT *c; c = Conn_GetClient(Idx); - assert( c != NULL); + starttime = time(NULL); + + assert(c != NULL); /* Servers do get special command limits, so they can process * all the messages that are required while peering. */ switch (Client_Type(c)) { case CLIENT_SERVER: - maxcmd = MAX_COMMANDS_SERVER; break; + /* Allow servers to send more commands in the first 10 secods + * to speed up server login and network synchronisation. */ + if (starttime - Client_StartTime(c) < 10) + maxcmd = MAX_COMMANDS_SERVER * 5; + else + maxcmd = MAX_COMMANDS_SERVER; + break; case CLIENT_SERVICE: maxcmd = MAX_COMMANDS_SERVICE; break; } - starttime = time(NULL); for (i=0; i < maxcmd; i++) { /* Check penalty */ if (My_Connections[Idx].delaytime > starttime)