summaryrefslogtreecommitdiff
path: root/sleekxmpp/xmlstream
AgeCommit message (Collapse)Author
2011-02-14Break references that can prevent garbage collection.Lance Stout
2011-02-13Simplification when removing a deletable handler.Lance Stout
2011-02-13Make one-off Callbacks ready for deletion after the prerun step.Lance Stout
Waiting until the actual run step means that the handler is not marked for deletion when checked in the __spawn_event() thread, causing the callback to stay in the handler list.
2011-02-11XMPPError exceptions can keep a stanza's contents.Lance Stout
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-01-27Make stanza.plugins an OrderedDict.Lance Stout
This allows you to determine the order in which substanzas were added in the original XML.
2011-01-27Recognize stanzas that don't use the default namespace.Lance Stout
2011-01-26Cleanup for stanzabase.Lance Stout
Use stanza.values instead of _get/set_stanza_values where used. ElementBase stanzas can now use .tag May use class method tag_name() for stanza classes. ElementBase now has .clear() method.
2011-01-26Upgraded how subitem works.Lance Stout
May now use register_stanza_plugin(Foo, Bar, iterable=True) to add to the set of stanza classes used for iterable substanzas. It is no longer necessary to manually specify the contents of subitem if the new method is used.
2011-01-19Make extending stanza objects nicer.Lance Stout
A stanza object may add is_extension = True to its class definition to provide a single new interface to a parent stanza. For example: import sleekxmpp from sleekxmpp import Iq from sleekxmpp.xmlstream import ElementBase, register_stanza_plugin, ET class Foo(ElementBase): """ Test adding just an attribute to a parent stanza. Adding subelements works as expected. """ is_extension = True interfaces = set(('foo',)) plugin_attrib = 'foo' def setup(self, xml): # Don't include an XML element in the parent stanza # since we're adding just an attribute. # If adding a regular subelement, no need to do this. self.xml = ET.Element('') def set_foo(self, val): self.parent()._set_attr('foo', val) def get_foo(self): return self.parent()._get_attr('foo') def del_foo(self): self.parent()._del_attr('foo') register_stanza_plugin(Iq, Foo) i1 = Iq() i2 = Iq(xml=ET.fromstring("<iq xmlns='jabber:client' foo='bar' />")) >>> i1['foo'] = '3' >>> i1 '3' >>> i1 '<iq id="0" foo="3" />' >>> i2 '<iq id="0" foo="bar" />' >>> i2['foo'] 'bar' >>> del i2['foo'] >>> i2 '<iq id="0" />'
2011-01-16Raise the event 'socket_error' when a socket error occurs.Lance Stout
Will be most useful for debugging and responding to failed connection attempts.
2011-01-14Add a note for debug statement when running scheduled events.Lance Stout
Fixes the intermittent DEBUG ((),) messages that give no explanation. Will now show as: DEBUG Scheduled event: ((), )
2011-01-13Fix bug in JID class. Attribute .jid now works properly.Lance Stout
2011-01-05Allow JID objects to be compared with strings.Lance Stout
Two JIDs match if they have the same full JID value.
2010-12-17Make tests pass for catching exceptions.Lance Stout
May now use sys.excepthook to catch exceptions from threaded handlers.
2010-12-16Use daemon threads instead of signals.Lance Stout
Daemonized threads exit once the main program has quit, and the only threads left running are all daemon threads. Should fix hanging clients while not trampling over anyone else's signal handlers.
2010-12-16Added support for using SSL CA certificates.Lance Stout
Originally provided by Brian Beggs (macdiesel) and Thom Nichols (tomstrummer).
2010-12-07Add support for using xml:lang values.Lance Stout
Support is only for adding literal XML content to stanzas. Full support for things like multiple message bodies with different xml:lang values is still in the works.
2010-11-18Added __repr__ for JIDs.Lance Stout
2010-11-17Fix RESPONSE_TIMEOUT dependency loops.Lance Stout
2010-11-17Make live stream tests work better.Lance Stout
SleekTest can now use matchers when checking stanzas, using the method parameter for self.check(), self.recv(), and self.send(): method='exact' - Same behavior as before 'xpath' - Use xpath matcher 'id' - Use ID matcher 'mask' - Use XML mask matcher 'stanzapath' - Use StanzaPath matcher recv_feature and send_feature only accept 'exact' and 'mask' for now.
2010-11-16scheduler no longer waits for the next event before exitingsleek-1.0-Beta41.0-Beta4Nathan Fritz
2010-11-06Logging no longer uses root logger.Lance Stout
Each module should now log into its own logger.
2010-11-05Simplified SleekTest.Lance Stout
* check_stanza does not require stanza_class parameter. Introspection! * check_message, check_iq, and check_presence removed -- use check instead. * stream_send_stanza, stream_send_message, stream_send_iq, and stream_send_presence removed -- use send instead. * Use recv instead of recv_message, recv_presence, etc. * check_jid instead of check_JID * stream_start may accept multi=True to return a new SleekTest instance for testing multiple streams at once.
2010-11-04Fix bug introduced while fixing another bug.Lance Stout
Threaded event handlers now handle exceptions again.
2010-11-04fixed indent errorsNathan Fritz
2010-11-03Merge branch 'develop' of github.com:fritzy/SleekXMPP into developLance Stout
2010-11-03Catch exceptions for direct events.Lance Stout
Events triggered with direct=True will have exceptions caught. Note that all event handlers in a direct event will currently run in the same thread.
2010-10-31Fix bug in XEP-0030 plugin.Lance Stout
xep_0030 still referenced event_handlers. Added the method event_handled which will return the number of registered handlers for an event to resolve the issue.
2010-10-28Added try/except for setting signal handlers.Lance Stout
Setting signal handlers from inside a thread is not supported in Python, but some applications need to run Sleek from a child thread. SleekXMPP applications that run inside a child thread will NOT be able to detect SIGHUP or SIGTERM events. Those must be caught and managed by the main program.
2010-10-27SSL and signal fixes.Lance Stout
Made setting the SIG* handlers conditional on if the signal defined for the OS. Added the attribute ssl_version to XMLStream to set the version of SSL used during connection. It defaults to ssl.PROTOCOL_TLSv1, but OpenFire tends to require ssl.PROTOCOL_SSLv23.
2010-10-25Made exceptions work.sleek-1.0-Beta21.0-Beta2Lance Stout
Raising an XMPPError exception from an event handler now works, even if from a threaded handler. Added stream tests to verify. We should start using XMPPError, it really makes things simple!
2010-10-24More JID unit tests.Lance Stout
sleekxmpp.xmlstream.jid now has 100% coverage!
2010-10-24Fixed resource bug in JIDs.Lance Stout
JIDs without resources will return '' instead of the bare JID. Cleaned up JID tests, and added check_JID to SleekTest.
2010-10-21Fixed mixed text and elements bug in tostring.Lance Stout
XML of the form <a>foo <b>bar</b> baz</a> was outputted as <a>foo <b>bar</b> baz baz</a>. Includes unit test.
2010-10-20misc small tweakssleek-1.0-Beta11.0-Beta1Nathan Fritz
2010-10-20reconnect if session isn't established within 15 secondsNathan Fritz
2010-10-20capture SIGHUP and SIGTERM (windows) and disconnect; also testall no longer ↵Nathan Fritz
loads string26 with python3
2010-10-20fixed disconnectNathan Fritz
2010-10-18Continue converting to underscored names.Lance Stout
2010-10-17Underscore names by default.Lance Stout
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-16Cleanup, restore PEP8.Lance Stout
2010-10-17Remove deprecation warningsFlorent Le Coz
Remove all the deprecation warnings by using only boundjid. And also fix a indentation error.
2010-10-17Anonymous authenticationFlorent Le Coz
Implemented ANONYMOUS authentication on the ClientXMPP class. To use it, you just need to provide a domain (e.g 'anon.example.com') with an optional resource (e.g 'anon.example.com/resource') as the JID, with no password. The JID class has been improved to accept domains as fulljid. You can test this with echo_client.py python echo_client.py -j anon.louiz.org/ # anonymous with a resource # defined by the server python echo_client.py -j anon.louiz.org/resource # anonymous with given # resource The "normal" authentication method still works exactly like before.
2010-10-14fixed JID to accept server/domain/host as the sameNathan Fritz
2010-10-14don't import statemachineNathan Fritz
2010-10-14deprecated jid, fulljid, server, user, resource properties and added ↵Nathan Fritz
boundjid JID
2010-10-14fixed socket name collision in xmlstream.py and fixed python 3.x compatibilityNathan Fritz
2010-10-13disconnect cleanlyNathan Fritz
2010-10-13new state machine in placeNathan Fritz
2010-10-07SleekTest may now run against a live stream.Lance Stout
Moved SleekTest to sleekxmpp.test package. Corrected error in XML compare method. Added TestLiveSocket to run stream tests against live streams. Modified XMLStream to work with TestLiveSocket.