Module: ngircd.git Branch: master Commit: 62f705f97e580fe61520793b3387081915f240ba URL: http://ngircd.barton.de/cgi-bin/gitweb.cgi?p=ngircd.git&a=commit;h=62f70...
Author: Alexander Barton alex@barton.de Date: Mon Mar 21 09:42:01 2011 +0100
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 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/src/ngircd/conn.c b/src/ngircd/conn.c index 397bc91..63093c2 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)