Lonami Exo
d2e995ef95
Change code to recv and handle disconnections
2018-11-24 20:53:28 +01:00
Lonami Exo
f046d1f0a3
Fix deadlock on unexpected disconnections
2018-11-10 11:23:19 +01:00
Lonami Exo
67c5572d7b
Possibly fix possible deadlock
2018-10-28 11:53:28 +01:00
Lonami Exo
b0e587c03d
Except expected ConnectionError in the receive loop
2018-10-26 10:36:33 +02:00
Lonami Exo
7dece209a0
Cancel tasks on reconnect instead of awaiting them
...
This prevents us from locking forever on any task that doesn't
rely on cancellation tokens, in this case, Connection.recv()'s
_recv_queue.get() would never complete after the server closed
the connection.
Additionally, working with cancellation tokens in asyncio is
somewhat annoying to do.
Last but not least removing the Connection._disconnected future
avoids the need to use its state (if an exception was set it
should be retrieved) to prevent asyncio from complaining, which
it was before.
2018-10-21 16:20:05 +02:00
Lonami Exo
f2e77f4030
Fix using the wrong logger in Connection
2018-10-21 16:10:09 +02:00
Lonami Exo
9dc4009152
Handle the right errors
2018-10-19 14:41:50 +02:00
Lonami Exo
f5bc952309
Don't set the disconnected flag twice
2018-10-19 13:25:00 +02:00
Lonami Exo
6d30a38316
Let Connection._disconnected be a proper Future
...
This means that awaiting on disconnect will properly raise errors,
allowing to differentiate clean disconnects from faulty ones.
2018-10-19 10:46:34 +02:00
Lonami Exo
542d0f539b
Revisit connection and properly detail the class' intent
2018-10-19 10:35:22 +02:00
Lonami Exo
ded24db3dd
Fix proxy support by removing conflicting arguments
2018-10-06 20:56:09 +02:00
Lonami Exo
7e7bbcf4c0
Remove irrelevant TODOs and add more logging
2018-10-05 13:26:44 +02:00
Lonami Exo
ebde3be820
Add support for proxy again
2018-10-05 13:26:44 +02:00
Lonami Exo
db83709c6b
Support connection timeout
2018-10-05 13:26:44 +02:00
Lonami Exo
37b9922f64
Handle cancellation on the receive loop
2018-10-05 13:26:44 +02:00
Lonami Exo
e319fa3aa9
Handle IncompleteReadError and InvalidChecksumError
2018-10-05 13:26:44 +02:00
Lonami Exo
5edc2216c7
Handle initial connection if network is down correctly
2018-10-05 13:26:44 +02:00
Lonami Exo
2d275989cb
Properly handle cancellation in _ReadyQueue
2018-10-05 13:26:44 +02:00
Lonami Exo
105bd52eee
Abstract the send queue off MTProtoSender
2018-10-05 13:26:44 +02:00
Lonami Exo
9402b4a26d
Create a new layer to lift encryption off the MTProtoSender
2018-10-05 13:26:44 +02:00
Lonami Exo
daf94e416b
Fix connection never receiving and missing clone method
2018-10-05 13:26:44 +02:00
Lonami Exo
2fd51b8582
Let all connection modes implement the new Connection
2018-10-05 13:26:44 +02:00
Lonami Exo
096424ea78
Create a new Connection class to work through queues
2018-10-05 13:26:44 +02:00