Changeset 57:0d8b6cf41728 in ralphm-patches
- Timestamp:
- Mar 28, 2012, 1:43:02 PM (10 years ago)
- Branch:
- default
- Files:
-
- 1 deleted
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
c2s_server_factory.patch
r54 r57 1 1 # HG changeset patch 2 # Parent 52b9931fa5f5c6aeee617a4dad3e09d041ae43612 # Parent d76497171af8f3acf1efd2c8433fbdc3c4a55f92 3 3 Add factory for accepting client connections. 4 4 … … 21 21 * Add tests. 22 22 23 diff -r 52b9931fa5f5 wokkel/client.py 24 --- a/wokkel/client.py Wed Oct 05 09:50:55 2011 +0200 25 +++ b/wokkel/client.py Wed Oct 05 09:58:11 2011 +0200 26 @@ -16,9 +16,11 @@ 27 from twisted.internet import reactor 28 from twisted.names.srvconnect import SRVConnector 29 from twisted.words.protocols.jabber import client, error, sasl, xmlstream 30 +from twisted.words.xish import domish, utility 23 diff -r d76497171af8 wokkel/client.py 24 --- a/wokkel/client.py Wed Nov 30 09:31:07 2011 +0100 25 +++ b/wokkel/client.py Wed Nov 30 09:32:01 2011 +0100 26 @@ -20,6 +20,7 @@ 27 from twisted.words.xish import domish 31 28 32 29 from wokkel import generic 30 +from wokkel.compat import XmlStreamServerFactory 33 31 from wokkel.subprotocols import StreamManager 34 +from wokkel.compat import XmlStreamServerFactory35 32 36 33 NS_CLIENT = 'jabber:client' 37 38 @@ -345,3 +347,98 @@ 34 @@ -347,3 +348,98 @@ 39 35 40 36 -
c2s_stanza_handlers.patch
r54 r57 1 1 # HG changeset patch 2 # Parent 9e8497278e0e4f8a145f321a4e4d22e3bb499b382 # Parent 24c6e79ab1c449f41fd5d4c2cb843dc16efe2c59 3 3 Add c2s protocol handlers for iq, message and presence stanzas. 4 4 … … 8 8 * Save last unavailable presence for future probes. 9 9 10 diff -r 9e8497278e0edoc/examples/client_service.tac10 diff -r 24c6e79ab1c4 doc/examples/client_service.tac 11 11 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 12 +++ b/doc/examples/client_service.tac Thu Oct 06 18:55:13 2011+020012 +++ b/doc/examples/client_service.tac Wed Mar 28 13:23:36 2012 +0200 13 13 @@ -0,0 +1,75 @@ 14 14 +from twisted.application import service, strports … … 87 87 + 88 88 +sessionManager.connectionManager = c2sFactory 89 diff -r 9e8497278e0ewokkel/im.py90 --- a/wokkel/im.py Thu Oct 06 18:47:41 2011+020091 +++ b/wokkel/im.py Thu Oct 06 18:55:13 2011+020089 diff -r 24c6e79ab1c4 wokkel/im.py 90 --- a/wokkel/im.py Wed Mar 28 13:22:34 2012 +0200 91 +++ b/wokkel/im.py Wed Mar 28 13:23:36 2012 +0200 92 92 @@ -10,7 +10,10 @@ 93 93 U{RFC 6121<http://www.xmpp.org/rfcs/rfc6121.html>} (XMPP IM). … … 98 98 from twisted.internet import defer 99 99 +from twisted.python import log 100 from twisted.words.protocols.jabber import error 100 101 from twisted.words.protocols.jabber import jid 101 from twisted.words.protocols.jabber import error102 102 from twisted.words.xish import domish 103 @@ -1 68,7 +171,10@@104 self.xmlstream.addObserver("/presence", self._onPresence)103 @@ -179,10 +182,7 @@ 104 105 105 106 106 107 107 - def _onPresence(self, element): 108 - """ 109 - Called when a presence stanza has been received. 110 - """ 108 111 + def parsePresence(self, element): 109 + """110 + Parse presence.111 + """112 112 stanza = Stanza.fromElement(element) 113 113 114 114 presenceType = stanza.stanzaType or 'available' 115 @@ -1 78,14 +184,19@@115 @@ -192,14 +192,22 @@ 116 116 except KeyError: 117 117 return … … 122 122 + 123 123 + def _onPresence(self, element): 124 + """ 125 + Called when a presence stanza has been received. 126 + """ 124 127 + presence = self.parsePresence(element) 125 128 + presenceType = presence.stanzaType or 'available' … … 134 137 135 138 136 def errorReceived(self, presence):137 @@ -5 53,6 +564,440 @@139 140 @@ -582,6 +590,440 @@ 138 141 139 142 … … 576 579 """ 577 580 XMPP subprotocol handler for the roster, server side. 578 diff -r 9e8497278e0ewokkel/test/test_im.py579 --- a/wokkel/test/test_im.py Thu Oct 06 18:47:41 2011+0200580 +++ b/wokkel/test/test_im.py Thu Oct 06 18:55:13 2011+0200581 diff -r 24c6e79ab1c4 wokkel/test/test_im.py 582 --- a/wokkel/test/test_im.py Wed Mar 28 13:22:34 2012 +0200 583 +++ b/wokkel/test/test_im.py Wed Mar 28 13:23:36 2012 +0200 581 584 @@ -13,7 +13,7 @@ 582 585 from twisted.words.xish import domish, utility -
client_listen_authenticator.patch
r54 r57 1 1 # HG changeset patch 2 # Parent 661689a96e34ac375d95c612d36d959eee3927a92 # Parent 75701188facc278f61a0dfb4bcfcd2232ee771ca 3 3 Add authenticator for accepting XMPP client connections. 4 4 … … 21 21 * Support for multiple domains? 22 22 23 diff -r 661689a96e34wokkel/client.py24 --- a/wokkel/client.py Wed Oct 05 09:40:15 2011 +020025 +++ b/wokkel/client.py Wed Oct 05 09:50:55 2011 +020026 @@ -10,14 +10,2 4@@23 diff -r 75701188facc wokkel/client.py 24 --- a/wokkel/client.py Wed Nov 23 09:52:41 2011 +0100 25 +++ b/wokkel/client.py Wed Nov 30 09:31:07 2011 +0100 26 @@ -10,14 +10,26 @@ 27 27 that should probably eventually move there. 28 28 """ … … 32 32 from twisted.application import service 33 33 from twisted.internet import reactor 34 +from twisted.python import log 34 35 from twisted.names.srvconnect import SRVConnector 35 36 -from twisted.words.protocols.jabber import client, sasl, xmlstream 36 37 +from twisted.words.protocols.jabber import client, error, sasl, xmlstream 38 +from twisted.words.xish import domish 37 39 38 40 from wokkel import generic … … 50 52 """ 51 53 Check what authentication methods are available. 52 @@ -51,7 +6 1,7 @@54 @@ -51,7 +63,7 @@ 53 55 autentication. 54 56 """ … … 59 61 def __init__(self, jid, password): 60 62 xmlstream.ConnectAuthenticator.__init__(self, jid.host) 61 @@ -186,3 +19 6,152 @@63 @@ -186,3 +198,152 @@ 62 64 c = XMPPClientConnector(reactor, domain, factory) 63 65 c.connect() -
copy_xmppim.patch
r49 r57 1 1 # HG changeset patch 2 # Parent 2c8dc93fbef4f2d5b7115c7afdd1b7fb799d47c32 # Parent 4ce55e7a3bb2f881333a4c61e215ffd2e3248695 3 3 4 4 diff --git a/wokkel/xmppim.py b/wokkel/im.py … … 242 242 """ 243 243 Stanza of kind presence. 244 @@ -6 05,6 +377,7 @@244 @@ -633,6 +405,7 @@ 245 245 self.groups = set() 246 246 … … 250 250 """ 251 251 Client side XMPP roster protocol. 252 @@ -6 14,6 +387,7 @@252 @@ -642,6 +415,7 @@ 253 253 ROSTER_SET = "/iq[@type='set']/query[@xmlns='%s']" % NS_ROSTER 254 254 self.xmlstream.addObserver(ROSTER_SET, self._onRosterSet) … … 258 258 jid = JID(element['jid']) 259 259 item = RosterItem(jid) 260 @@ -6 28,6 +402,7 @@260 @@ -656,6 +430,7 @@ 261 261 262 262 return item … … 266 266 """ 267 267 Retrieve contact list. 268 @@ - 683,6 +458,7 @@268 @@ -711,6 +486,7 @@ 269 269 item = self._parseRosterItem(iq.query.item) 270 270 self.onRosterSet(item) … … 274 274 """ 275 275 Called when a roster push for a new or update item was received. 276 @@ - 691,6 +467,7 @@276 @@ -719,6 +495,7 @@ 277 277 @type item: L{RosterItem} 278 278 """ … … 282 282 """ 283 283 Called when a roster push for the removal of an item was received. 284 @@ -698,32 +475,3 @@ 285 @param entity: The entity for which the roster item has been removed. 286 @type entity: L{JID} 287 """ 284 @@ -764,34 +541,3 @@ 285 element.addElement('subject', content=self.subject) 286 287 return element 288 - 289 - 288 290 - 289 291 -class MessageProtocol(XMPPHandler): -
disco_warning.patch
r47 r57 1 1 # HG changeset patch 2 # Parent 2d57501b5c68d776489bdb9558b41c446c7c56f1 3 diff -r 2d57501b5c68 -r f9bd41295efe wokkel/pubsub.py 4 --- a/wokkel/pubsub.py Fri Feb 18 20:38:19 2011 +0100 5 +++ b/wokkel/pubsub.py Sat Feb 19 08:35:11 2011 +0100 2 # Parent 46b33f13f14214ec900a189348a21824d915212a 3 4 diff -r 46b33f13f142 wokkel/pubsub.py 5 --- a/wokkel/pubsub.py Wed Mar 28 13:24:00 2012 +0200 6 +++ b/wokkel/pubsub.py Wed Mar 28 13:24:14 2012 +0200 6 7 @@ -10,6 +10,8 @@ 7 U{XEP-0060<http:// www.xmpp.org/extensions/xep-0060.html>}.8 U{XEP-0060<http://xmpp.org/extensions/xep-0060.html>}. 8 9 """ 9 10 … … 13 14 14 15 from twisted.internet import defer 15 @@ -1 091,6 +1093,8 @@16 @@ -1103,6 +1105,8 @@ 16 17 if not nodeInfo: 17 18 return -
pubsub-default-type-attribute.patch
r47 r57 1 1 # HG changeset patch 2 # Parent fc34b2a3eee92201a08dd633aeccf75724305c882 # Parent a1fb8edead3376a4c5ec2f75f1922aaf7af3c8c8 3 3 4 diff -r fc34b2a3eee9wokkel/pubsub.py5 --- a/wokkel/pubsub.py Mon Feb 28 09:28:29 2011 +01006 +++ b/wokkel/pubsub.py Mon Feb 28 09:31:16 2011 +01007 @@ - 385,12 +385,7 @@4 diff -r a1fb8edead33 wokkel/pubsub.py 5 --- a/wokkel/pubsub.py Wed Mar 28 13:31:48 2012 +0200 6 +++ b/wokkel/pubsub.py Wed Mar 28 13:33:10 2012 +0200 7 @@ -424,12 +424,7 @@ 8 8 """ 9 9 Parse node type out of a request for the default node configuration. 10 10 """ 11 11 - form = data_form.findForm(verbElement, NS_PUBSUB_NODE_CONFIG) 12 - if form and form.formType == 'submit':12 - if form is not None and form.formType == 'submit': 13 13 - values = form.getValues() 14 14 - self.nodeType = values.get('pubsub#node_type', 'leaf') … … 19 19 20 20 def _parse_configure(self, verbElement): 21 diff -r fc34b2a3eee9wokkel/test/test_pubsub.py22 --- a/wokkel/test/test_pubsub.py Mon Feb 28 09:28:29 2011 +010023 +++ b/wokkel/test/test_pubsub.py Mon Feb 28 09:31:16 2011 +010024 @@ -1 688,17 +1688,7 @@21 diff -r a1fb8edead33 wokkel/test/test_pubsub.py 22 --- a/wokkel/test/test_pubsub.py Wed Mar 28 13:31:48 2012 +0200 23 +++ b/wokkel/test/test_pubsub.py Wed Mar 28 13:33:10 2012 +0200 24 @@ -1712,17 +1712,7 @@ 25 25 <iq type='get' to='pubsub.example.org' 26 26 from='user@example.org'> … … 41 41 </iq> 42 42 """ 43 @@ -26 68,6 +2658,7 @@43 @@ -2692,6 +2682,7 @@ 44 44 return fieldDefs 45 45 … … 49 49 'x-myfield': '1'}) 50 50 51 @@ -27 01,17 +2692,7 @@51 @@ -2725,17 +2716,7 @@ 52 52 <iq type='get' to='pubsub.example.org' 53 53 from='user@example.org'> -
pubsub-item.patch
r47 r57 1 diff -r d16bd03316adwokkel/generic.py2 --- a/wokkel/generic.py Mon Feb 28 09:31:41 2011 +01003 +++ b/wokkel/generic.py Mon Feb 28 09:43:34 2011 +01004 @@ -3 8,13 +38,12 @@1 diff -r 2bc0db311133 wokkel/generic.py 2 --- a/wokkel/generic.py Wed Mar 28 13:28:55 2012 +0200 3 +++ b/wokkel/generic.py Wed Mar 28 13:30:27 2012 +0200 4 @@ -34,13 +34,12 @@ 5 5 @return: The DOM structure, or C{None} on empty or incomplete input. 6 6 @rtype: L{domish.Element} … … 20 20 21 21 22 diff -r d16bd03316adwokkel/pubsub.py23 --- a/wokkel/pubsub.py Mon Feb 28 09:31:41 2011 +010024 +++ b/wokkel/pubsub.py Mon Feb 28 09:43:34 2011 +010022 diff -r 2bc0db311133 wokkel/pubsub.py 23 --- a/wokkel/pubsub.py Wed Mar 28 13:28:55 2012 +0200 24 +++ b/wokkel/pubsub.py Wed Mar 28 13:30:27 2012 +0200 25 25 @@ -157,33 +157,56 @@ 26 26 … … 61 61 """ 62 62 - @param id: optional item identifier 63 - @type id: L{unicode}63 - @type id: C{unicode} 64 64 - @param payload: optional item payload. Either as a domish element, or 65 65 - as serialized XML. 66 - @type payload: object providing L{domish.IElement} or L{unicode}.66 - @type payload: object providing L{domish.IElement} or C{unicode}. 67 67 + Render to a DOM representation. 68 68 + … … 98 98 99 99 100 @@ -3 51,7 +374,13 @@100 @@ -362,7 +385,13 @@ 101 101 self.items = [] 102 102 for element in verbElement.elements(): … … 113 113 114 114 def _render_items(self, verbElement): 115 @@ -3 60,8 +389,7 @@115 @@ -371,8 +400,7 @@ 116 116 """ 117 117 if self.items: … … 123 123 124 124 def _parse_jid(self, verbElement): 125 @@ -13 07,8 +1335,7 @@125 @@ -1319,8 +1347,7 @@ 126 126 items["node"] = request.nodeIdentifier 127 127 … … 133 133 return response 134 134 135 @@ -13 59,8 +1386,7 @@135 @@ -1371,8 +1398,7 @@ 136 136 nodeIdentifier, subscriber, 137 137 subscriptions) … … 143 143 144 144 145 diff -r d16bd03316adwokkel/test/test_pubsub.py146 --- a/wokkel/test/test_pubsub.py Mon Feb 28 09:31:41 2011 +0100147 +++ b/wokkel/test/test_pubsub.py Mon Feb 28 09:43:34 2011 +0100145 diff -r 2bc0db311133 wokkel/test/test_pubsub.py 146 --- a/wokkel/test/test_pubsub.py Wed Mar 28 13:28:55 2012 +0200 147 +++ b/wokkel/test/test_pubsub.py Wed Mar 28 13:30:27 2012 +0200 148 148 @@ -115,6 +115,30 @@ 149 149 -
roster_item.patch
r54 r57 14 14 return a `service-unavailable` stanza error. 15 15 16 diff -r 2e2717d3db8fwokkel/im.py17 --- a/wokkel/im.py Wed Oct 05 09:15:44 2011+020018 +++ b/wokkel/im.py Wed Oct 05 09:29:18 2011+020019 @@ -7,21 +7,2 5@@16 diff -r a3c50205821b wokkel/im.py 17 --- a/wokkel/im.py Wed Mar 28 13:13:06 2012 +0200 18 +++ b/wokkel/im.py Wed Mar 28 13:17:05 2012 +0200 19 @@ -7,21 +7,26 @@ 20 20 XMPP IM protocol support. 21 21 22 22 This module provides generic implementations for the protocols defined in 23 -U{RFC 3921<http:// www.xmpp.org/rfcs/rfc3921.html>} (XMPP IM).23 -U{RFC 3921<http://xmpp.org/rfcs/rfc3921.html>} (XMPP IM). 24 24 - 25 25 -All of it should eventually move to Twisted. … … 28 28 29 29 +from twisted.internet import defer 30 +from twisted.words.protocols.jabber import error 30 31 from twisted.words.protocols.jabber import jid 31 +from twisted.words.protocols.jabber import error32 32 from twisted.words.xish import domish 33 33 34 34 from wokkel.compat import IQ 35 35 from wokkel.generic import ErrorStanza, Stanza 36 -from wokkel.subprotocols import XMPPHandler 37 +from wokkel.subprotocols import IQHandlerMixin,XMPPHandler36 +from wokkel.subprotocols import IQHandlerMixin 37 from wokkel.subprotocols import XMPPHandler 38 38 39 39 NS_XML = 'http://www.w3.org/XML/1998/namespace' … … 47 47 """ 48 48 Stanza of kind presence. 49 @@ -3 49,8 +353,8 @@49 @@ -377,8 +382,8 @@ 50 50 51 51 This represents one contact from an XMPP contact list known as roster. … … 58 58 @type name: C{unicode} 59 59 @ivar subscriptionTo: Subscription state to contact's presence. If C{True}, 60 @@ -3 60,47 +364,99 @@60 @@ -388,47 +393,99 @@ 61 61 @ivar subscriptionFrom: Contact's subscription state. If C{True}, the 62 62 contact is subscribed to the presence information … … 186 186 187 187 def getRoster(self): 188 @@ -4 15,8 +471,8 @@188 @@ -443,8 +500,8 @@ 189 189 roster = {} 190 190 for element in domish.generateElementsQNamed(result.query.children, … … 197 197 return roster 198 198 199 @@ -4 37,32 +493,36 @@199 @@ -465,32 +522,36 @@ 200 200 """ 201 201 iq = IQ(self.xmlstream, 'set') … … 247 247 @type item: L{RosterItem} 248 248 """ 249 @@ - 472,6 +532,10 @@249 @@ -500,6 +561,10 @@ 250 250 """ 251 251 Called when a roster push for the removal of an item was received. … … 258 258 @type entity: L{jid.JID} 259 259 """ 260 diff -r 2e2717d3db8fwokkel/test/test_im.py261 --- a/wokkel/test/test_im.py Wed Oct 05 09:15:44 2011+0200262 +++ b/wokkel/test/test_im.py Wed Oct 05 09:29:18 2011+0200260 diff -r a3c50205821b wokkel/test/test_im.py 261 --- a/wokkel/test/test_im.py Wed Mar 28 13:13:06 2012 +0200 262 +++ b/wokkel/test/test_im.py Wed Mar 28 13:17:05 2012 +0200 263 263 @@ -7,13 +7,14 @@ 264 264 -
router_unknown.patch
r54 r57 1 1 # HG changeset patch 2 # Parent 28a032eab8a5ffbc145aaec1f0044a2a9cad70582 # Parent 3d3065a425fa27c45c1f25aae8910f282f3049a4 3 3 Send back an error if there is no known route to the stanza's destination. 4 4 … … 6 6 component that acts as the default route (indexed by `None`). 7 7 8 diff -r 28a032eab8a5wokkel/component.py9 --- a/wokkel/component.py Wed Oct 05 09:38:30 2011+020010 +++ b/wokkel/component.py Wed Oct 05 09:40:15 2011+020011 @@ -3 13,12 +313,25@@8 diff -r 3d3065a425fa wokkel/component.py 9 --- a/wokkel/component.py Wed Mar 28 13:34:30 2012 +0200 10 +++ b/wokkel/component.py Wed Mar 28 13:36:55 2012 +0200 11 @@ -332,12 +332,24 @@ 12 12 """ 13 13 destination = JID(stanza['to']) … … 16 16 17 17 if destination.host in self.routes: 18 + msg = "Routing to %s (default route): %r"19 18 + log.msg("Routing to %s: %r" % (destination.full(), 20 19 + stanza.toXml())) -
series
r56 r57 1 release-0.7.0.patch2 1 pubsub_client_example.patch 3 2 -
session_manager.patch
r54 r57 1 1 # HG changeset patch 2 # Parent c991ebbd42bee47f273d214a4dc9f6665ed7d5ec2 # Parent 4e25d6deb8beeb732cadb38349ee820f0dc98b3a 3 3 4 diff -r c991ebbd42be wokkel/client.py5 --- a/wokkel/client.py Wed Oct 05 09:58:11 2011 +02006 +++ b/wokkel/client.py Wed Oct 05 09:58:17 2011 +02007 @@ -13,1 4+13,16 @@4 diff -r 4e25d6deb8be wokkel/client.py 5 --- a/wokkel/client.py Wed Nov 30 09:32:01 2011 +0100 6 +++ b/wokkel/client.py Wed Nov 30 09:33:11 2011 +0100 7 @@ -13,15 +13,16 @@ 8 8 import base64 9 9 10 10 from twisted.application import service 11 11 -from twisted.internet import reactor 12 -from twisted.python import log 12 13 +from twisted.internet import defer, reactor 14 +from twisted.python import log, randbytes 13 15 from twisted.names.srvconnect import SRVConnector 14 +from twisted.python import log, randbytes15 16 from twisted.words.protocols.jabber import client, error, sasl, xmlstream 17 -from twisted.words.xish import domish 16 18 +from twisted.words.protocols.jabber.jid import JID, internJID 17 19 +from twisted.words.xish import domish, utility 18 20 19 21 from wokkel import generic 22 from wokkel.compat import XmlStreamServerFactory 20 23 -from wokkel.subprotocols import StreamManager 21 from wokkel.compat import XmlStreamServerFactory22 24 +from wokkel.subprotocols import StreamManager, XMPPHandler 23 25 24 26 NS_CLIENT = 'jabber:client' 25 27 26 @@ -44 2,3 +444,105 @@28 @@ -443,3 +444,105 @@ 27 29 else: 28 30 raise RecipientUnavailable(u"There is no connection for %s" %
Note: See TracChangeset
for help on using the changeset viewer.