Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
Added test demonstrating using multiple stream clients
in a single test.
|
|
|
|
SleekTest can now use matchers when checking stanzas, using
the method parameter for self.check(), self.recv(), and self.send():
method='exact' - Same behavior as before
'xpath' - Use xpath matcher
'id' - Use ID matcher
'mask' - Use XML mask matcher
'stanzapath' - Use StanzaPath matcher
recv_feature and send_feature only accept 'exact' and 'mask' for now.
|
|
|
|
|
|
Use this event to get notified of the subject changes (or to get the
subject of the room when joining one)
|
|
Just catch an other exception type coming from the dns resolver that
could be raised with hosts like "anon.example.com" which just don't have
any SRV record.
|
|
Each module should now log into its own logger.
|
|
* check_stanza does not require stanza_class parameter. Introspection!
* check_message, check_iq, and check_presence removed -- use check
instead.
* stream_send_stanza, stream_send_message, stream_send_iq, and
stream_send_presence removed -- use send instead.
* Use recv instead of recv_message, recv_presence, etc.
* check_jid instead of check_JID
* stream_start may accept multi=True to return a new SleekTest instance
for testing multiple streams at once.
|
|
Threaded event handlers now handle exceptions again.
|
|
|
|
Quick fixes to get the XEP-0199 plugin working until a proper cleanup is
done.
|
|
|
|
Events triggered with direct=True will have exceptions caught.
Note that all event handlers in a direct event will currently run
in the same thread.
|
|
|
|
xep_0030 still referenced event_handlers. Added the method event_handled
which will return the number of registered handlers for an event to
resolve the issue.
|
|
Setting signal handlers from inside a thread is not supported in Python,
but some applications need to run Sleek from a child thread.
SleekXMPP applications that run inside a child thread will NOT be able
to detect SIGHUP or SIGTERM events. Those must be caught and managed by
the main program.
|
|
Made setting the SIG* handlers conditional on if the signal defined for
the OS.
Added the attribute ssl_version to XMLStream to set the version of SSL
used during connection. It defaults to ssl.PROTOCOL_TLSv1, but OpenFire
tends to require ssl.PROTOCOL_SSLv23.
|
|
Contributed by Cesar Alcalde.
|
|
Contributed by Cesar Alcalde.
|
|
Raising an XMPPError exception from an event handler now works, even if
from a threaded handler.
Added stream tests to verify.
We should start using XMPPError, it really makes things simple!
|
|
Subscription requests and responses were not setting the correct 'to'
attribute.
|
|
sleekxmpp.xmlstream.jid now has 100% coverage!
|
|
|
|
JIDs without resources will return '' instead of the bare JID.
Cleaned up JID tests, and added check_JID to SleekTest.
|
|
Makes test coverage nicer.
|
|
ComponentXMPP was ignoring plugin_config and plugin_whitelist
parameters, making register_plugins() fail.
|
|
|
|
The roster result iq was not being passed to the roster update
handler.
|
|
events
|
|
XML of the form <a>foo <b>bar</b> baz</a> was outputted as
<a>foo <b>bar</b> baz baz</a>.
Includes unit test.
|
|
|
|
|
|
|
|
|
|
loads string26 with python3
|
|
|
|
|
|
|
|
Stanza objects now accept the use of underscored names.
The CamelCase versions are still available for backwards compatibility,
but are discouraged.
The property stanza.values now maps to the old getStanzaValues and
setStanzaValues, in addition to _set_stanza_values and
_get_stanza_values.
|
|
|
|
|
|
The priority is not a number: we consider it 0 as a default
|
|
|
|
It is now possible to ask for "any number of history stanzas" when
joining a muc (with history=None).
Also we use "maxchars" when asking NO history ("0") since it's a MUST in
the XEP.
And you can specify a message when leaving a MUC.
|
|
Remove all the deprecation warnings by using only boundjid.
And also fix a indentation error.
|
|
Implemented ANONYMOUS authentication on the ClientXMPP class.
To use it, you just need to provide a domain (e.g 'anon.example.com')
with an optional resource (e.g 'anon.example.com/resource') as the JID,
with no password. The JID class has been improved to accept
domains as fulljid.
You can test this with echo_client.py
python echo_client.py -j anon.louiz.org/ # anonymous with a resource
# defined by the server
python echo_client.py -j anon.louiz.org/resource # anonymous with given
# resource
The "normal" authentication method still works exactly like before.
|