Commit Graph

129 Commits

Author SHA1 Message Date
Thom Nichols 8227affd7f removed unnecessary flags and arguments from disconnect method 2010-06-02 14:17:36 -04:00
Thom Nichols 3a2f989c5e Merge branch 'master' into hacks 2010-06-02 14:15:07 -04:00
Thom Nichols 7930ed22f2 overhauled state machine. Now allows for atomic transitions.
Next step: atomic function calls (and maybe 'handlers') on state transition.
2010-06-02 12:39:54 -04:00
Thom Nichols 060b4c3938 Merge branch 'hacks' of github.com:tomstrummer/SleekXMPP 2010-06-01 22:55:01 -04:00
Thom Nichols 49f5767aea merged changes from fritzy 2010-06-01 22:54:30 -04:00
Thom Nichols 4eb210bff5 fixed some major reconnection errors 2010-06-01 22:51:49 -04:00
Thom Nichols 1780ca900a merged a lot of fritzy's changes 2010-06-01 22:40:37 -04:00
Nathan Fritz e6c2fde283 included jobs plugin 2010-06-01 22:07:53 +08:00
Nathan Fritz ecf902bf16 Scheduler waits too longer, and pubsubstate registration was backwards 2010-06-01 22:07:53 +08:00
Lance stout d76c0931ef Added missing 'internal-server-error' condition to error stanza interface. 2010-06-01 22:07:53 +08:00
Lance stout e18793152f Touched up the style of creating an Iq stanza. 2010-06-01 22:07:53 +08:00
Lance stout e388680269 Added 'resource-constraint' to the list of error conditions. 2010-06-01 22:07:53 +08:00
Lance Stout 8e3227ae5e Updated the XEP-0030 plugin to work with stanza objects instead of manipulating XML directly.
Four new events have been added:
  disco_info - A disco#info result has been received
  disco_info_request - A disco#info request has been received
  disco_items - A disco#items result has been received
  disco_items_request - A disco#items request has been received

For disco_info_request and disco_items_request two default handlers are registered. These handlers will only run if they are the only handler for these two events so that multiple responses are not returned and cause errors.

In your own handlers for these two events, you can call the default handlers to preserve the static node behaviour as so:
  self.plugin['xep_0030'].handle_disco_info(iq, True)

The forwarded=True will disable the check for other registered handlers.

Agents can now dynamically respond to disco requests by using these events.
(cherry picked from commit 0fc3381492a8bd75e6a9858539a972334881d8ff)
2010-06-01 22:07:53 +08:00
Nathan Fritz 257bcadd96 control-c fixes 2010-06-01 22:07:52 +08:00
Nathan Fritz 194e6bcb51 added pubsub state stanzas and scheduled events 2010-06-01 22:07:52 +08:00
Nathan Fritz 2e7024419a adding scheduler 2010-06-01 22:07:52 +08:00
Nathan Fritz a2719b0bb0 plugins now are checked for post_init having ran when process() is called 2010-06-01 22:07:51 +08:00
Hernan E Grecco d452085049 Fixed error registering a plugin. To add a feature to another plugin, it should look into xmpp.plugin dict 2010-06-01 22:07:51 +08:00
Nathan Fritz 8b3b8aca9e updated README, index fix for component 2010-06-01 22:07:51 +08:00
Lance Stout e00dea7c0c Added a flag to registerPlugin to control calling the plugin's post_init method. 2010-06-01 22:07:51 +08:00
Lance Stout 520bf72e11 Modified the return values for several methods so that they can be chained.
For example:

    iq.reply().error().setPayload(something.xml).send()
2010-06-01 22:07:51 +08:00
Lance Stout 040f426f1a Added the error attribute 'code' to the Error object interface. 2010-06-01 22:07:51 +08:00
Nathan Fritz 226b0e4297 added plugin indexing to components 2010-06-01 22:07:50 +08:00
Lance Stout 56b5cbe5b1 Added del_event_handler to remove handler functions for a given event.
All registered handlers for the event which use the given function will
be removed.

Using this method allows agents to reconfigure their behaviour on the fly
without needing to add extra state information to event handling functions.
2010-06-01 22:07:50 +08:00
Thom Nichols 3e83b16a58 Merge branch 'hacks' of github.com:tomstrummer/SleekXMPP 2010-05-18 16:11:27 -04:00
Tom Nichols de4d611d30 fixed SRV query - should use dns.rdatatype.SRV 2010-05-14 11:22:17 -04:00
Tom Nichols 8e95ae2948 attempt to add support for self-signed certificate certs 2010-05-13 13:49:00 -04:00
Tom Nichols 341c110b6a Merge branch 'master' of git@github.com:tomstrummer/SleekXMPP into hacks 2010-05-13 13:48:27 -04:00
Nathan Fritz 7522839141 added test for unsolicided unavailable presence and fixed bug to make it pass 2010-05-14 01:47:19 +08:00
Nathan Fritz 4c410dd48a fixed a rather large memory leak 2010-05-14 01:47:19 +08:00
Tom Nichols a92075a659 merged 2010-05-12 16:54:01 -04:00
Tom Nichols 7552efee5c some reconnetion fixes 2010-05-12 16:51:14 -04:00
Brian Beggs e0c32b6d9b Fixes for disconnection problems detailed in http://github.com/fritzy/SleekXMPP/issues/#issue/20
Fixes to both ClientXMPP & xmlstream.  ClientXMPP was not tracking the changes to authenticated and sessionstarted after the client was disconnected.

