summaryrefslogtreecommitdiff
path: root/slixmpp/xmlstream/xmlstream.py
AgeCommit message (Collapse)Author
2020-03-29Reset reconnect delay on manual reconnect, add delay eventGeorg Lukas
This is just a hotfix workaround for an underlying problem. The `_connect_routine` code is "blocking" (in an async way) for `connect_loop_wait` seconds, so that a fresh-started manual reconnect will be silenty delayed. This code does the following changes: 1. It moves the delay to before the DNS resolution (with the exponential back-off it might well be that the DNS records are changed while slixmpp is waiting). 2. It adds a new event `reconnect_delay` that gets passed the number of seconds it will delay before actually reconnecting 3. It resets the `connect_loop_wait` timer on a manual connect/reconnect call to fix the interactive experience. A *proper fix* would replace the sleep in `_connect_routine` with a properly timered re-invocation of it, but I don't understand enough of asyncio for pulling off that magic, and this is actually a proper improvement. Also I tested this and it works!
2020-03-23reconnect: fix callback when not currently connectedGeorg Lukas
The 'disconnected' event is normally fired from connection_lost(), which is called by the connection code when the connection is lost after being established. However, if the connection wasn't successfully established, a manual /reconnect no-ops because it waits for the 'disconnected' callback which never fires. This patch does two things: 1. Immediately fire a 'disconnected' event in disconnect() if there is no transport. 2. Register the 'disconnected' event handler in reconnect() *before* it can be fired.
2019-12-27Put the queue exception at toplevelmathieui
2019-12-27Improve the send queue code a bitmathieui
2019-12-27add a separate place for slow ass filtersmathieui
2019-12-27raise Exceptionmathieui
2019-12-27Try/except around outbound stanza processingmathieui
to avoid killing the send loop when a filter has an error
2019-12-27Remove trailing whitespacemathieui
2019-12-27Run the send queue in a separate coroutinemathieui
To be able to run async stream filters
2019-08-28Revert "Remove a block of compatibility code"Maxime “pep” Buquet
This reverts commit 37bc1bb9b3bdc26b7f28b30406d1013f9b0f6ceb. Confusion confusion. Mathieui thought this was a sleekxmpp thing when it's actually been added not so long ago.
2019-08-26Remove a block of compatibility codemathieui
even if the user makes that mistake, it does not cause problems down the line.
2019-07-13Make generated stanza id truly randomMaxime “pep” Buquet
Fix long-standing security issues where stanza @id be predictable. Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-07-03xmlstream.disconnect: add compat behaviour, set wait to default `2.0` when ↵Maxime “pep” Buquet
True is passed. Update documentation Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-04-24xmlstream.disconnect: fix frenchism in docstringMaxime “pep” Buquet
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-04-24xmlstream.disconnect: typing hintsMaxime “pep” Buquet
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-03-26mark end-of-stream as session-ending eventGeorg Lukas
2019-03-26Do not directly enqueue connect() as event handler, parameter mismatchGeorg Lukas
2019-03-26Do not close stream on 0-timeout disconnect, allows 0198 resumeGeorg Lukas
2019-03-26Propagate disconnect() reason into 'disconnected' eventGeorg Lukas
2019-02-22Fix slixmpp.ClientXMPP.cancel_connection_attempt()ehendrix23
2018-10-15fixing deprecation warnings for pytestFlorian Klien
2018-10-09Add the loop parameters at places where it has been forgottenmathieui
2018-08-08Fix compatibility with python 3.5 and 3.6mathieui
which do not have loop.start_tls and require the old ssl implementation.
2018-08-07Fix TLS with python 3.7mathieui
Use the "new" sslproto API instead of the deprecated TLS API. Also remove the unused "socket" parameter in XMLStream.__init__.
2018-07-01Switch from @asyncio.coroutine to async def everywhere.Emmanuel Gil Peyrot
2018-02-11asyncio.async has been scheduled for removal for a long time nowmathieui
move to asyncio.ensure_future
2018-01-10Fix typos, thanks `codespell`!Emmanuel Gil Peyrot
2017-11-23Record the current connection attempt in a future and allow cancellationmathieui
It does not make sense to have competing connection attempts, as the XMLStream class is not designed for this. On slow and unpredictable networks, it means we could have two c2s connections opened, leading to mayhem.
2017-07-17xmlstream: Remove pygments dumping.Emmanuel Gil Peyrot
It’s slow and makes the debug logs difficult to parse.
2017-05-24always define ssl_contextMathias Ertl
2017-05-24pass SSL context to TLS connectionsMathias Ertl
2017-05-24add function to explicitly get the ssl contextMathias Ertl
2017-05-16Merge remote-tracking branch 'samwhited/sslsocket_workaround'louiz’
2017-05-08Fixes port being set to 0 when connecting via hostname.Tom Wambold
This seems to be the same issue as: https://dev.louiz.org/issues/3164 Using their suggested fix, if the DNS lookup doesn't return a port, use the one passed in instead.
2017-02-16xmlstream: Warn when the parser is None when data is received.Emmanuel Gil Peyrot
2016-12-29Check for XML parsing errors and disconnect in that case.WIPEmmanuel Gil Peyrot
2016-12-29XMLStream: Break a long line to make it more readable.Emmanuel Gil Peyrot
2016-10-06Fix fetching the SSL socket for Python 3.4 and 3.5Sam Whited
2016-10-05Remove monkeypatching hack on the event loopmathieui
This allowed us to schedule events in-order later in the event loop, but was detrimental to using other event loops and debugging.
2016-09-30Fix #3226 (unicity of scheduled event names)mathieui
Thanks tchiroux for raising the issue and providing the fix as well.
2016-09-30Minor documentation fixesSam Whited
2016-08-12Provide domain name to loop.create_connection if using SSL.Gasper Zejn
2015-09-25Reset the DNS answers after a connection is made succesfullymathieui
2015-09-19Fix connecting to a custom host/portmathieui
2015-09-14(Temporary) fix for python 3.5mathieui
This will work until the old ssl implementation is finally deprecated. Hopefully, new features to painlessy implement starttls will be around by then.
2015-08-08Reset the connect future after a disconnectmathieui
2015-07-21Add a waiting time before reconnecting automaticallymathieui
Punishing a server for being down by sending more traffic is not a nice thing to do. Taking 100% of the CPU is not nice either.
2015-05-12Allow the use of a custom loop instead of asyncio.get_event_loop()mathieui
2015-05-06Make syntax highlighting for XML lazy, to only call pygments when debug logs ↵Emmanuel Gil Peyrot
are enabled. Makes poezio about 11% faster when sending/receiving messages.
2015-04-04XMLStream: add a forever parameter to process(), defaulting to True, to ↵Emmanuel Gil Peyrot
select whether we want to stop the event loop after a disconnection