jesopo
|
fedef3ba3d
|
also catch sts outside of connection reg, throw up Disconnect to be sure
|
2020-04-20 16:21:29 +01:00 |
jesopo
|
3208ee738c
|
don't catch and "handle" server disconnect. throw up to bot.py
|
2020-04-20 12:04:01 +01:00 |
jesopo
|
feb71d5b14
|
STS transmuting doesn't need the context of a server object
|
2020-04-19 23:19:23 +01:00 |
jesopo
|
899d6f69d8
|
server_hostname is only useful for TLS connections
|
2020-04-19 23:05:21 +01:00 |
jesopo
|
ae01201d39
|
support requested disconnects, support STS connection transmutations
|
2020-04-19 23:04:56 +01:00 |
jesopo
|
1bfe06d2ea
|
implement STS policies; we're not parsing them yet though
|
2020-04-19 21:51:33 +01:00 |
jesopo
|
c4019e6242
|
set future on awaited self.send() after we've processed for session state
|
2020-04-19 13:11:06 +01:00 |
jesopo
|
47223c257c
|
remove commented-out proof of concept auto-join stuff
|
2020-04-19 02:23:00 +01:00 |
jesopo
|
ebef439e0a
|
grab WHO on JOIN but make sure we only do one at once
|
2020-04-19 02:19:19 +01:00 |
jesopo
|
d15e9ee361
|
`Numeric` doesn't exist anymore
|
2020-04-19 01:32:55 +01:00 |
jesopo
|
a187dd2175
|
SASL auth text should be wrapped at 400 bytes
|
2020-04-19 00:56:24 +01:00 |
jesopo
|
a48a0dedd9
|
add missing Responses import on server.py
|
2020-04-19 00:56:01 +01:00 |
jesopo
|
bf68b6cb75
|
ah oops, the bindhost port was a test value that got committed
|
2020-04-19 00:55:32 +01:00 |
jesopo
|
7232876a75
|
update ircstates to v0.9.0, use const RPL/ERR vars
|
2020-04-17 21:06:20 +01:00 |
jesopo
|
624ffe2cf8
|
add py.typed
|
2020-04-16 14:20:16 +01:00 |
jesopo
|
0e2a2bcd00
|
create a fake echo-message when we have not CAP negotiated echo-message
|
2020-04-15 21:10:24 +01:00 |
jesopo
|
b88fa51907
|
should be checking `self.hostname`, not `self.hostmask` (func pointer!)
|
2020-04-15 21:10:02 +01:00 |
jesopo
|
68054eacd5
|
support PASS from ConnectionParams
|
2020-04-13 19:10:02 +01:00 |
jesopo
|
8656f63d09
|
support labeled-response (but don't REQ it yet)
|
2020-04-13 18:23:05 +01:00 |
jesopo
|
bd424d11ff
|
Future[Line], not Awaitable[Line] in self._wait_for
|
2020-04-13 17:32:39 +01:00 |
jesopo
|
cb3439e674
|
also match wait_fors that were in progress when a new one was triggered
|
2020-04-13 17:30:14 +01:00 |
jesopo
|
7cb2457136
|
add util functions to join a channel and whois a user
|
2020-04-12 13:54:27 +01:00 |
jesopo
|
d571ad7ff9
|
self.recv() can return an empty array
|
2020-04-12 13:53:39 +01:00 |
jesopo
|
923809ab43
|
add async_stagger reference for backported happy eyeballs open_connection
|
2020-04-11 11:33:53 +01:00 |
jesopo
|
c4009e1c07
|
on ERR_SASLFAIL, pop from matches
|
2020-04-10 21:37:26 +01:00 |
jesopo
|
3700ba4ab6
|
on RPL_SASLMECHS, we should still wait_for the ERR_SASLFAIL after it
|
2020-04-10 21:36:17 +01:00 |
jesopo
|
5da82e7d66
|
check for PLAIN should use `match[0]` not `match`
|
2020-04-10 21:36:03 +01:00 |
jesopo
|
a546a468b7
|
remove premature import for future work
|
2020-04-09 11:12:02 +01:00 |
jesopo
|
85ee8e95e0
|
WHO ourselves on 001 to get our realname
|
2020-04-09 11:09:44 +01:00 |
jesopo
|
9f832df2f1
|
allow Numerics() with `params` use NUMERICS list from ircstates
|
2020-04-09 11:09:15 +01:00 |
jesopo
|
179a2ca93a
|
refactor TCP logic in to ITCPTransport (we can mock this for unittests)
|
2020-04-06 13:22:17 +01:00 |
jesopo
|
750fbd8acc
|
comment about why server CAP/USER/NICK send() calls are not awaited
|
2020-04-05 23:57:02 +01:00 |
jesopo
|
730fef38f3
|
server.send() should be sync and return a Future - no nead for double await
|
2020-04-05 23:54:57 +01:00 |
jesopo
|
899d4821f0
|
add asyncs.MaybeAwait() - optionally awaitable coroutines
|
2020-04-05 23:37:54 +01:00 |
jesopo
|
84b374f43d
|
FoldString -> ParamFolded
|
2020-04-05 17:40:22 +01:00 |
jesopo
|
d837529698
|
next_line() doesn't need `wait_for` param
|
2020-04-05 17:22:33 +01:00 |
jesopo
|
423623fec1
|
add a Response subclass just to take RPL_/ERR_ names along with params
|
2020-04-05 17:16:19 +01:00 |
jesopo
|
0829fd9499
|
refactor and simplify normal reading vs wait_for
|
2020-04-05 17:11:04 +01:00 |
jesopo
|
b8ddc6883d
|
oops; add missing return statement from server.send
|
2020-04-05 13:19:19 +01:00 |
jesopo
|
1c7caf9039
|
use Server.registerd to detect handshake CAP LS; handle non-handshake CAP LS
|
2020-04-05 13:18:23 +01:00 |
jesopo
|
2a9d658207
|
return Future from `async send()` to *optionally* wait for it to hit the wire
|
2020-04-05 13:17:53 +01:00 |
jesopo
|
e470d57780
|
pass IServer to Response so we can have FoldString (match with casefold rules)
|
2020-04-05 13:00:13 +01:00 |
jesopo
|
f70932ac44
|
move more CAP related stuff to CAPContext
|
2020-04-05 12:48:29 +01:00 |
jesopo
|
afe9ec359d
|
update ircstates to 0.8.2
|
2020-04-05 12:47:19 +01:00 |
jesopo
|
404154e6a2
|
add __repr__ for matching.py objects
|
2020-04-03 13:05:38 +01:00 |
jesopo
|
688418df04
|
dont tg.spawn() for each message, allow wait_for to read
|
2020-04-03 13:04:02 +01:00 |
jesopo
|
45ac3be550
|
ssl/ssl_verify -> tls/tls_verify
|
2020-04-03 09:50:30 +01:00 |
jesopo
|
2d93e27feb
|
maybe_sasl() -> sasl_auth(SASLParms)
|
2020-04-03 09:49:46 +01:00 |
jesopo
|
8cc3db5e58
|
ensure server nonce .startswith() our nonce
|
2020-04-03 00:07:48 +01:00 |
jesopo
|
99d55de170
|
fix JOIN emit typehint issue (emit.channel may be None)
|
2020-04-02 23:53:47 +01:00 |
jesopo
|
b34e4fcc22
|
`await server.send()` should block until it hits the wire
|
2020-04-02 23:53:32 +01:00 |
jesopo
|
8dde7b7216
|
codestyle in ircv3.py
|
2020-04-02 23:07:09 +01:00 |
jesopo
|
5b4714ca1e
|
query channel MODEs on-JOIN
|
2020-04-02 22:57:22 +01:00 |
jesopo
|
63fa470a3f
|
add ConnectionParams.ssl_verify
|
2020-04-02 22:43:34 +01:00 |
jesopo
|
331cadfb39
|
use ConnectionParams.bindhost
|
2020-04-02 22:39:03 +01:00 |
jesopo
|
94c501d4de
|
do `CAP LS 302` (not just `CAP LS`)
|
2020-04-02 22:38:02 +01:00 |
jesopo
|
60e601aa81
|
implement SASL SCRAM
|
2020-04-02 22:37:51 +01:00 |
jesopo
|
a4f5d8045f
|
add numerics.py to translate names, remove Response(errors=)
|
2020-04-02 20:55:01 +01:00 |
jesopo
|
06a4d20fc8
|
make handshake CAP dance happen in one async task. move to ircv3.py
|
2020-04-02 20:16:07 +01:00 |
jesopo
|
1b3c537e0a
|
only try SASL on CAP NEW when one of the new CAPs is SASL
|
2020-04-02 18:43:59 +01:00 |
jesopo
|
61f1cdba9d
|
don't try SASL twice, try SASL on CAP NEW
|
2020-04-02 18:38:37 +01:00 |
jesopo
|
c139879670
|
add a matching Not() type - to invert other criteria
|
2020-04-02 18:38:28 +01:00 |
jesopo
|
d310dad471
|
add SALContext().from_params()
|
2020-04-02 18:17:00 +01:00 |
jesopo
|
0dd7121469
|
add some useful imports to ircrobots/__init__.py
|
2020-04-02 18:16:29 +01:00 |
jesopo
|
03c71f6498
|
remove unneeded imports (thanks importchecker!)
|
2020-04-02 18:00:28 +01:00 |
jesopo
|
f43cb75bfa
|
move SASL logic out in to sasl.py.SASLContext
|
2020-04-02 17:56:44 +01:00 |
jesopo
|
023107385e
|
add interface for code units that need an IServer context
|
2020-04-02 17:55:50 +01:00 |
jesopo
|
b46cecf420
|
move ConnectionParams (and SASLParams) out to params.py
|
2020-04-02 17:55:15 +01:00 |
jesopo
|
971f49f4c7
|
move more sasl-related stuff out to sasl.py
|
2020-04-02 17:29:52 +01:00 |
jesopo
|
d19e8d1df7
|
don't offer Emit logic in Bot, end-users shouldn't care
|
2020-04-02 17:11:29 +01:00 |
jesopo
|
7a1373d9b2
|
add SASL support!
|
2020-04-02 17:04:08 +01:00 |
jesopo
|
16e500fd43
|
remove unneeded "from queue import Queue"
|
2020-04-02 17:01:39 +01:00 |
jesopo
|
8148fead51
|
add Server.wait_for(), so you can await until getting a matching message
|
2020-04-02 17:00:50 +01:00 |
jesopo
|
4f61b89012
|
add objects needed to denote SASL in ConnectionParams
|
2020-04-02 16:59:02 +01:00 |
jesopo
|
1b9b12cb1e
|
move managing each task of read/written data from to Bot
|
2020-04-02 00:10:59 +01:00 |
jesopo
|
0029506118
|
server.py visual reorganise, respond to PINGs
|
2020-04-01 23:40:03 +01:00 |
jesopo
|
be31fe1936
|
make a Server interface, interface.IServer
|
2020-04-01 23:25:44 +01:00 |
jesopo
|
fd934b1101
|
fix PriorityQueue, use both Line and Emit, add CAP REQ
|
2020-04-01 23:06:41 +01:00 |
jesopo
|
a327d5dd96
|
first commit
|
2020-04-01 15:36:53 +01:00 |