| Commit message (Collapse) | Author |
|
So that calico doesn't need any libs even on Linux.
|
|
|
|
Allows requesting userhost-in-names on freenode, which is available but
hidden.
|
|
This fixes a major issue that somehow didn't surface until upgrading to
FreeBSD 12.1-RELEASE-p6, where since calico doesn't grant the
CAP_SETSOCKOPT capability on accepted sockets, pounce crashes trying to
set keepalive on sockets on receives from it.
|
|
https://www.gnu.org/licenses/gpl-faq.en.html#GPLIncompatibleLibs
|
|
Better to leave this up to the packager to do, as FreeBSD ports does,
for example.
|
|
|
|
Hopefully. Trying to write a FreeBSD port against this.
|
|
|
|
The way that the ports tree does it.
|
|
|
|
We need to ignore SIGPIPE anyway for other platforms.
|
|
Since we swallow IRC PINGs, a client connection can go hours idle on a
quiet network. On my home internet, at least, these connections seem to
get silently dropped.
|
|
This addresses pounce getting killed with "Excess flood" when it sends
NAMES commands for too many channels when a client connects. These
commands, as well as automatic AWAY commands, are by default throttled
to 5 per second.
Tested on freenode with 36 channels and 200ms interval.
|
|
There seems to be no guidance on how an application should set this
parameter. However, every system I've looked at will limit the value to
some default maximum, usually 128.
|
|
In the case where a signal arrives while handling a ready socket, it
should be handled as soon as possible, rather than waiting for poll to
return again. Signals will still be handled immediately if poll returns
-1 due to EINTR.
|
|
|
|
|
|
|
|
|
|
|
|
Some clients (Revolution) mistakenly believe they are not connected
until a MOTD has been received. Sending this is harmless, I guess.
|
|
This should make it easier to modify if needed.
|
|
I still hate that any of this is necessary...
|
|
Copied and expanded from catgirl.
|
|
Duration is set to INT_MAX since pounce will never accept cleartext
connections.
|
|
|
|
So the spec doesn't say I can use cap values in CAP REQ. But it also
doesn't explicitly say I can't.
|
|
|
|
It should indicate the position after having seen the tagged message.
|
|
|
|
Authors in order listed on IRCv3.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
"Tag skip" like it's a speedrun :3
|
|
I think for some caps we need to filter messages without origins.
|
|
|
|
Filter functions are dealing with lines not including CRLF, so they
already have extra space. serverFormat is using snprintf which wants to
always write a NUL at the end of the string.
|
|
If a line was produced by another client, it won't have one from the
server.
|
|
|
|
Yikes.
|
|
This doesn't yet, but it will break the "robustness principle" according
to which a server "SHOULD NOT" assume that a client capable of parsing
one tag is capable of parsing all tags. In future, TagCaps will have all
other caps that use tags ORed into it, and only if the client supports
none of them will tags be filtered out.
|
|
I still think this limit is unreasonably large in comparison to 512 for
the actual message.
|
|
If there's no room left in the buffer, tls_read will return 0 (since we
gave it zero length to read into) and cause client->error to be set.
|