Maurizio Andreotti <maurizioandreottilc@... wrote:
About
"My ISP will drop connections that do not have any activity for some
period of minutes, so this is pretty must guaranteed to occur for
me"
Wouldn¡¯t be enough to setup a ping to some internet host to keep the
connection alive?
The ISP does not drop the entire internet connection, it only drops the
idle TCP/IP sessions.
The only way to keep that from happening is to use a tcpip keep-alive in the affected application.
Easy to implement, except that you want to make sure that it never makes
it on the air. So a ratflector needs to discard it, instead of relaying an empty packet.
As I do not currently have documentation of the protocol used for a
ratflector, I do not know if it has some way to discarding empty packets
already.
This keepalive also should not be needed as D-rats contains code to throw an exception when the connection has been disconnected and then reconnect it. On my Windows systems, the exception is not being thrown, and D-rats goes into an tight CPU bound loop retrying doing a read() from the disconnected sockets.
Also, even though d-rats should reconnected if the connection is disconnected, there is a possibility that with out a keepalive in the protocol, some message fragments may be lost.
I may need to try various Windows Python implementations to see if the
problem is unique to the one that I am currently using for d-rats.
Regards,
-John WB8TYW