All authors have acknowledged the dual license.
The second license is the same as the one used by the IRCv3 working
group.
git-svn-id: file:///srv/svn/repo/suika/trunk@795 f0ae65fe-ee39-954e-97ec-027ff2717ef4
The network name can be set via BOUNCER BIND. In that case we
don't want to error out when fallbackNetworkName == "".
git-svn-id: file:///srv/svn/repo/suika/trunk@792 f0ae65fe-ee39-954e-97ec-027ff2717ef4
Allow e.g. the SASL username to contain "username/network" and the
raw username to contain "username@client", for instance.
git-svn-id: file:///srv/svn/repo/suika/trunk@789 f0ae65fe-ee39-954e-97ec-027ff2717ef4
When fetching messages via draft/chathistory from a conversation
with another user, soju would send the following:
:sender PRIVMSG sender :hey
instead of
:sender PRIVMSG recipient :hey
because the file-system message store format doesn't contain the
original PRIVMSG target.
Fix this by doing some guesswork.
git-svn-id: file:///srv/svn/repo/suika/trunk@787 f0ae65fe-ee39-954e-97ec-027ff2717ef4
READ lets downstream clients share information between each other about
what messages have been read by other downstreams.
Each target/entity has an optional corresponding read receipt, which is
stored as a timestamp.
- When a downstream sends:
READ #chan timestamp=2020-01-01T01:23:45.000Z
the read receipt for that target is set to that date
- soju sends READ to downstreams:
- on JOIN, if the client uses the soju.im/read capability
- when the read receipt timestamp is set by any downstream
The read receipt date is clamped by the previous receipt date and the
current time.
git-svn-id: file:///srv/svn/repo/suika/trunk@781 f0ae65fe-ee39-954e-97ec-027ff2717ef4
A previous fix (d4b7bb02da1c) only fixed sending echo-message for
TAGMSG to self. We also need to send echo-message for TAGMSG to
other targets.
Closes: https://todo.sr.ht/~emersion/soju/111
git-svn-id: file:///srv/svn/repo/suika/trunk@780 f0ae65fe-ee39-954e-97ec-027ff2717ef4
This param doesn't contain modes, it contains user flags (such as
H/G for away status).
git-svn-id: file:///srv/svn/repo/suika/trunk@779 f0ae65fe-ee39-954e-97ec-027ff2717ef4
Isolate the field letter -> value logic into a separate function.
git-svn-id: file:///srv/svn/repo/suika/trunk@778 f0ae65fe-ee39-954e-97ec-027ff2717ef4
Instead of always requiring users to explicitly specify the network
name, guess it from the downstream connection.
Network commands are left as-is because it's not yet clear how to
handle them.
git-svn-id: file:///srv/svn/repo/suika/trunk@771 f0ae65fe-ee39-954e-97ec-027ff2717ef4
Right now there is no consistent ordering in the network list:
no ORDER BY in the DB, and network updates move entries to the end.
Let's always sort by network ID so that users don't see the entries
move around.
I've contemplated sorting by Network.GetName() instead, but:
- Clients have now way to figure out dynamic order changes, e.g.
when renaming a network.
- Some clients might use ISUPPORT NETWORK when a user hasn't
explicitly named a network, but soju won't use that for ordering,
leading to non-alphabetic ordering in the client.
Let's leave it to clients to sort the networks by display name if
they want to.
git-svn-id: file:///srv/svn/repo/suika/trunk@769 f0ae65fe-ee39-954e-97ec-027ff2717ef4
The various server goroutines would always capture the last listen
addr in the loop.
git-svn-id: file:///srv/svn/repo/suika/trunk@767 f0ae65fe-ee39-954e-97ec-027ff2717ef4
Instead of stopping to listen, retry on temporary failure. This
can happen when running out of FDs.
Closes: https://todo.sr.ht/~emersion/soju/183
git-svn-id: file:///srv/svn/repo/suika/trunk@766 f0ae65fe-ee39-954e-97ec-027ff2717ef4