You're right on the money, both the "PING :TIMEOUTCHECK" and the subsequent mIRC-initiated disconnects (with the 10101 error which doesn't really come from winsock) are the result of the "Check for timed out connections" option. It's new in 6.17 and on by default, but if it gives you trouble it's safe to turn it off - it's only there to detect dead connections, and turning it off will usually cause the same connection problems to manifest themselves in another way (typically with a 10053 sometime later).

In your case it's very strange that the server doesn't respond to the PING on the application layer but does ACK the tcp packet, though. It would be interesting (and possibly helpful) to find out what exactly is happening there, because as far as I know the ircd software that ETG uses, does send back a PONG to any PING from the client just as mIRC expects. You may want to check that first though - if you use "/raw PING :test" as command, does the server indeed reply ("PONG from ...")? If so, what happens if you send another command (which generates a response; say, a WHOIS) within the 2mins between mIRC's PING and the disconnect? Does the "PONG" arrive within the same TCP packet as the WHOIS response in that case, or does the connection die anyway? Etcetera.

I suspect that it will turn out to be your DSL connection anyway, but I'd say looking into it is worth a shot, especially as you have the necessary expertise and tools..


Saturn, QuakeNet staff