summaryrefslogtreecommitdiff
path: root/sleekxmpp/xmlstream
AgeCommit message (Collapse)Author
2012-01-17Pre-parse StanzaPath paths to speed up matching.Lance Stout
The parsing and namespace cleaning isn't terribly expensive, but it does add up. It was adding an extra 5sec when processing 100,000 basic message stanzas.
2012-01-17Remove stream feature handlers on session_start.Lance Stout
Based on profiling, using around 35 stream handlers quarters the number of basic message stanzas that can be processed in a second, in comparison to only using the bare minimum of four handlers. To help, we can drop handlers for stream features once the session has started. So that we can re-enable these handlers when a stream must restart, the 'stream_start' event has been added which fires whenever a stream header is received. The 'stream_start' event is a more generic replacement for the existing start_stream_handler() method.
2012-01-14Don't serialize XML unless we need to.Lance Stout
2011-12-31Merge branch 'develop' into develop-1.1Lance Stout
2011-12-31Add docs on using Iq stanzas.Lance Stout
2011-12-28Ensure that stanza plugins work as expected if the XML is appended.Lance Stout
2011-12-27Merge branch 'develop' into develop-1.1Lance Stout
2011-12-27Disconnect when a SyntaxError is found.Lance Stout
This should resolve issue #102
2011-12-14Log received data AFTER filtering.Lance Stout
This allows applications to filter out sensitive information, such as passwords, so that it won't appear in the logs. It does mean that the debug logs will not show the actual received data, and there will be no indication of tampering, unless the filter author explicitly logs and notes that a change was made.
2011-12-12Add parameter docs for add_filter.Lance Stout
2011-12-12Add support for incoming/outgoing filters.Lance Stout
A filter accepts and returns a stanza, but potentially modified. To prevent sending/receiving a stanza, a filter may return None. Incoming: self.add_filter('in', in_filter) Outgoing: self.add_filter('out', out_filter) Filters are applied in the order thay are added. However, you may add an order parameter, which is the place in the list to insert the filter: self.add_filter('in', in_filter, order=0)
2011-12-11Fix iterable substanzas when added as normal plugin.Lance Stout
If an iterable plugin was an enabled, it wasn't added to the iterables list.
2011-12-09Allow sending stanzas on session_end.Lance Stout
May set self.disconnect_wait=True so that all disconnect calls wait for the send queue to empty, unless explicitly overridden with wait=False. The session_end now fires before closing the socket so that final stanzas may be sent, such as unavailable presences for components.
2011-12-07Prevent hang when terminating during delayed connection.Lance Stout
2011-12-04Update the API docs for XMLStreamLance Stout
2011-12-04Add API docs for the schedulerLance Stout
2011-12-04Update api docs for handlers and matchersLance Stout
2011-12-04Update api docs for JIDLance Stout
2011-11-25Send the encoded data (bytes) and not the str, on the socket.Florent Le Coz
2011-11-23Experimental support for handling SSL write errors.Lance Stout
2011-11-22Add docs for filesocketLance Stout
2011-11-22Update tostring docs, plus more doc cleanupLance Stout
2011-11-22Update docs for tostringLance Stout
2011-11-21Add more stanzabase docsLance Stout
2011-11-21Update stanzabase docsLance Stout
2011-11-20Ensure that reconnection happens properly after connection loss.Lance Stout
Calling reconnect() simultaneously from multiple threads (like when using XEP-0199 keepalive) could break because the connection state can transition and break the state expectations in one of the reconnect() calls.
2011-11-20Convert daemon threads back into normal threads.Lance Stout
This may need to be reverted if CTRL-C handling breaks, but everything works fine so far in testing. Resolves issue #95.
2011-11-19Tidy up logging some moreLance Stout
2011-11-19Fix logging exceptions from formatting issues.Lance Stout
2011-11-19Pass generic connection errors to XMLStream.exception()Lance Stout
2011-11-19Use a list comprehension instead of filter() to work with Python3.Lance Stout
2011-11-19Merge remote-tracking branch 'vijayp/master' into HEADLance Stout
Conflicts: examples/ping.py sleekxmpp/basexmpp.py sleekxmpp/clientxmpp.py sleekxmpp/features/feature_bind/bind.py sleekxmpp/features/feature_mechanisms/mechanisms.py sleekxmpp/plugins/gmail_notify.py sleekxmpp/plugins/jobs.py sleekxmpp/plugins/xep_0009/remote.py sleekxmpp/plugins/xep_0009/rpc.py sleekxmpp/plugins/xep_0012.py sleekxmpp/plugins/xep_0045.py sleekxmpp/plugins/xep_0050/adhoc.py sleekxmpp/plugins/xep_0078/legacyauth.py sleekxmpp/plugins/xep_0085/chat_states.py sleekxmpp/plugins/xep_0199/ping.py sleekxmpp/plugins/xep_0224/attention.py sleekxmpp/xmlstream/handler/waiter.py sleekxmpp/xmlstream/matcher/xmlmask.py sleekxmpp/xmlstream/xmlstream.py Conflicts: examples/ping.py sleekxmpp/basexmpp.py sleekxmpp/clientxmpp.py sleekxmpp/features/feature_bind/bind.py sleekxmpp/features/feature_mechanisms/mechanisms.py sleekxmpp/plugins/gmail_notify.py sleekxmpp/plugins/jobs.py sleekxmpp/plugins/xep_0009/remote.py sleekxmpp/plugins/xep_0009/rpc.py sleekxmpp/plugins/xep_0012.py sleekxmpp/plugins/xep_0045.py sleekxmpp/plugins/xep_0050/adhoc.py sleekxmpp/plugins/xep_0078/legacyauth.py sleekxmpp/plugins/xep_0085/chat_states.py sleekxmpp/plugins/xep_0199/ping.py sleekxmpp/plugins/xep_0224/attention.py sleekxmpp/xmlstream/handler/waiter.py sleekxmpp/xmlstream/matcher/xmlmask.py sleekxmpp/xmlstream/xmlstream.py
2011-11-19double copyVijay Pandurangan
2011-11-19elide unnecessary copyVijay Pandurangan
2011-11-19remove unnecessary copies when only one handler matches. This was taking up ↵Vijay Pandurangan
~ 15% of CPU on moderate load.
2011-11-19Tidy up logging calls.Lance Stout
2011-11-20This change stops sleekxmpp from spending huge amounts of time unnecessarily ↵Vijay Pandurangan
computing logging data that may never be used. This is a HUGE performance improvement; in some of my test runs, unnecessary string creation was accounting for > 60% of all CPU time. Note that using % in a string will _always_ perform the sting substitutions, because the strings are constructed before the function is called. So log.debug('%s' % expensiveoperation()) will take about the same CPU time whether or not the logging level is DEBUG or INFO. if you use , no substitutions are performed unless the string is actually logged
2011-11-19This change stops sleekxmpp from spending huge amounts of time unnecessarily ↵Vijay Pandurangan
computing logging data that may never be used. This is a HUGE performance improvement; in some of my test runs, unnecessary string creation was accounting for > 60% of all CPU time. Note that using % in a string will _always_ perform the sting substitutions, because the strings are constructed before the function is called. So log.debug('%s' % expensiveoperation()) will take about the same CPU time whether or not the logging level is DEBUG or INFO. if you use , no substitutions are performed unless the string is actually logged
2011-11-14No need to continue processing loop if an error ocurred and ↵Lance Stout
auto_reconnect=False.
2011-11-14Explicitly test for inequality in JIDs.Lance Stout
Fixes issue #113
2011-11-08Don't just call self.disconnect in self.reconnect.Lance Stout
It messes up the auto_reconnect value and causes the XML processing loop to spin wildly with errors on a stream disconnect.
2011-11-07Continue trying to reconnect, even if the attempt fails.Lance Stout
The transition from disconnected to connected states must be done in a loop in case the transition fails, not just once and hope it worked.
2011-10-08Break reference cycle to fix potential memory leaks for callback handlers.Lance Stout
2011-09-23Fix del_event_handler for Python3 (different semantics for filter()).Lance Stout
Fixes issue #103
2011-09-22Fix regression for handling the case where the server terminates the stream.Lance Stout
The processing loop was continuing to call __read_xml after </stream> was received, which caused SyntaxErrors (can't find starting element). This should fix issue #102
2011-09-19SyntaxError requires a restartNathan Fritz
2011-09-01Add whitespace keepalive option.sleek-1.0-RC21.0-RC2Lance Stout
May be disabled by setting: self.whitespace_keepalive = False The keepalive interval can be adjusted using: self.whitespace_keepalive_interval = 300 The default interval is 5min.
2011-09-01Fix memory reference bugs.Lance Stout
2011-08-25Simplify the main process loop.Lance Stout
2011-08-25Make the timeout for event queue checks configurable.Lance Stout
Now defaults xmlstream.WAIT_TIMEOUT, and settable with self.wait_timeout. The new default timeout is 1sec instead of 5sec.