Hi,
Yesterday during testing WormNET flood detection we discovered a serious limitation. The WormNET IRC server has an upper limit for the number of simultaneous connections (a little lower than 180). When this limit is reached, users who try to join will see this:
Unfortunately this limit is hard-coded deep in the software, and we can't easily raise it.
I have observed this limit to be reached (and the above error message generated) during the past few weekends, which is unfortunate as it prevents players from connecting to WormNET. For this reason, I added a new module to SheriffBot which attempts to ensure that our very limited number of connection slots is used fairly. During times of very high activity (more than 120 simultaneous users), SheriffBot will kick out users who are idle (just sitting in a channel with no activity), starting with the users who have been idle the longest.
I understand that getting forcibly kicked off WormNET can be unpleasant, especially if you are used to being online all or a lot of the time. However, I count on your understanding that by staying online, you are occupying a slot which can't be used by someone who just wants to connect, join or host a game, and free up the slot for the next person, within the span of usually under a minute.
- Who is affected by this change? - Mostly, snooper / IRC users, or third-party bots. Users who have been online for less than two minutes, or made any public activity less than two minutes ago, are never affected.
- When will this occur? - The change is already live, but this behavior activates only when there are over 120 users in channels simultaneously. This is pretty rare. For comparison, at the time of writing there are 67 users in total.
- What exactly happens when an idle user is detected during high activity? - The user is kicked from WormNET. However, if the user rejoins WormNET and continues being idle, they will be banned for a short duration (1 minute). If this keeps happening, the duration increases (2 minutes, then 3 minutes, then 4 minutes etc.). This is so that AFK users whose clients are set to automatically reconnect do not wastefully take up a connection slot.
- What should I do if I want to stay online and chat in channels, or keep an eye on WormNET? - I invite you to use the Web Snooper, which uses only one WormNET connection slot no matter how many users are using Web Snooper at the moment.
- What should I do if I want to stay online and chat with people by PM? - I invite you to join #worms on GameSurge, which does not have the drastic user limitations that WormNET has.
- Why is SheriffBot's limit (120) much lower than the WormNET limit (180)? - A typical WormNET IRC connection needs to go through these stages: 1) TCP handshake 2) Authentication 3) Identification 4) Initialization (MOTD, server capabilities, channel list) 5) Joining a channel. SheriffBot can only count users which have reached stage 5, but the WormNET limit takes effect all the way at stage 1. Additionally, the WormNET server reserves some connection slots internally, which is why in /users you will see a maximum of 174, not 180. This is why we reserve a buffer to ensure that there are enough slots for connecting users, users who are currently switching channels, as well as to account for connections which never join a channel (such as some bots).
I have also reduced the number of HostingBuddy PM sender proxies from 8 to 3 connections, which frees up connection slots while hopefully still being enough to avoid WormNET PM limits.