summaryrefslogtreecommitdiff
path: root/sleekxmpp/xmlstream/xmlstream.py
AgeCommit message (Collapse)Author
2012-06-01Fix syntax error in line continuation.Lance Stout
2012-06-01Check that the session is still alive before sending data.Lance Stout
Fixes issue #168
2012-05-31Preemptively mark threads as exited if calling disconnect().Lance Stout
2012-05-27Handle not being able to connect using IPv6 if the host does not support it.Lance Stout
2012-05-22Add better certificate handling.Lance Stout
Certificate host names are now matched (using DNS, SRV, XMPPAddr, and Common Name), along with expiration check. Scheduled event to reset the stream once the server's cert expires. Handle invalid cert trust chains gracefully now.
2012-05-10Make the error message better regarding hanged threads.Lance Stout
All event handlers which call disconnect() MUST be registered using `add_event_handler(..., threaded=True)` in order to prevent temporarily deadlocking until a timeout occurs. This is required because disconnect() waits for the main threads to exit before returning, including the event processing thread. Since handlers registered without `threaded=True` run in the event processing thread, the disconnect() call will deadlock.
2012-04-29Add logging note about potential cause of disconnect() deadlock.Lance Stout
2012-04-29Set a timeout when waiting for threads.Lance Stout
If calling disconnect() from a non-threaded event handler, deadlock can happen as disconnect() is waiting for threads to close, but the event runner is blocked by a handler waiting for disconnect() to return. It is best to specify threaded=True for event handlers which may call disconnect().
2012-04-24Ensure that SSL errors are handled in Py3.3Lance Stout
2012-04-22Track threads to ensure all have exited when disconnecting.Lance Stout
2012-04-21Count and track the main threads, so we can delay disconnecting until all ↵Lance Stout
have quit.
2012-04-20Add _use_daemons flag to XMLStream to run all threads in daemon mode.Lance Stout
This WILL make the Python interpreter produce exceptions on shutdown.
2012-04-13Check for the stop event more aggressively in the send thread.Lance Stout
2012-04-08Add a prefix to stanza ID values to ensure that they are unique per client.Lance Stout
2012-04-06Correct the statemachine's ensure_any method.Lance Stout
It had not been updated to use the new condition instead of the old threading event.
2012-04-01Display IPv6 literal addresses in brackets.Lance Stout
2012-03-30Improve connection handling by not delaying until all DNS records are tried.Lance Stout
2012-03-30Add better DNS resolver wrapper.Lance Stout
2012-03-28Fix sending data after </stream>Lance Stout
Clearing the session_started_event before sending </stream> will pause the send loop so that we don't continue sending data after the </stream>.
2012-03-27Improve handling disconnections.Lance Stout
- Add option for disconnecting without sending </stream>: self.disconnect(send_close=False) - Optionally distinguish between session_end and disconnected based on if </stream> was sent. self.end_session_on_disconnect = False
2012-03-27Simplify sending whitespace keepalives.Lance Stout
Now that we have the send lock, we can use now=True.
2012-03-21Correct handling of acks for XEP-0198 under heavy load.Lance Stout
2012-03-21Respect reattempt=False setting when reconnecting.Lance Stout
2012-03-20Correct connect() documentation, don't delay attempts if reattempt=False.Lance Stout
See issue #152
2012-03-18Add out_sync filter category.Lance Stout
Added option to XMLStream.send() to skip applying filters. Filters in the out_sync group are synced with placing stanza content either on the wire directly or into the send queue. Because of this, out_sync filters should not block.
2012-03-12Add setting for maximum number of reconnection attempts.Lance Stout
Setting self.reconnect_max_attempts to a non-None value will limit the number of times a connection attempt will be made before quiting and raising a 'connection_failed' event.
2012-03-07Modify the cert event to provide the PEM encoded cert in all cases.Lance Stout
2012-02-22Let disconnect() wait for its lock for a few seconds.Lance Stout
This should eliminate most debug statements about not being able to acquire a lock during disconnect.
2012-02-19xml.etree.ElementTree raises ExpatError instead of SyntaxError or ParseError.Lance Stout
2012-02-18More pyflakes cleanup.Lance Stout
2012-02-17Fix undeclared variable usage for reconnect.Lance Stout
2012-02-16Fix fixing remove_stanza()Lance Stout
Fixes issue #146
2012-02-16Don't retrieve cert until a connection is made.Lance Stout
2012-02-16Fix remove_stanza().Lance Stout
Fixes issue #146
2012-02-10Don't shutdown completely after handling SyntaxError.Lance Stout
The ``shutdown = True`` line was preventing the stream from reconnecting after handling the error. Fixes issues #101, #145
2012-02-10Fix undefined variable references when DNS timeouts.Lance Stout
2012-02-10Fix IPv6 query logging.Lance Stout
2012-02-09Add support for querying and connecting to IPv6 addresses.Lance Stout
Tested using servers provided by Florian Jensen (flosoft.biz) during the 2012 FOSDEM XMPP Summit. Fixes issue #94.
2012-02-04Add ssl_cert event (direct).Lance Stout
The payload is a dictionary of parsed cert data, as provided by Python's getpeercert() socket method. It unfortunately does not provide much detail beyond basic info.
2012-02-02Fix typo s/is_set/is_set()Lance Stout
2012-01-28Make socket_error run as a direct event to ensure that it is handled.Lance Stout
Socket errors that occur before stream processing begins could not be handled as the event loop would not be running yet. Resolves issue #142
2012-01-18Revert "Remove stream feature handlers on session_start."Lance Stout
This reverts commit 4274f49ada77d709b931f65e34d3a64e75b81638. The SASL mech was choking on this, so let's send it back for some more refining.
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-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-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.