summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-02-24XEP-0279: wrap check_ip() with coroutine_wrappermathieui
2015-02-24XEP-0050: wrap send_command() and get_commands() with coroutine_wrappermathieui
(if flow=True in send_command, the result will still be using the default callbacks and the function will return None)
2015-02-24XEP-0258: wrap get_catalog() with coroutine_wrappermathieui
2015-02-24XEP-0231: wrap get_bob() with coroutine_wrappermathieui
2015-02-24XEP-0202: wrap get_entity_time() with coroutine_wrappermathieui
2015-02-24XEP-0084: fix setting and getting the Data valuemathieui
get_value: return a bytes object set_value: accept a bytes or a str object
2015-02-24XEP-0012: wrap get_last_activity() with coroutine_wrappermathieui
2015-02-24XEP-0280: wrap functions with coroutine_wrappermathieui
2015-02-24XEP-0191: wrap functions with coroutine_wrappermathieui
2015-02-24XEP-0092: wrap get_version() with coroutine_wrappermathieui
2015-02-24XEP-0257: wrap functions with coroutine_wrappermathieui
2015-02-24XEP-0199: wrap functions with coroutine_wrapper and make ping() a coroutinemathieui
2015-02-24XEP-0077: wrap functions with coroutine_wrappermathieui
2015-02-24XEP-0049: wrap functions with coroutine_wrappermathieui
2015-02-24XEP-0115: fix a handler which expected an iq to blockmathieui
2015-02-24XEP-0153: wrap functions with coroutine_wrappermathieui
2015-02-24XEP-0054: wrap functions with coroutine_wrappermathieui
2015-02-24XEP-0084: wrap functions with coroutine_wrappermathieui
2015-02-24XEP-0163: wrap publish() with coroutine_wrappermathieui
2015-02-24XEP-0060: wrap all iq-sending functions with coroutine_wrappermathieui
2015-02-24XEP-0030: allow get_info and get_items to return a coroutinemathieui
2015-02-24Fix dns resolution without aiodnsmathieui
(use loop.getaddrinfo instead of the blocking version)
2015-02-24Remove the filesocket shim (2.6 compatibility)mathieui
2015-02-23Add back stanza-specific exception handlersmathieui
(fixes the test suite too)
2015-02-23Import xmlstream.asyncio and coroutine_wrapper at the top levelmathieui
Since they will be used quite a lot in plugins.
2015-02-23Add a coroutine_wrapper decoratormathieui
This decorator checks for the coroutine=True keyword arg and wraps the result of the function call in a coroutine if it isn’t. This allows to have constructs like: @coroutine_wrapper def toto(xmpp, *, coroutine=False): if xmpp.cached: return xmpp.cached else: return xmpp.make_iq_get().send(coroutine=coroutine) @asyncio.coroutine def main(xmpp): result = yield from toto(xmpp, coroutine=True) xmpp.cached = result result2 = yield from toto(xmpp, coroutine=True) If the wrapper wasn’t there, the second fetch would fail. This decorator does not do anything if the coroutine argument is False.
2015-02-23Add a coroutine parameter to iq.send() to return a coroutinemathieui
(instead of exposing a different send_coroutine method)
2015-02-22Use CallbackCoroutine with Iq callbacks toomathieui
2015-02-22Allow event handlers to be coroutine functionsmathieui
And do not copy data when running events with XMLStream.event()
2015-02-21Add a “blocking” send_coroutine method to the Iq classmathieui
2015-02-17Check that ciphers have been initializedmathieui
(if not, python will use the system default)
2015-02-12Update the test suite.mathieui
- monkey-patch our own monkey-patched idle_call to run events immediatly rather than adding them to the event queue, and add a fake transport with a fake socket. - remove the test file related to xep_0059 as it relies on blocking behavior, and comment out one xep_0030 test uses xep_0059 - remove many instances of threading and sleep()s because they do nothing except waste time and introduce race conditions. - keep exactly two sleep() in IoT xeps because they rely on timeouts
2015-02-12Remove more threaded= and block= options from the pluginsmathieui
(also, correct a typo)
2015-02-12Do the plugins post_init() upload loadingmathieui
(the top_level boolean used to load them at this point wasn’t ever set to true)
2015-02-12Fix the uses of stanza.reply()mathieui
This is relying on the stanzas being copied for each handler. We no longer do that for performance reasons, so instead of editing the copy in-place, stanza.reply() now returns a new stanza.
2015-02-12Fix the componentxmpp interfacemathieui
2015-02-04XMLStream must provide the BaseProtocol interfaceFlorent Le Coz
2015-02-04Don’t set the msg['from'] and msg['id'] in receipt.ack()mathieui
setting msg['id'] is wrong, and setting msg['from'] might lead to echoing back wrong input.
2015-01-15Expose MUC support in disco#infomathieui
http://xmpp.org/extensions/xep-0045.html#disco-client
2015-01-05Fix the call of iscoroutinefunction()Florent Le Coz
2015-01-03Do not copy the stanza before calling each handlerexp_idle_callFlorent Le Coz
2015-01-03Use a deque for the idle listFlorent Le Coz
2015-01-03Delay the handling of stanza for when the process is not busyFlorent Le Coz
We use some dirty monkey-patching to add a idle_call() function to the asyncio module. We then use that method to handle each received stanza only when the event loop is not busy with some other IO (mainly, the standard input)
2014-12-17Make the ca_certs option useful again (CA-based cert validation)mathieui
It was broken since the fork.
2014-12-11Bring back authentication through SASL EXTERNALmathieui
(and only update the ssl context before it gets used)
2014-12-11Fix xep-0257 for slixmpp, and fix an element namemathieui
2014-11-14Lower the timeout for each DNS resolution attemptFlorent Le Coz
2014-11-12Let loop.create_connection do its getaddrinfo coroutine if there are no dns ↵mathieui
records left/available
2014-11-05Also work without SRV recordsFlorent Le Coz
2014-11-03Depend on aiodns and not dnspython in the setup.pymathieui