summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sleekxmpp/plugins/xep_0199.py82
-rw-r--r--sleekxmpp/xmlstream/xmlstream.py2
2 files changed, 43 insertions, 41 deletions
diff --git a/sleekxmpp/plugins/xep_0199.py b/sleekxmpp/plugins/xep_0199.py
index a78fd5f2..1be326cb 100644
--- a/sleekxmpp/plugins/xep_0199.py
+++ b/sleekxmpp/plugins/xep_0199.py
@@ -11,49 +11,49 @@ import time
import logging
class xep_0199(base.base_plugin):
- """XEP-0199 XMPP Ping"""
+ """XEP-0199 XMPP Ping"""
- def plugin_init(self):
- self.description = "XMPP Ping"
- self.xep = "0199"
+ def plugin_init(self):
+ self.description = "XMPP Ping"
+ self.xep = "0199"
self.xmpp.add_handler("<iq type='get' xmlns='%s'><ping xmlns='urn:xmpp:ping'/></iq>" % self.xmpp.default_ns, self.handler_ping, name='XMPP Ping')
- self.running = False
- if self.config.get('keepalive', True):
- self.xmpp.add_event_handler('session_start', self.handler_pingserver, threaded=True)
-
- def post_init(self):
- base.base_plugin.post_init(self)
+ self.running = False
+ if self.config.get('keepalive', True):
+ self.xmpp.add_event_handler('session_start', self.handler_pingserver, threaded=True)
+
+ def post_init(self):
+ base.base_plugin.post_init(self)
self.xmpp.plugin['xep_0030'].add_feature('urn:xmpp:ping')
-
- def handler_pingserver(self, xml):
- if not self.running:
- time.sleep(self.config.get('frequency', 300))
- while self.sendPing(self.xmpp.server, self.config.get('timeout', 30)) is not False:
- time.sleep(self.config.get('frequency', 300))
- logging.debug("Did not recieve ping back in time. Requesting Reconnect.")
- self.xmpp.disconnect(reconnect=True)
-
- def handler_ping(self, xml):
- iq = self.xmpp.makeIqResult(xml.get('id', 'unknown'))
- iq.attrib['to'] = xml.get('from', self.xmpp.boundjid.domain)
- self.xmpp.send(iq)
+
+ def handler_pingserver(self, xml):
+ if not self.running:
+ time.sleep(self.config.get('frequency', 300))
+ while self.sendPing(self.xmpp.server, self.config.get('timeout', 30)) is not False:
+ time.sleep(self.config.get('frequency', 300))
+ logging.debug("Did not recieve ping back in time. Requesting Reconnect.")
+ self.xmpp.disconnect(reconnect=True)
+
+ def handler_ping(self, xml):
+ iq = self.xmpp.makeIqResult(xml.get('id', 'unknown'))
+ iq.attrib['to'] = xml.get('from', self.xmpp.boundjid.domain)
+ self.xmpp.send(iq)
- def sendPing(self, jid, timeout = 30):
- """ sendPing(jid, timeout)
- Sends a ping to the specified jid, returning the time (in seconds)
- to receive a reply, or None if no reply is received in timeout seconds.
- """
- id = self.xmpp.getNewId()
- iq = self.xmpp.makeIq(id)
- iq.attrib['type'] = 'get'
- iq.attrib['to'] = jid
+ def sendPing(self, jid, timeout = 30):
+ """ sendPing(jid, timeout)
+ Sends a ping to the specified jid, returning the time (in seconds)
+ to receive a reply, or None if no reply is received in timeout seconds.
+ """
+ id = self.xmpp.getNewId()
+ iq = self.xmpp.makeIq(id)
+ iq.attrib['type'] = 'get'
+ iq.attrib['to'] = jid
ping = ET.Element('{urn:xmpp:ping}ping')
- iq.append(ping)
- startTime = time.clock()
- #pingresult = self.xmpp.send(iq, self.xmpp.makeIq(id), timeout)
- pingresult = iq.send()
- endTime = time.clock()
- if pingresult == False:
- #self.xmpp.disconnect(reconnect=True)
- return False
- return endTime - startTime
+ iq.append(ping)
+ startTime = time.clock()
+ #pingresult = self.xmpp.send(iq, self.xmpp.makeIq(id), timeout)
+ pingresult = iq.send()
+ endTime = time.clock()
+ if pingresult == False:
+ #self.xmpp.disconnect(reconnect=True)
+ return False
+ return endTime - startTime
diff --git a/sleekxmpp/xmlstream/xmlstream.py b/sleekxmpp/xmlstream/xmlstream.py
index 16412711..218b4b5a 100644
--- a/sleekxmpp/xmlstream/xmlstream.py
+++ b/sleekxmpp/xmlstream/xmlstream.py
@@ -828,6 +828,8 @@ class XMLStream(object):
"""
try:
func(*args)
+ except:
+ pass
def _event_runner(self):
"""