Commit graph

1856 commits

Author SHA1 Message Date
Emmanuel Gil Peyrot
474405ab90 XEP-0047: fix examples. 2015-04-19 20:48:02 +02:00
Emmanuel Gil Peyrot
4415d3be1a XEP-0047: use coroutines for send(), sendall() and the new sendfile(). 2015-04-19 20:48:02 +02:00
Emmanuel Gil Peyrot
058c530787 XEP-0047: prevent any unneededly large or useless bytes slice. 2015-04-19 20:48:01 +02:00
Emmanuel Gil Peyrot
766d0dfd40 XEP-0047: use asyncio’s Queue implementation, to prevent any possibility of deadlock. 2015-04-19 20:48:01 +02:00
Emmanuel Gil Peyrot
ac31913a65 XEP-0047: make open_stream() return a future that will be set to the stream object. 2015-04-14 19:14:56 +02:00
Emmanuel Gil Peyrot
d34ddf33db XEP-0047: replace threading events with simple booleans. 2015-04-14 19:14:56 +02:00
Emmanuel Gil Peyrot
eb4e09b0ca XEP-0047: allow only one window over the stream. 2015-04-14 19:14:56 +02:00
Emmanuel Gil Peyrot
ce085bf4f4 XEP-0047: announce the correct stanza type if message is selected. 2015-04-14 19:14:56 +02:00
Emmanuel Gil Peyrot
990113f8e7 XEP-0047: return the correct error type on not-acceptable (example 5). 2015-04-14 19:14:56 +02:00
Emmanuel Gil Peyrot
aa022204ee XEP-0047: don’t answer with an unauthorized error when block-size is too big. 2015-04-14 19:14:56 +02:00
Emmanuel Gil Peyrot
c1f23b566b XEP-0047: remove now-useless threading locks. 2015-04-14 19:14:56 +02:00
Emmanuel Gil Peyrot
45f7cb8bda XEP-0047: prevent tracebacks in stanza reading. 2015-04-14 19:14:56 +02:00
Emmanuel Gil Peyrot
d5b1904ebb Use a full JID for testing. 2015-04-04 16:56:26 +02:00
Emmanuel Gil Peyrot
b6b0e82dec Iq.send: set the timeout even when no timeout_callback is set 2015-04-04 16:48:30 +02:00
Emmanuel Gil Peyrot
632b7b4afe XMLStream: add a forever parameter to process(), defaulting to True, to select whether we want to stop the event loop after a disconnection 2015-04-04 16:48:30 +02:00
Emmanuel Gil Peyrot
0ef3fa2703 XMLStream: factorize the highlight function so it can be used in tests as well 2015-03-02 17:10:27 +01:00
mathieui
8da269de88
Set XMLStream.socket after the SSL connection is made too
Fixes SCRAM-SHA-1-PLUS.
2015-02-28 20:32:33 +01:00
mathieui
93ce318259
XEP-0325: Don’t use threading 2015-02-28 19:05:22 +01:00
mathieui
997928de91
Revert or edit most previous XEP plugin changes
In a single commit, because it isn’t that interesting to detail each
change.

List of reverts:

Revert "XEP-0030: allow get_info and get_items to return a coroutine"
    This reverts commit 506ca69917.

Revert "XEP-0060: wrap all iq-sending functions with coroutine_wrapper"
    This reverts commit e85fa4203e.

Revert "XEP-0163: wrap publish() with coroutine_wrapper"
    This reverts commit 69da1c1d7c.

Revert "XEP-0084: wrap functions with coroutine_wrapper"
    This reverts commit ea5615f236.

Partially revert 3d243f7 (XEP-0054) - continue wrapping functions but with future_wrapper

Partially revert 115fe95 (xep-0153) - use callbacks rather than coroutine callbacks, and propagate iqtimeouts in set_avatar.

Revert "XEP-0049: wrap functions with coroutine_wrapper"
    This reverts commit e68135f59f.

Revert "XEP-0077: wrap functions with coroutine_wrapper"
    This reverts commit 1e4944d47e.

Partially revert cd7ff685 (XEP-0199) - remove the iq.send wrapping but keep ping() as a coroutine

Revert "XEP-0257: wrap functions with coroutine_wrapper"
    This reverts commit 4da870fd19.

Revert "XEP-0092: wrap get_version() with coroutine_wrapper"
    This reverts commit 6e35948276.

Revert "XEP-0191: wrap functions with coroutine_wrapper"
    This reverts commit 6e8235544c.

Revert "XEP-0280: wrap functions with coroutine_wrapper"
    This reverts commit f795ac02e3.

Revert "XEP-0012: wrap get_last_activity() with coroutine_wrapper"
    This reverts commit 2ee05d9616.

Revert "XEP-0202: wrap get_entity_time() with coroutine_wrapper"
    This reverts commit 6fb3ecd414.

Revert "XEP-0231: wrap get_bob() with coroutine_wrapper"
    This reverts commit 17464b10a4.

Revert "XEP-0258: wrap get_catalog() with coroutine_wrapper"
    This reverts commit 18a4978456.

Revert "XEP-0050: wrap send_command() and get_commands() with coroutine_wrapper"
    This reverts commit e034b31d6b.

Revert "XEP-0279: wrap check_ip() with coroutine_wrapper"
    This reverts commit e112e86475.
2015-02-28 19:02:49 +01:00
mathieui
83d00a5913
Fix examples relying on the changed API 2015-02-28 19:02:44 +01:00
mathieui
bf5d7c83af
Change the API to make iq.send() always return a future
remove coroutine_wrapper, add a future_wrapper (which is only needed
when the result stanza can be cached).

Update the documentation as well.
2015-02-28 19:02:35 +01:00
mathieui
c66a4d4097
Update the documentation and examples
- update most of the examples with slixmpp
- change the help channels pointed out in the doc
- add a page listing differences from slixmpp and how to use asyncio
  nicely with slixmpp
- fix some in-code rst documentation
2015-02-24 22:47:15 +01:00
mathieui
e112e86475
XEP-0279: wrap check_ip() with coroutine_wrapper 2015-02-24 22:46:08 +01:00
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