Module: ngircd.git
Branch: master
Commit: f7bdee5f1360a10b3422a6e0a8e28c2be387c2dd
URL: http://ngircd.barton.de/cgi-bin/gitweb.cgi?p=ngircd.git&a=commit;h=f7bdee5f…
Author: Alexander Barton <alex(a)barton.de>
Date: Sun Feb 12 16:48:57 2012 +0100
Update NEWS and ChangeLog files
---
ChangeLog | 9 ++++++++-
NEWS | 2 ++
2 files changed, 10 insertions(+), 1 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index b7083db..c633228 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -11,6 +11,12 @@
ngIRCd Release 19
+ - Enhance command limits for server links: the limit now is dependent
+ on the number of users connected in the network and higher while
+ servers are joining the network to make the login of servers faster.
+ - Log more information about server synchronization.
+ - Update preliminary ngIRCd protocol module for Anope 1.9.6, which now
+ is the only supported version.
- New numeric RPL_WHOISHOST_MSG(378), which returns the DNS hostname
(if available) and the IP address of a client in the WHOIS reply.
Only the user itself and local IRC operators get this numeric.
@@ -31,7 +37,8 @@ ngIRCd Release 19
- Fix both ERR_SUMMONDISABLED(445) and ERR_USERSDISABLED(446) replies.
- MODE command: correctly return ERR_UNKNOWNMODE(472) numeric for
unknown channel modes, instead of ERR_UMODEUNKNOWNFLAG(501).
- - ISUPPORT(005) numeric: add "O", "R", and "z" modes to "CHANMODES".
+ - ISUPPORT(005) numeric: add "O", "R", and "z" modes to "CHANMODES",
+ add "EXCEPTS=e" and "INVEX=I", add "MAXLIST=beI:50".
- Limit the number of list items in the reply of LIST (100), WHO (25),
WHOIS (10), and WHOWAS (25) commands.
- LIST command: compare pattern case insensitive.
diff --git a/NEWS b/NEWS
index 054780e..78447ab 100644
--- a/NEWS
+++ b/NEWS
@@ -10,6 +10,8 @@
ngIRCd Release 19
+ - Update preliminary ngIRCd protocol module for Anope 1.9.6, which now
+ is the only supported version.
- New numeric RPL_WHOISHOST_MSG(378), which returns the DNS hostname
(if available) and the IP address of a client in the WHOIS reply.
Only the user itself and local IRC operators get this numeric.
Module: ngircd.git
Branch: master
Commit: 871760583cb4f90e908d3dac94679ce876d78c83
URL: http://ngircd.barton.de/cgi-bin/gitweb.cgi?p=ngircd.git&a=commit;h=87176058…
Author: Alexander Barton <alex(a)barton.de>
Date: Tue Jan 24 02:55:53 2012 +0100
Enhance server command limits
This patch updates the limits for handling commands from a remote server:
- "<user count> / 5 + <min>" using "<min>=10" during normal operation,
- the above count multiplied with 5 while servers are syncing.
The intention is to a) make the limit dependent of the number of users
in the network (the more users, the more commands required to sync) and
b) to significantly rise this limit while servers are joining the network
to make the login and synchronization faster.
---
src/ngircd/conn.c | 17 ++++++++---------
1 files changed, 8 insertions(+), 9 deletions(-)
diff --git a/src/ngircd/conn.c b/src/ngircd/conn.c
index f743d1f..71dc939 100644
--- a/src/ngircd/conn.c
+++ b/src/ngircd/conn.c
@@ -82,8 +82,8 @@
#define SERVER_WAIT (NONE - 1)
#define MAX_COMMANDS 3
-#define MAX_COMMANDS_SERVER 10
-#define MAX_COMMANDS_SERVICE MAX_COMMANDS_SERVER
+#define MAX_COMMANDS_SERVER_MIN 10
+#define MAX_COMMANDS_SERVICE 10
static bool Handle_Write PARAMS(( CONN_ID Idx ));
@@ -1674,16 +1674,15 @@ Handle_Buffer(CONN_ID Idx)
assert(c != NULL);
- /* Servers do get special command limits, so they can process
- * all the messages that are required while peering. */
+ /* Servers get special command limits that depend on the user count */
switch (Client_Type(c)) {
case CLIENT_SERVER:
- /* Allow servers to send more commands in the first 10 secods
+ maxcmd = (int)(Client_UserCount() / 5)
+ + MAX_COMMANDS_SERVER_MIN;
+ /* Allow servers to handle even more commands while peering
* to speed up server login and network synchronisation. */
- if (starttime - Client_StartTime(c) < 10)
- maxcmd = MAX_COMMANDS_SERVER * 5;
- else
- maxcmd = MAX_COMMANDS_SERVER;
+ if (Conn_LastPing(Idx) == 0)
+ maxcmd *= 5;
break;
case CLIENT_SERVICE:
maxcmd = MAX_COMMANDS_SERVICE; break;