summaryrefslogtreecommitdiff
path: root/sleekxmpp/xmlstream
AgeCommit message (Collapse)Author
2012-04-14Handle using provided weakrefs as stanza parent references.Lance Stout
Fixes issue #159
2012-04-13Check for the stop event more aggressively in the send thread.Lance Stout
2012-04-10Fix DNS resolution results for IP literals.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-06Add default mapping of localhost to ::1 and 127.0.0.1Lance Stout
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-27Add support for a new type of stanza interface: boolLance Stout
The set of bool_interfaces provides default behaviour for checking/setting the presence of empty subelements. The prime example of this would be: bool_interfaces = set(['required']) This would mean that ``stanza['required']`` would return ``True`` for: <stanza> <required /> </stanza> and ``False`` for: <stanza /> Likewise, assigning ``stanza['required'] = True`` would add an empty ``<required />`` element, and setting it to ``False`` would remove such an element if it exists.
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-19Fix incompatibility with clearing an element between ElementTree and ↵Lance Stout
cElementTree
2012-02-19xml.etree.ElementTree raises ExpatError instead of SyntaxError or ParseError.Lance Stout
2012-02-18More pyflakes cleanup.Lance Stout
2012-02-17Make last_xml usage a little more explict.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-17Hash JIDs based on full JID string.Lance Stout
This makes JID objects equivalent to strings in dictionaries, etc. >>> j = JID('foo@example.com') >>> s = 'foo@example.com' >>> d = {j: 'yay'} >>> d[j] 'yay' >>> d[s] 'yay' >>> d[s] = 'yay!!' >>> d[j] 'yay!!'
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.