Commit graph

128 commits

Author SHA1 Message Date
Lance Stout
5ed27bf5f6 Merge branch 'develop' into roster 2011-05-31 10:59:14 -07:00
Lance Stout
1735c194cd Don't use the send queue for stream initialization.
Use the parameter now=True to skip the queue when
sending Iq stanzas, or using xmpp.send().
2011-05-27 17:00:57 -07:00
Lance Stout
e2de82ac8d Merge branch 'develop' into stream_features
Conflicts:
	sleekxmpp/clientxmpp.py
2011-05-20 13:26:21 -04:00
Lance Stout
6b05938573 Merge branch 'develop' into roster 2011-04-08 16:41:45 -04:00
Lance Stout
d7ba7cc72a Use underscore method name.
Since camelcase names are aliased to the underscored name at startup,
if the underscored version is replaced later, the camelCase name does
not reflect the change.
2011-04-08 16:14:22 -04:00
Lance Stout
af45b51f4f Fix error with session feature. 2011-03-18 17:57:49 -04:00
Lance Stout
d5b3a52827 Merge branch 'develop' into stream_features
Conflicts:
	sleekxmpp/xmlstream/stanzabase.py
2011-02-14 16:26:23 -05:00
Lance Stout
a278f79bdb Merge branch 'develop' into roster
Conflicts:
	sleekxmpp/clientxmpp.py
2011-02-14 16:18:44 -05:00
Lance Stout
75584d7ad7 Remap old method names in a better way.
This should prevent some reference cycles that will cause garbage
collection issues.
2011-02-14 13:49:43 -05:00
Lance Stout
34f6195ca5 Return the name of the registered callback.
Instead of the actual callback object, return just the name of
the callback object created when using iq.send(callback=..).

This will help prevent memory leaks by not keeping an additional
reference to the object, but still allows for the callback to be
canceled by using self.remove_handler("handler_name").
2011-02-13 16:30:57 -05:00
Lance Stout
ca2b4a188a Return the registered callback when using iq.send(callback=foo).
Allows for a callback to be canceled by unregistering the
returned handler.
2011-02-12 11:01:43 -05:00
Lance Stout
0d32638379 XMPPError exceptions can keep a stanza's contents.
This allows exceptions to include the original
content of a stanza in the error response by including
the parameter clear=False when raising the exception.
2011-02-11 15:20:26 -05:00
Lance Stout
de6170a13d Merge branch 'develop' into roster
Conflicts:
	sleekxmpp/basexmpp.py
2011-02-02 09:13:22 -05:00
Lance Stout
1a270dc05c First pass at re-worked stream features.
Stream features now use stanza objects!

Features are given a ranking that expresses the dependency
relationships (since only one feature is negotiated at a time, the
dependency graph can be replaced by a line).

>>> xmpp.register_feature('my_feature', _my_handler,
>>>                       restart=True,   # Requires stream restart
>>>                       order=600)      # Ranking (out of ~ 10,000,
>>>                                       # lower #'s executed first)

SASL mechanisms may now be added or disabled as needed. Each mechanism
is given a priority value indicating the order in which the client
wishes for mechanisms to be tried. Higher priority numbers are executed
first.

>>> xmpp.register_sasl_mechanism('SASL-MECH', _mech_handler,
>>>                              priority=0)

Disabling a SASL mechanism:

>>> xmpp.remove_sasl_mechanism('ANONYMOUS')
2011-01-28 00:49:37 -05:00
Lance Stout
40642b2cd1 Make StreamError work properly.
Now uses the correct namespaces and condition names.
2011-01-27 16:02:57 -05:00
Lance Stout
d3b1f8c476 Fix namespace for Nick stanza. 2011-01-19 16:47:18 -05:00
Lance Stout
2004ddd678 Add StreamError stanza and a stream_error event.
Note that the stream may automatically attempt to
reconnect when a stream error is received.
2011-01-16 13:22:52 -05:00
Lance Stout
65931bb384 Merge branch 'develop' into roster 2011-01-13 22:16:46 -05:00
Lance Stout
ba0d699d83 Fix ordering error in Iq._set_stanza_values.
If iq['query'] was set before a plugin that used the query
element was set, then the query element was duplicated.
2011-01-12 08:55:33 -05:00
Lance Stout
3657bf6636 Merge branch 'develop' into roster 2010-12-21 11:33:40 -05:00
Lance Stout
34c374a1e1 Make tests pass for catching exceptions.
May now use sys.excepthook to catch exceptions
from threaded handlers.
2010-12-17 13:11:03 -05:00
Florent Le Coz
982bf3b2ec RootStanza raises unexpected exceptions
We now raise the unexpected exceptions instead of sending
them on the network.
 - avoids flood (sending a traceback on a MUC, for example…) and
   maybe some security issues.
 - lets you handle the traceback (catch it to handle
   it properly, or with except_hook, etc)
 - an exception cannot be raised without you knowing
