diff --git a/doc/source/configuration.rst b/doc/source/configuration.rst index 5bdec95e..587d5fd2 100644 --- a/doc/source/configuration.rst +++ b/doc/source/configuration.rst @@ -115,10 +115,12 @@ section of this documentation. **Default value:** ``60`` - A ping is sent to the server every N seconds, N being the value of that option. - Change this to a low value if you want to know quickly when you are disconnected, - and to a very high value if bandwidth matters so much that you can’t afford - 100 bytes/minute (seriously?). + A ping is sent to the server every N seconds, N being the value of + that option. Change this to a low value if you want to know quickly + when you are disconnected, and to a very high value if bandwidth + matters so much that you can’t afford 100 bytes/minute, or if you + don’t want to waste your battery by waking up the TCP connection too + often. Disable this ping altogether by setting this value to 0. connection_timeout_delay diff --git a/src/connection.py b/src/connection.py index d6b3fca0..d8746557 100644 --- a/src/connection.py +++ b/src/connection.py @@ -115,13 +115,17 @@ class Connection(sleekxmpp.ClientXMPP): Unload and reload the ping plugin, with the new values. """ ping_interval = config.get('connection_check_interval', 60) - if ping_interval <= 0: - ping_interval = 60 timeout_delay = config.get('connection_timeout_delay', 10) if timeout_delay <= 0: - timeout_delay = 10 + # We help the stupid user (with a delay of 0, poezio will try to + # reconnect immediately because the timeout is immediately + # passed) + # 1 second is short, but, well + timeout_delay = 1 self.plugin['xep_0199'].disable_keepalive() - self.plugin['xep_0199'].enable_keepalive(ping_interval, timeout_delay) + # If the ping_interval is 0 or less, we just disable the keepalive + if ping_interval > 0: + self.plugin['xep_0199'].enable_keepalive(ping_interval, timeout_delay) def start(self): # TODO, try multiple servers