summaryrefslogtreecommitdiff
path: root/sleekxmpp/clientxmpp.py
AgeCommit message (Collapse)Author
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-12Update Roster stanza to use RosterItem substanzas.Lance Stout
get_roster() now returns the Iq result stanza instead of True (stanzas also evaluate to True).
2012-01-10Make get_roster(block=False) work properly.Lance Stout
Fixes issue #136
2012-01-06Fix client_roster when the bare JID changes after binding.Lance Stout
Adds session_bind event.
2011-12-05Updated last bit of core files to use new API format.Lance Stout
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-14Fix typoLance Stout
2011-11-11Add use_ssl parameter to ClientXMPP.connectLance Stout
2011-09-28Allow SASL mechanism to be set when creating a ClientXMPP instance.Lance Stout
Instead of using: ClientXMPP(jid, password, plugin_config={ 'feature_mechanisms': {'use_mech': 'SOME-MECH'}}) You can use: ClientXMPP(jid, password, sasl_mech='SOME-MECH') If you need to change the mechanism after instantiation, use: xmpp['feature_mechanisms'].sasl.mech = 'SCRAM-MD5'
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-18PEP8 editsLance Stout
2011-08-18added inline documentation for new dns methodsNathan Fritz
2011-08-18fixed manual address definitionNathan 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-12Merge branch 'develop' into rosterLance Stout
Conflicts: setup.py sleekxmpp/clientxmpp.py
2011-08-12Merge branch 'exceptions' into developNathan Fritz
2011-08-04added block as process option and updated documentation. added typical use ↵Nathan Fritz
example to ClientXMPP.
2011-08-04Merge branch 'develop' into rosterLance Stout
Conflicts: setup.py
2011-08-03Merge branch 'develop' into stream_featuresLance Stout
2011-08-03Integrate a modified version of Dave Cridland's Suelta SASL library.Lance Stout
2011-07-27Merge branch 'develop' into exceptionsLance Stout
2011-07-27Merge branch 'develop' into rosterLance Stout
2011-07-27Fix error with DNS selection.Lance Stout
Missed a renaming of 'priority' to 'item'
2011-07-16Do a weighted choice among the highest prioritized items based on weight ↵Kim Alvefur
instead of a weighted choice based on priorities.
2011-07-02Use a set to track negotiated features.Lance Stout
Added guards to prevent renegotiating STARTTLS or SASL in cases where servers don't behave properly.
2011-07-02Simplify SASL mech registration.Lance Stout
Moved SASL registration completely to the feature plugin, instead of keeping a portion of it in ClientXMPP.
2011-07-02Finish cleaning up stream feature organization.Lance Stout
Fixed missing references that weren't caught due to leftover pyc file allowing tests to keep working when they shouldn't have.
2011-07-01Continued reorganization and streamlining.Lance Stout
2011-06-30Reorganize features into plugins.Lance Stout
2011-06-29Fix SASL mechanism selection bug.Lance Stout
ANONYMOUS was being treated as PLAIN, mechanism was being chosen purely from supported mechanisms, not those provided by the server. Broke nested handler methods into top-level methods.
2011-06-28Reorganized stream level stanzas.Lance Stout
2011-06-16Integrate roster with ClientXMPP.Lance Stout
Roster updates are now passed through to the roster when using self.update_roster, etc.
2011-06-01Begin experimental use of exceptions.Lance Stout
Provides IqTimeout and IqError which are raised when an Iq response does not arrive in time, or it arrives with type='error'.
2011-05-31Merge branch 'develop' into stream_featuresLance Stout
Conflicts: sleekxmpp/clientxmpp.py
2011-05-31Merge branch 'develop' into rosterLance Stout
2011-05-27Don't use the send queue for stream initialization.Lance Stout
Use the parameter now=True to skip the queue when sending Iq stanzas, or using xmpp.send().
2011-05-20Merge branch 'develop' into stream_featuresLance Stout
2011-05-20Merge branch 'develop' into rosterLance Stout
2011-05-20Handle callback return value case.Lance Stout
2011-05-20Merge branch 'develop' into stream_featuresLance Stout
Conflicts: sleekxmpp/clientxmpp.py
2011-05-20Merge branch 'develop' into rosterLance Stout
Conflicts: sleekxmpp/clientxmpp.py tests/test_stream_roster.py
2011-05-20Resolve timeout errors for get_roster.Lance Stout
See issue #89 Using get_roster will now return the same types of values as Iq.send. If a timeout occurs, then the event 'roster_timeout' will be fired. A successful call to get_roster will also raise the 'roster_received' event. To ensure that the get_roster call was successful, here is a pattern to follow: def __init__(self, ...): ... self.add_event_handler('session_start', self.session_start) self.add_event_handler('roster_timeout', self.roster_timeout) self.add_event_handler('roster_received', self.roster_received) def session_start(self, e): self.send_presence() self.get_roster() def roster_timeout(self, e): # Optionally increase the timeout period self.get_roster(timeout=self.response_timeout * 2) def roster_received(self, iq): # Do stuff, roster has been initialized. ...
2011-03-22Merge branch 'develop' into stream_featuresLance Stout
Conflicts: sleekxmpp/clientxmpp.py
2011-03-22Merge branch 'develop' into rosterLance Stout
2011-03-22Updated doc for connect()Lance Stout
2011-03-22May pass use_tls=False to connect().Lance Stout
Will disable the use of TLS for the session.
2011-02-14Merge branch 'develop' into stream_featuresLance Stout
Conflicts: sleekxmpp/xmlstream/stanzabase.py