From d1f411f59c9f86ba71f1de0353ba31eb660d45fd Mon Sep 17 00:00:00 2001 From: Goffi Date: Thu, 22 Nov 2012 00:44:56 +0100 Subject: [PATCH] core: client.roster has now a got_roster deferred which is fired when roster is available --- src/core/xmpp.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/core/xmpp.py b/src/core/xmpp.py index a0739173..c7551da8 100644 --- a/src/core/xmpp.py +++ b/src/core/xmpp.py @@ -133,6 +133,7 @@ class SatRosterProtocol(xmppim.RosterClientProtocol): def __init__(self, host): xmppim.RosterClientProtocol.__init__(self) self.host = host + self.got_roster = defer.Deferred() #XXX: the two following dicts keep a local copy of the roster self._groups = {} #map from groups to bare jids: key=group value=set of bare jids self._jids = {} #map from bare jids to RosterItem: key=jid value=RosterItem @@ -144,7 +145,8 @@ class SatRosterProtocol(xmppim.RosterClientProtocol): def requestRoster(self): """ ask the server for Roster list """ debug("requestRoster") - self.getRoster().addCallback(self.rosterCb) + d = self.getRoster().addCallback(self.rosterCb) + d.chainDeferred(self.got_roster) def removeItem(self, to): """Remove a contact from roster list"""