2010-12-17 23:43:48 +08:00
Lance Stout
c16913c999 Merge branch 'develop' into roster
Conflicts:
	sleekxmpp/basexmpp.py
2010-12-13 14:36:53 -05:00
Lance Stout
19bd1e0485 Actually make the Iq callbacks work for real. 2010-12-07 23:04:04 -05:00
Lance Stout
5f2fc67c40 Added option for iq.send to accept a callhandler.
The callback will be a stream level handler, and will not
execute in its own thread. If you must have a thread, have the
callback function raise a custom event, which can be processed
by another event handler, which may run in an individual thread,
like so:

def handle_reply(self, iq):
    self.event('custom_event', iq)

def do_long_operation_in_thread(self, iq):
    ...

self.add_event_handler('custom_event', self.do_long_operation_in_thread)

...take out already prepared iq stanza...
iq.send(callback=self.handle_reply)
2010-12-07 17:19:39 -05:00
Lance Stout
58b95e4ae4 Merge branch 'develop' of github.com:fritzy/SleekXMPP into roster 2010-11-18 00:44:51 -05:00
Lance Stout
6ee8a2980c Fix RESPONSE_TIMEOUT dependency loops. 2010-11-17 15:13:09 -05:00
Lance Stout
673545c7e4 First pass at integrating the new roster manager. 2010-11-17 01:49:19 -05:00
Lance Stout
4fb77ac878 Logging no longer uses root logger.
Each module should now log into its own logger.
2010-11-06 01:28:59 -04:00
Nathan Fritz
27ebb6e8f6 presence no longer replies when exception is caught and tweaks to presence events 2010-10-21 16:59:15 -07:00
Lance Stout
4375ac7d8b Underscore names by default.
Stanza objects now accept the use of underscored names.

The CamelCase versions are still available for backwards compatibility,
but are discouraged.

The property stanza.values now maps to the old getStanzaValues and
setStanzaValues, in addition to _set_stanza_values and
_get_stanza_values.
2010-10-17 22:04:42 -04:00
Lance Stout
505a63da3a Cleanup, restore PEP8. 2010-10-16 21:15:31 -04:00
Florent Le Coz
93fbcad277 Fix the error on non-number priority
The priority is not a number: we consider it 0 as a default
2010-10-17 09:01:53 +08:00
Lance Stout
e02ffe8547 Corrected test errors.
There was a bug in the XML compare method.
2010-10-07 19:42:28 -04:00
Lance Stout
c294c1a85c More PEP8 compliance cleanups.
Cleaned up the atom entry stanza.
2010-10-06 15:12:39 -04:00
Lance Stout
b40a489796 Updated roster stanza with docs and PEP8 style. 2010-08-11 23:32:14 -04:00
Lance Stout
fec69be731 Update nick stanza with documentation and PEP8 style. 2010-08-03 18:32:53 -04:00
Lance Stout
183a3f1b87 Updated XHTML-IM stanza with documentation and PEP8 style. 2010-08-03 17:58:18 -04:00
Lance Stout
41ab2b8460 Updated presence stanza with documentation and PEP8 style. 2010-08-03 17:30:34 -04:00
Lance Stout
939ae298c2 Updated message stanzas and tests with documentation and PEP8 style. 2010-08-03 12:26:36 -04:00
Lance Stout
1cedea2804 Added optional default value to _getAttr. 2010-07-30 14:11:24 -04:00
Lance Stout
cbed8029ba Updated, cleaned, and documented Iq stanza class. Also added unit tests. 2010-07-29 23:58:25 -04:00
Lance Stout
1da3e5b35e Added unit tests for error stanzas. Corrected error in deleting conditions. 2010-07-29 23:55:13 -04:00
Lance Stout
25f43bd219 Updated error stanza to be PEP8 compliant and include documentation. 2010-07-29 11:06:10 -04:00
Lance Stout
e8e934fa95 Fixed some PEP8 errors in RootStanza (trailing whitespace and line length) 2010-07-29 11:02:42 -04:00
Lance Stout
bd92ef6acf Updated RootStanza to use registerStanzaPlugin, and be PEP8 compliant. 2010-07-28 13:14:41 -04:00
Lance Stout
c8989c04f3 Replaced traceback calls to use logging.exception where applicable. 2010-07-26 21:02:25 -04:00
Lance Stout
690eaf8d3c Updated license notices to use the correct MIT format. Also corrected references to nonexistant license.txt to LICENSE. 2010-07-20 11:19:49 -04:00
Lance Stout
bb927c7e6a Updated presence stanza to include a 'show' interface. Presence stanza tests updated accordingly. 2010-07-20 00:04:34 -04:00
Lance Stout
d5e42ac0e7 Condensed all of the stanzaPlugin functions into a single registerStanzaPlugin function.
Updated plugins and tests to use new function.
2010-07-19 13:58:53 -04:00
Lance Stout
797e92a6a3 Fixed error in updateRoster when the name keyword parameter is left out.
The Roster stanza object builds item elements manually, and did not handle the
case where the name attribute is set to None, which would crash SleekXMPP.
2010-07-19 04:12:54 -04:00
Nathan Fritz
a38735cb2a added very, very, very basic atom stanza 2010-06-02 15:54:44 -07:00
Lance stout
cff3079a04 Added missing 'internal-server-error' condition to error stanza interface. 2010-05-31 05:30:50 +08:00
Lance stout
938066bd50 Added 'resource-constraint' to the list of error conditions. 2010-05-31 05:30:48 +08:00
Lance Stout
35f4ef3452 Modified the return values for several methods so that they can be chained.
For example:

    iq.reply().error().setPayload(something.xml).send()
