summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorent Le Coz <louiz@louiz.org>2013-06-18 20:38:16 +0200
committerFlorent Le Coz <louiz@louiz.org>2013-06-18 20:38:16 +0200
commit54af1f16a499f00b89483c8fdf1cb63fbf5dc32e (patch)
treeccbb5319f8c8e716e1c503f1f3cc265cb4301def
parent4d73c29836b2c74253dbce0df7af4d976440217f (diff)
downloadpoezio-54af1f16a499f00b89483c8fdf1cb63fbf5dc32e.tar.gz
poezio-54af1f16a499f00b89483c8fdf1cb63fbf5dc32e.tar.bz2
poezio-54af1f16a499f00b89483c8fdf1cb63fbf5dc32e.tar.xz
poezio-54af1f16a499f00b89483c8fdf1cb63fbf5dc32e.zip
Let the user disable the auto-ping by setting connection_check_interval to 0
-rw-r--r--doc/source/configuration.rst10
-rw-r--r--src/connection.py12
2 files changed, 14 insertions, 8 deletions
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