Mercurial > libervia-backend
diff src/memory/disco.py @ 1189:7d640c303140
core (disco): added a timeout to get items
author | Goffi <goffi@goffi.org> |
---|---|
date | Mon, 08 Sep 2014 21:23:21 +0200 |
parents | 301b342c697a |
children | 8ad37c3d58a9 |
line wrap: on
line diff
--- a/src/memory/disco.py Mon Sep 08 21:23:21 2014 +0200 +++ b/src/memory/disco.py Mon Sep 08 21:23:21 2014 +0200 @@ -24,6 +24,7 @@ from twisted.words.protocols.jabber import jid from twisted.words.protocols.jabber.error import StanzaError from twisted.internet import defer +from twisted.internet import reactor from sat.core.constants import Const as C from wokkel import disco from base64 import b64encode @@ -33,6 +34,7 @@ PRESENCE = '/presence' NS_ENTITY_CAPABILITY = 'http://jabber.org/protocol/caps' CAPABILITY_UPDATE = PRESENCE + '/c[@xmlns="' + NS_ENTITY_CAPABILITY + '"]' +TIMEOUT = 15 class HashGenerationError(Exception): pass @@ -169,6 +171,7 @@ d = self.getItems(jid_, profile_key) d.addCallback(gotItems) d.addCallback(lambda dummy: found_entities) + reactor.callLater(TIMEOUT, d.cancel) # FIXME: one bad service make a general timeout return d def findFeaturesSet(self, features, category=None, type_=None, jid_=None, profile_key=C.PROF_KEY_NONE): @@ -213,6 +216,7 @@ d = self.getItems(jid_, profile_key) d.addCallback(gotItems) d.addCallback(lambda dummy: found_entities) + reactor.callLater(TIMEOUT, d.cancel) # FIXME: one bad service make a general timeout return d def generateHash(self, services):