Also check ip_as_username config when applying per-server limit
authorJack Allnutt <m2ys4u@gmail.com>
Sat, 30 Mar 2013 21:38:24 +0000 (21:38 +0000)
committerJack Allnutt <m2ys4u@gmail.com>
Sat, 30 Mar 2013 21:38:24 +0000 (21:38 +0000)
config.example.js
server/irc/state.js

index 03f73cc0556dd0280e07a22ceff22b6b90d5a56b..3a413a3c35eac1756c56a04e52cc8b04b5425579 100644 (file)
@@ -54,7 +54,10 @@ conf.public_http = "client/";
 conf.max_client_conns = 5;
 
 // Max connections per server. 0 to disable.
-// Setting is ignored if there is a WEBIRC password configured for the server or kiwi is running in restricted server mode.
+// Setting is ignored if:
+//   - There is a WEBIRC password configured for the server,
+//   - Kiwi is configured to send the client's ip as a username for the server, or
+//   - Kiwi is running in restricted server mode.
 conf.max_server_conns = 0;
 
 
index 9e7c8d7df383e471c4e02868ebef346e1a3f7b3b..4b368c173dfb5c7ab77cd39f22a6c5afdc24bc04 100755 (executable)
@@ -41,6 +41,7 @@ State.prototype.connect = function (hostname, port, ssl, nick, user, pass, callb
     if ((global.config.max_server_conns > 0) &&
         (!global.config.restrict_server) &&
         (!(global.config.webirc_pass && global.config.webirc_pass[hostname])) &&
+        (!(global.config.ip_as_username && _.contains(global.config.ip_as_username, hostname))) &&
         (global.servers.numOnHost(hostname) >= global.config.max_server_conns))
     {
         return callback('Too many connections to host', {host: hostname, limit: global.config.max_server_conns});