|
Rainchild Wizard
Joined: 10 Oct 2000 Posts: 1551 Location: Australia
|
Posted: Thu Dec 29, 2005 5:08 am
Feature Request - Keepalive Packets |
Many telnet clients have the ability to send keepalive packets which keeps the connection alive through firewall / NAT timeouts, etc.
Most programs seem to use IAC (255) NOP (241) to do this.
In zMUD I use a tick timer to keep-alive my connection by sending a #CR which is a bit of a tacky way to do it and would be nice to be able to use the tick timer for something else :) |
|
|
|
MattLofton GURU
Joined: 23 Dec 2000 Posts: 4834 Location: USA
|
Posted: Thu Dec 29, 2005 8:31 pm |
You can. Simply create an alarm trigger.
|
|
_________________ EDIT: I didn't like my old signature |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Tue Jan 03, 2006 9:09 pm |
I actually disagree with doing this directly in CMUD (which is why zMUD doesn't do it either). There are many 3rd party programs that run in the background to keep your network connection open, so there is little reason to do this in CMUD itself. And as Matt mentioned, there is always Alarms.
Putting stuff like this into zMUD/CMUD that "spam" a network connection has caused trouble in the past. I don't like zMUD/CMUD to get on a network admins "hate" list. |
|
|
|
Rainchild Wizard
Joined: 10 Oct 2000 Posts: 1551 Location: Australia
|
Posted: Wed Jan 04, 2006 12:47 am |
It's not a matter of keeping the network connection open (that's open 24/7 in the case of a ADSL or cable router), it's a matter of keeping the TCP connection to the MUD open through NAT routers that 'forget' about a connection after a period of inactivity. I doubt there is a third party utility to do this as it would have to be a proxying program that you telnet to your localhost and it proxies to the MUD and sends those keepalives.
Zmud still -thinks- it's connected to the MUD but when you type something it realises that it no longer has a connection and reports it has been disconnected... so you don't realise that your connection has been dropped until you type something later on.
I believe the reason why this happens is after x minutes (typically, I think 15) of inactivity, the NAT router 'forgets' about the connection so when more data comes from the MUD later on, it figures "I don't know this host, discard the packet because it's a hack attempt". The odd thing is when it 'forgets' it doesn't report the connection closing to either endpoint, so the MUD thinks you're still connected as does zMUD.
As for a network admin "hate" list - PuTTY (which I think is most admin's lite client of choice) has an option for keepalive packets for both SSH and Telnet ... the option is off by default, but it is there for completeness. The interval is in minutes, so it's not like you can "spam" a connection.
Anyway, I guess we can go with alarms but I feel this should be sitting in connection options right along with the reconnect timers etc. |
|
|
|
mr_kent Enchanter
Joined: 10 Oct 2000 Posts: 698
|
Posted: Wed Jan 04, 2006 8:29 am |
I have to agree with Rainchild here. The behavior he describes is frustrating for both the z(C)mud user and his/her friends that try to communicate with them in the mud. If auto-reconnect doesn't cause network admin hate, stay-alive shouldn't either I'd hope.
Maybe a compromise? A togglable option for Auto keep-alive sent every (and only) ten minutes, and only if there is no activity for ten minutes? Could such a limited feature cause network headaches?
I've used alarm triggers to stay active, but I find it annoying to have a specific setting just for something that in my opinion should 1) not be a problem in the first place and 2) be incorporated as a default feature in my client, especially since the MUD still thinks I'm connected and my ISP knows that I am, but the connection still gets dropped somewhere in the middle. |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Thu Jan 05, 2006 6:14 pm |
Ahh, sorry, I didn't realize that NAT routers could "forget" about a connection like this. I'll definitely reconsider this and see what I can do in CMUD for this. Thanks for clarifying this for me.
|
|
|
|
|
|