xmlstream had some funkyness with state in the _process method that was cleaned up and hopefully made a little cleaner.

Also changed a DNS issue that was occuring that rendered me unable to disconnect.  I would recieve the following error upon reconnect.
Exception in thread process:
Exception in thread process:
Traceback (most recent call last):
  File "/usr/local/lib/python2.6/threading.py", line 532, in __bootstrap_inner
    self.run()
  File "/usr/local/lib/python2.6/threading.py", line 484, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/home/macdiesel/tmp/workspace/SleekXMPP/sleekxmpp/xmlstream/xmlstream.py", line 202, in _process
    self.reconnect()
  File "/home/macdiesel/tmp/workspace/SleekXMPP/sleekxmpp/__init__.py", line 134, in reconnect
    XMLStream.reconnect(self)
  File "/home/macdiesel/tmp/workspace/SleekXMPP/sleekxmpp/xmlstream/xmlstream.py", line 289, in reconnect
    self.connect()
  File "/home/macdiesel/tmp/workspace/SleekXMPP/sleekxmpp/__init__.py", line 99, in connect
    answers = dns.resolver.query("_xmpp-client._tcp.%s" % self.server, "SRV")
  File "/usr/local/lib/python2.6/site-packages/dns/resolver.py", line 732, in query
    return get_default_resolver().query(qname, rdtype, rdclass, tcp, source)
  File "/usr/local/lib/python2.6/site-packages/dns/resolver.py", line 617, in query
    source=source)
  File "/usr/local/lib/python2.6/site-packages/dns/query.py", line 113, in udp
    wire = q.to_wire()
  File "/usr/local/lib/python2.6/site-packages/dns/message.py", line 404, in to_wire
    r.add_question(rrset.name, rrset.rdtype, rrset.rdclass)
  File "/usr/local/lib/python2.6/site-packages/dns/renderer.py", line 152, in add_question
    self.output.write(struct.pack("!HH", rdtype, rdclass))
TypeError: unsupported operand type(s) for &: 'unicode' and 'long'

Seems I was getting this error when calling line 99 in ClientXMPP.  You can't bit-shift a 1 and a string and this is why this error is coming up. I removed the "SRV" argument and used the default of 1.  not sure exactly what this should be so it may need to be fixed back before it's merged back to trunk.

The line in question:
answers = dns.resolver.query("_xmpp-client._tcp.%s" % self.server, "SRV")
2010-05-13 04:43:25 +08:00
Nathan Fritz 8515cef117 refactored presence tracking and fixed jidInRoom 2010-05-11 15:12:13 -07:00
Nathan Fritz c4fa3ab654 pubsub test work 2010-04-23 01:34:28 -07:00
Nathan Fritz 602a6d8491 bugfixes and continuing to work on pubsub tests 2010-04-22 21:24:28 -07:00
Nathan Fritz 37b571c55a added pubsub#event stanzas, multi-subtypes iterable stanzas, pubsub#event test coverage 2010-04-21 23:51:37 -07:00
Nathan Fritz 2a30e3fe0c started work on pubsub#event stanzas 2010-04-20 00:53:13 -07:00
Nathan Fritz 212660091f added pubsub tests and fixed match on iterator error 2010-04-19 01:03:27 -07:00
Nathan Fritz 35c157f9d8 changed_status event now happens with got_offline/got_online events 2010-04-18 21:16:47 -07:00
Nathan Fritz 80e7e0d0ee adding tests, fixed stanzapath matching to match keys, fixed pubsub#owner stanzas 2010-04-14 01:23:17 -07:00
Nathan Fritz 2f9f649d98 bugfix for .disconnect() hanging 2010-04-13 19:48:35 -07:00
Nathan Fritz fef511fd51 bugfix for .disconnect() hanging 2010-04-13 19:35:47 -07:00
Matthias Rieber 85c3d97d2a fixed presence stanza. priority can be set. 2010-04-08 15:15:15 +08:00
Nathan Fritz 2384858f5e fixed html-im stanza plugin 2010-04-07 23:56:44 -07:00
Nathan Fritz dd77d2165d added missing docstrings to tests and added deprecated warning to basexmpp.send when using xml mask waiting 2010-04-07 23:32:15 -07:00
Nathan Fritz ecd5a172ed replaced usage of deprecated iq result on send. Fixed old send result to use stanzas instead of ElementTree 2010-04-07 23:10:32 -07:00
Nathan Fritz 935ee4d14e changed license to MIT 2010-03-26 14:32:16 -07:00
Nathan Fritz bf5dc0f7b8 closed bug #8 -- double auth response 2010-03-26 14:02:10 -07:00
Nathan Fritz ec97c351de fixed bug #7 -- muc roster leak 2010-03-26 13:59:29 -07:00