Chris Smith
51b19e41b5
Rework TLS buffers to avoid overflowing.
If we're keeping some bytes in the line buffer waiting for a
CR/LF, the SSLEngine may not have enough room to put a packet's
worth of data in.
Instead of managing a single buffer, keep a channel of them
and emit a complete buffer each read call.
5 vuotta sitten
Chris Smith
f1ecbf256f
Prefer IPv6, default to TLS
5 vuotta sitten
Chris Smith
96449f98a1
Replace ktor with plain socket code.
Closes #14
5 vuotta sitten
Chris Smith
2e8b1cf7b0
Add NicknameChangeRequired event
5 vuotta sitten
Chris Smith
fa98c18345
Add user parameter to mode changed event
5 vuotta sitten
Chris Smith
bb009434be
Add ChannelMembershipAdjustment interface
5 vuotta sitten
Chris Smith
fe284ce3e0
Add join failed event
5 vuotta sitten
Chris Smith
205b934766
Implement first async message builder
5 vuotta sitten
Chris Smith
3289bb8e99
More work on async methods
5 vuotta sitten
Chris Smith
25e129ebb1
Add test for label generator
5 vuotta sitten
Chris Smith
07f85e364d
Minor code style improvements
5 vuotta sitten
Chris Smith
a6e11562e6
Flesh out docs a little
5 vuotta sitten
Chris Smith
6c10e031db
Add SourcedEvent interface
5 vuotta sitten
Chris Smith
1b135480c9
Make various processors more defensive
5 vuotta sitten
Chris Smith
23317f6cec
Handle bad server timestamps
5 vuotta sitten
Chris Smith
0631aed46e
Fix issue with multibyte chars in CTCPs
Mixing substrings and byte array offsets is bad...
5 vuotta sitten
Chris Smith
5f5aea0652
Synchronise maps properly.
SynchronizedSet() requires manual synchronisation when iterating
over it. When returning an iterator make a copy of the set first
to avoid issues with users iterating.
5 vuotta sitten
Chris Smith
eacdf03763
Fix handling of long lines.
If we multiple long lines in succession the start index got
miscalculated and part of the latter lines discarded.
5 vuotta sitten
Chris Smith
7666e3ff4f
Hide WIP async methods in experimental interface
5 vuotta sitten
Chris Smith
7698f1465b
Fix CME in Maps
5 vuotta sitten
Chris Smith
fb92bd5737
Add sendPart
5 vuotta sitten
Chris Smith
4881cb05f5
Support for nick change errors
5 vuotta sitten
Chris Smith
070d502463
Initial work on exposing async methods
Move message processors into their own package
Update ktor
5 vuotta sitten
Chris Smith
814e45aa27
Add TargetedEvent class, fix caps negotiation
After allowing multiple names we started ACKing only the preferred
name, even if the server hadn't advertised it.
5 vuotta sitten
Chris Smith
be2ed37acf
Add always echo messages behaviour
5 vuotta sitten
Chris Smith
e91342edc9
Add structured send methods
5 vuotta sitten
Chris Smith
54f35009c3
Accept unprefixed message-tags
Closes #13
5 vuotta sitten
Chris Smith
c3908e1a60
Initial pass at labelled-replies support
5 vuotta sitten
Chris Smith
d7617d2caa
Don't expose batch start and end
5 vuotta sitten
Chris Smith
b9a36acc64
Use processors as a map, don't iterate them every line.
5 vuotta sitten
Chris Smith
e4b9ec0be3
Add support for CHGHOST
5 vuotta sitten
Chris Smith
e707bbdff3
Move messageId to metadata
5 vuotta sitten
Chris Smith
92c642e550
Add BATCH support
Closes #11
5 vuotta sitten
Chris Smith
c40ebf68c0
Switch from `time` to `metadata`, store batch ID
5 vuotta sitten
Chris Smith
0117d981a2
Event mutators
5 vuotta sitten
Chris Smith
daee215fc4
Add behaviour config, and option to send modes on join
5 vuotta sitten
Chris Smith
497e661fee
Add simpler server/profile methods to DSL
5 vuotta sitten
Chris Smith
e4276619c0
Add isChannel method
5 vuotta sitten
Chris Smith
511051ac4c
Topic support
5 vuotta sitten
Chris Smith
5033040325
Add some topic events (no state yet)
Move handlers to their own packages
Update JUnit
5 vuotta sitten
Chris Smith
47abcf78bb
Support for receiving MOTD lines
5 vuotta sitten
Chris Smith
9a00e71c37
SCRAM-SHA-1/256 support
Closes #9
5 vuotta sitten
Chris Smith
dd87752527
Handle server connection errors
Fix regression with capability negotiation
5 vuotta sitten
Chris Smith
de180b1d47
Support for nick changes
5 vuotta sitten
Chris Smith
890d63e2cd
Try to retry SASL if we get a RPL_SASLMECHS message
5 vuotta sitten
Chris Smith
75c3e93343
Allow SASL methods to be configured, add EXTERNAL
5 vuotta sitten
Chris Smith
d76c60a47c
Construct IrcClient with a DSL.
This allows more options to be added nicely in the future,
and hides the implementation details from library users.
5 vuotta sitten
Chris Smith
929c4a41b2
Rearrange experimental annotations so they're not exposed.
Only annotate internal methods, suppress the messages otherwise,
so users of the library don't have to deal with warnings
5 vuotta sitten
Chris Smith
23bf2faa2c
Reset state on disconnect
5 vuotta sitten
Chris Smith
e64b705412
Improve couroutines and channel use in the socket
5 vuotta sitten