2010-05-25 07:28:43 +08:00
Lance Stout
828cba875f Added the error attribute 'code' to the Error object interface. 2010-05-25 07:28:43 +08:00
Nathan Fritz
223507f36f fixed a rather large memory leak 2010-05-12 13:45:36 -07:00
Nathan Fritz
602a6d8491 bugfixes and continuing to work on pubsub tests 2010-04-22 21:24:28 -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
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
935ee4d14e changed license to MIT 2010-03-26 14:32:16 -07:00
Nathan Fritz
0fc9072e5d fixed bug #16 Roster not updating 2010-03-26 13:55:03 -07:00
Nathan Fritz
8d5dbfa691 fixed some presence bugs 2010-02-27 02:02:08 +00:00
Nathan Fritz
0dcbe92d1e got rid of stupid iq set/get/error/result methods 2010-02-15 21:42:27 -08:00
Nathan Fritz
3dbd496de8 fixed presence['type'] w/ show value bug and added test to prove 2010-01-23 01:08:21 -08:00
Nathan Fritz
6b130eb947 unhandled iq's should only respond to errors when type=get/set 2010-01-20 01:42:53 -08:00
Nathan Fritz
13d7328886 muc message stanza enhancements 2010-01-08 23:08:12 +00:00
Nathan Fritz
218c7318e0 * added tests 2010-01-08 07:01:19 +00:00
Nathan Fritz
8e3168e145 * added first stanza tests
* added stanza.keys()
* stanza.getValues() now return substanzas and plugins
* stanza.setValues() now can read substanzas and plugins
* stanzas can now be iterable if stanza.subitem is set to a class
2010-01-08 01:45:11 +00:00
Nathan Fritz
093644ffbd * major stanza improvements
* raise XMPPError in handler to reply with error stanza
* started work on pubsub stanzas
2010-01-05 21:56:48 +00:00
Nathan Fritz
805afa4bc1 * fixed unhandled iqs 2009-12-22 10:05:53 +00:00
Nathan Fritz
07018c0afa * fixed many stanza bugs
* added stanza unhandled (unhandled iqs now reply with feature-not-implemented)
* added stanza exceptions (stanzas may now reply with exceptions when their handler raises an exception)
2009-12-17 01:54:22 +00:00
Nathan Fritz
6897a0b57c * added error, htmlim, roster, and nick stanza plugins 2009-12-15 04:37:10 +00:00
Nathan Fritz
8854509ccd * started converstion to stanza objects 2009-12-11 01:29:46 +00:00
Nathan Fritz
a031dd24a6 tweaked stanzas for easy use 2009-12-10 07:33:59 +00:00
Nathan Fritz
007b04dd30 * added proper message and iq stanzas. presence left to do 2009-12-10 01:23:03 +00:00
Nathan Fritz
96b103b275 moved seesmic branch to trunk 2009-06-03 22:56:51 +00:00