summaryrefslogtreecommitdiff
path: root/sleekxmpp/xmlstream/xmlstream.py
AgeCommit message (Collapse)Author
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-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-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-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.
2011-08-25Added XMLStream.configure_dns.Lance Stout
This can be overridden to do custom configuration for the DNS resolver, or any other DNS related tasks such as calling the system's res_init().
2011-08-25Session timeout now defaults to 45sec, but can be adjusted.Lance Stout
e.g. self.session_timeout = 15 It is also managed by XMLStream instead of ClientXMPP now.
2011-08-25Handle sending stanzas in chunks if the socket has poor performance.Lance Stout
2011-08-25Shutdown socket before closing.Lance Stout
2011-08-25Update scheduler with locks and ability to remove tasks.Lance Stout
Scheduled tasks must have a unique name.
2011-08-25Add overridable method self.configure_socket().Lance Stout
Allows for setting app specific socket timeouts and other socket options.
2011-08-24Fix handling of DNS exceptions.Lance Stout
2011-08-18Route all unhandled exceptions through XMLStream.exception.Lance Stout
Or through an equivalent override.
2011-08-18PEP8 editsLance Stout
2011-08-18Up the timeout to 30sec instead of 10sec.Lance Stout
2011-08-18added inline documentation for new dns methodsNathan Fritz
2011-08-18Fix exceptions for Python3Lance Stout
2011-08-18DNS is now properly checked and different answers are tried for each ↵Nathan Fritz
reconnect until exhausted
2011-08-13I've seen people complain about Sleek taking so long to disconnect.Lance Stout
Added logging to say that we're waiting for the server to end the stream from its end.
2011-08-12Reduce the maximum delay between connection retries to 10min.Lance Stout
2011-08-04Fix Python3 issue with dict.has_key()Lance Stout
2011-08-04added block as process option and updated documentation. added typical use ↵Nathan Fritz
example to ClientXMPP.
2011-07-27Add support for HTTP Proxy connections.Lance Stout
2011-07-04Added wait parameter to disconnect.Lance Stout
If wait=True, then the disconnect call will block until the send queue has emptied. WARNING: Using wait=True when more stanzas are being added to the queue than can be processed such that the queue is never empty will cause the disconnect call to block indefinitely without actually disconnecting.
2011-07-01So using sys.excepthook to catch errors only works once.Lance Stout
The error bubbles through the event processing loop, breaking it and hanging the application. Instead, there is now a .exception(e) method on XMLStream which may be overridden or reassigned that will receive all unhandled exceptions (read: not XMPPError) from event and stream handlers.
2011-06-20Fix stanza clobbering when replying to errors.sleek-1.0.0-beta5sleek-1.0-Beta51.0.0-beta51.0-Beta5Lance Stout
If a stanza handler raised an exception, the exception was processed and replied by the modified stanza, not a stanza with the original content. A copy is now made before handler processing, and if an exception occurs it is the copy that processes the exception using the original content.
2011-06-08Added session_end event and some docs.Lance Stout
For now, session_end is the same as disconnected, but once support is added later for stream management, the two events will become distinct. Plugins should add handlers for session_end for cleaning any session state.
2011-06-01Cache stanza if sending fails.Lance Stout
The stanza will be sent first once the send queue is reactivated after session start. Stanzas sent by skipping the queue will not be cached.
2011-05-31Apply connection backoff to reconnect attempts.Lance Stout
Backoff was only being done for the initial connection attempt before. Now any reconnection will start with a minimum 1 sec delay which will approximately double between attempts.
2011-05-31Cleanup logging and exception handling.Lance Stout
The syntax and attribute errors raised during a disconnect/reconnect attempt are now caught and produce nicer log messages.