source:
ralphm-patches/roster_server.patch
@
49:537d1413b661
Last change on this file since 49:537d1413b661 was 49:537d1413b661, checked in by Ralph Meijer <ralphm@…>, 10 years ago | |
---|---|
File size: 1.8 KB |
-
wokkel/im.py
diff -r 3c5fb05162e1 wokkel/im.py
a b 14 14 15 15 from twisted.internet import defer 16 16 from twisted.words.protocols.jabber.jid import JID, internJID 17 from twisted.words.protocols.jabber import error 17 from twisted.words.protocols.jabber import error, xmlstream 18 18 from twisted.words.xish import domish 19 19 20 20 from wokkel.compat import IQ … … 25 25 NS_ROSTER = 'jabber:iq:roster' 26 26 27 27 XPATH_ROSTER_SET = "/iq[@type='set']/query[@xmlns='%s']" % NS_ROSTER 28 XPATH_ROSTER_GET = "/iq[@type='get']/query[@xmlns='%s']" % NS_ROSTER 28 29 29 30 30 31 … … 579 580 @param entity: The entity for which the roster item has been removed. 580 581 @type entity: L{JID} 581 582 """ 583 584 585 586 class RosterServerProtocol(XMPPHandler): 587 """ 588 XMPP subprotocol handler for the roster, server side. 589 """ 590 591 def connectionInitialized(self): 592 self.xmlstream.addObserver(XPATH_ROSTER_GET, self._onRosterGet) 593 self.xmlstream.addObserver(XPATH_ROSTER_SET, self._onRosterSet) 594 595 596 def _toRosterReply(self, roster, iq): 597 response = xmlstream.toResponse(iq, 'result') 598 response.addElement((NS_ROSTER, 'query')) 599 600 for item in roster: 601 response.query.addChild(item.toElement()) 602 603 return response 604 605 606 def _onRosterGet(self, iq): 607 iq.handled = True 608 609 d = self.getRoster(internJID(iq["from"])) 610 d.addCallback(self._toRosterReply, iq) 611 d.addErrback(lambda _: error.ErrorStanza('internal-error').toResponse(iq)) 612 d.addBoth(self.send) 613 614 615 def _onRosterSet(self, iq): 616 iq.handled = True 617 response = error.StanzaError('bad-request').toResponse(iq) 618 self.send(response) 619 620 621 def getRoster(self, entity): 622 raise NotImplemented
Note: See TracBrowser
for help on using the repository browser.