Commit graph

2931 commits

Author SHA1 Message Date
mathieui
e034b31d6b
XEP-0050: wrap send_command() and get_commands() with coroutine_wrapper
(if flow=True in send_command, the result will still be using the
default callbacks and the function will return None)
2015-02-24 22:46:07 +01:00
mathieui
18a4978456
XEP-0258: wrap get_catalog() with coroutine_wrapper 2015-02-24 22:46:07 +01:00
mathieui
17464b10a4
XEP-0231: wrap get_bob() with coroutine_wrapper 2015-02-24 22:46:07 +01:00
mathieui
6fb3ecd414
XEP-0202: wrap get_entity_time() with coroutine_wrapper 2015-02-24 22:46:07 +01:00
mathieui
c214e4f037
XEP-0084: fix setting and getting the Data value
get_value: return a bytes object
set_value: accept a bytes or a str object
2015-02-24 22:46:06 +01:00
mathieui
2ee05d9616
XEP-0012: wrap get_last_activity() with coroutine_wrapper 2015-02-24 22:46:06 +01:00
mathieui
f795ac02e3
XEP-0280: wrap functions with coroutine_wrapper 2015-02-24 22:46:06 +01:00
mathieui
6e8235544c
XEP-0191: wrap functions with coroutine_wrapper 2015-02-24 22:46:06 +01:00
mathieui
6e35948276
XEP-0092: wrap get_version() with coroutine_wrapper 2015-02-24 22:46:05 +01:00
mathieui
4da870fd19
XEP-0257: wrap functions with coroutine_wrapper 2015-02-24 22:46:05 +01:00
mathieui
cd7ff685fb
XEP-0199: wrap functions with coroutine_wrapper and make ping() a coroutine 2015-02-24 22:46:05 +01:00
mathieui
1e4944d47e
XEP-0077: wrap functions with coroutine_wrapper 2015-02-24 22:46:05 +01:00
mathieui
e68135f59f
XEP-0049: wrap functions with coroutine_wrapper 2015-02-24 22:46:04 +01:00
mathieui
6408c5a747
XEP-0115: fix a handler which expected an iq to block 2015-02-24 22:46:04 +01:00
mathieui
115fe954ac
XEP-0153: wrap functions with coroutine_wrapper 2015-02-24 22:46:04 +01:00
mathieui
3d243f7da5
XEP-0054: wrap functions with coroutine_wrapper 2015-02-24 22:46:04 +01:00
mathieui
ea5615f236
XEP-0084: wrap functions with coroutine_wrapper 2015-02-24 22:46:04 +01:00
mathieui
69da1c1d7c
XEP-0163: wrap publish() with coroutine_wrapper 2015-02-24 22:46:03 +01:00
mathieui
e85fa4203e
XEP-0060: wrap all iq-sending functions with coroutine_wrapper 2015-02-24 22:46:03 +01:00
mathieui
506ca69917
XEP-0030: allow get_info and get_items to return a coroutine 2015-02-24 22:46:03 +01:00
mathieui
8ac0ecdf40
Fix dns resolution without aiodns
(use loop.getaddrinfo instead of the blocking version)
2015-02-24 19:17:45 +01:00
mathieui
dbd8115557
Remove the filesocket shim (2.6 compatibility) 2015-02-24 19:08:12 +01:00
mathieui
74b4ea20bf
Add back stanza-specific exception handlers
(fixes the test suite too)
2015-02-23 17:43:35 +01:00
mathieui
11fbaa4241
Import xmlstream.asyncio and coroutine_wrapper at the top level
Since they will be used quite a lot in plugins.
2015-02-23 17:32:39 +01:00
mathieui
8fd0d7c993
Add a coroutine_wrapper decorator
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-23 17:32:31 +01:00
mathieui
1450d36377
Add a coroutine parameter to iq.send() to return a coroutine
(instead of exposing a different send_coroutine method)
2015-02-23 17:20:47 +01:00
mathieui
06358d0665
Use CallbackCoroutine with Iq callbacks too 2015-02-22 20:13:48 +01:00
mathieui
2b3b86e281
Allow event handlers to be coroutine functions
And do not copy data when running events with XMLStream.event()
2015-02-22 14:17:17 +01:00
mathieui
92e4bc752a
Add a “blocking” send_coroutine method to the Iq class 2015-02-21 23:45:30 +01:00
mathieui
ffb2e05f21
Check that ciphers have been initialized
(if not, python will use the system default)
2015-02-17 04:27:03 +01:00
mathieui
1e2665df19
Update the test suite.
- 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-12 12:23:47 +01:00
mathieui
4d063e287e
Remove more threaded= and block= options from the plugins
(also, correct a typo)
2015-02-12 12:21:20 +01:00
mathieui
44f02fb3ab
Do the plugins post_init() upload loading
(the top_level boolean used to load them at this point wasn’t ever set
to true)
2015-02-12 12:18:32 +01:00
mathieui
f6b3a0c6cf
Fix the uses of stanza.reply()
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-12 12:17:01 +01:00
mathieui
8b36e918e8
Fix the componentxmpp interface 2015-02-12 12:11:50 +01:00
Sangeeth Saravanaraj
9044807121 Added help for running example.. 2015-02-05 18:11:41 +05:30
Sangeeth Saravanaraj
24264d3a07 Updated Example.. 2015-02-05 18:10:10 +05:30
Sangeeth Saravanaraj
8bc70264ef misc updates.. 2015-02-05 17:35:04 +05:30
Florent Le Coz
957c635fb7 XMLStream must provide the BaseProtocol interface 2015-02-04 17:49:30 +01:00
mathieui
4027927c6e
Don’t set the msg['from'] and msg['id'] in receipt.ack()
setting msg['id'] is wrong, and setting msg['from'] might lead to
echoing back wrong input.
2015-02-04 16:49:39 +01:00
Sangeeth Saravanaraj
c16b862200 Raise http_request and http_response events. 2015-02-03 12:33:25 +05:30
Sangeeth Saravanaraj
a96f608469 Composing request and response. 2015-01-29 08:33:40 +05:30
Sangeeth Saravanaraj
e1f25604ec Added callbacks, registered stanzas, added features, etc. 2015-01-28 14:52:15 +05:30
Sangeeth Saravanaraj
0fe057b5c3 Boilerplate for Stanzas - request and response 2015-01-27 15:13:57 +05:30
Sangeeth Saravanaraj
be76dda21d Added xep_0332 to setup 2015-01-23 10:29:21 +05:30
Sangeeth Saravanaraj
ecd124dd06 Boilerplate for xep_0332 2015-01-22 16:40:03 +05:30
Sangeeth Saravanaraj
4a8951c4ee added xep_0332 to plugins 2015-01-22 16:39:27 +05:30
Sangeeth Saravanaraj
8afba7de85 renamed example for convenience. 2015-01-22 16:38:16 +05:30
Sangeeth Saravanaraj
1ce42d3a2f Boilerplate example. 2015-01-22 11:30:38 +05:30
Sangeeth Saravanaraj
2f4d811db4 Fixed a typo in docs/guide_xep_0030.rst 2015-01-22 11:13:03 +05:30