about summary refs log tree commit diff
path: root/server.c (unfollow)
Commit message (Collapse)Author
2020-05-11Add server send queueing with time intervalJune McEnroe
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.
2020-05-11Pass -1 as backlog to listen(2)June McEnroe
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.
2020-05-11Check signals after handling ready socketsJune McEnroe
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.
2020-04-20Use . as ${LDLIBS.$@} separatorJune McEnroe
2020-04-02Use for loop for getopt in calico 1.2p1June McEnroe
2020-04-02Generate short option string from long optionsJune McEnroe
2020-04-02Do not crash on error from acceptJune McEnroe
2020-04-02Do not crash on error from accept in calicoJune McEnroe
2020-03-08Send ERR_NOMOTD during syncJune McEnroe
Some clients (Revolution) mistakenly believe they are not connected until a MOTD has been received. Sending this is harmless, I guess.
2020-03-03Use one line for each CFLAGS addition 1.2June McEnroe
This should make it easier to modify if needed.
2020-03-02Clean up configure script a bitJune McEnroe
I still hate that any of this is necessary...
2020-03-01Replace .mk files with configure scriptJune McEnroe
Copied and expanded from catgirl.
2020-02-27Advertise STS policyJune McEnroe
Duration is set to INT_MAX since pounce will never accept cleartext connections.
2020-02-27Document the causal.agency/consumer vendor capabilityJune McEnroe
2020-02-27Set consumer pos with CAP REQ causal.agency/consumer=nJune McEnroe
So the spec doesn't say I can use cap values in CAP REQ. But it also doesn't explicitly say I can't.
2020-02-27Rename causal.agency/consumer tag causal.agency/posJune McEnroe
2020-02-27Add 1 to consumer ID tagsJune McEnroe
It should indicate the position after having seen the tagged message.
2020-02-27Add causal.agency/consumer capabilityJune McEnroe
2020-02-27Re-sort STANDARDS sectionJune McEnroe
Authors in order listed on IRCv3.
2020-02-27Send CAP LS 302 to the serverJune McEnroe
2020-02-27Properly treat CAP LS version as a numberJune McEnroe
2020-02-27Support CAP LS 302 from clientsJune McEnroe
2020-02-27Support cap-notifyJune McEnroe
2020-02-26Support setnameJune McEnroe
2020-02-26Support labeled-responseJune McEnroe
2020-02-26Support batchJune McEnroe
2020-02-26Support account-tagJune McEnroe
2020-02-26Clean up intercept tag skipJune McEnroe
"Tag skip" like it's a speedrun :3
2020-02-26Also skip the origin in wordcmpJune McEnroe
I think for some caps we need to filter messages without origins.
2020-02-26Use %n for tags when formatting intercepted PRIVMSG/NOTICEJune McEnroe
2020-02-26Tweak buffer sizesJune McEnroe
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.
2020-02-25Add time tag to lines missing itJune McEnroe
If a line was produced by another client, it won't have one from the server.
2020-02-25Support message-tagsJune McEnroe
2020-02-25Respond to tagged PINGs correctlyJune McEnroe
Yikes.
2020-02-25Request server-time from the server and filter tags for clientsJune McEnroe
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.
2020-02-25Bump buffer sizes to allow for tagsJune McEnroe
I still think this limit is unreasonably large in comparison to 512 for the actual message.
2020-02-18Remove bad assertJune McEnroe
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.
2020-02-18Implement source address selectionmultiplexd
This commit introduces a '-S' command line option and a "bind" configuration file option for selecting the source address when making outbound TCP connections (similar to the corresponding option in catgirl(1)).
2020-01-17Use Xr for the first "pounce" in README 1.1June McEnroe
2020-01-17Add litterbox to READMEJune McEnroe
2020-01-17Rename SASL EXTERNAL section to CertFPJune McEnroe
2020-01-17Document process of generating client certificatesJune McEnroe
2020-01-16Set certificate expiry to 10 yearsJune McEnroe
I'm pretty sure any kind of "renewing" of these is going to suck, so just set it long enough that the world will probably be ash by then.
2020-01-12Allow signing by CA in -gJune McEnroe
2020-01-12Clean up documentation for -AJune McEnroe
2020-01-12Rename all local-related options to local-June McEnroe
This disambiguates client-ca and client-pass from client-cert and client-key, which apply to opposite sides of the program. The old option names will continue to work.
2020-01-12Use the CAP_PREAD rightJune McEnroe
Required for the rewind call when loading the CA.
2020-01-12Add option to set local client CAJune McEnroe
This is a little bit messy. Allows setting either -A or -W or both. Implements SASL EXTERNAL for clients that expect that when connecting with a client certificate. Need to test that reloading still works inside capsicum, since I suspect that rewind call may be blocked.
2020-01-10Add a vendor capability for passive clientsJune McEnroe
This way things like litterbox can do it automatically without having to be configured with a hyphen-prefixed username, which is usually invalid anywhere else.
2020-01-07Rename -A and -Q to -y and -qJune McEnroe
The other upper-case options are related to the listening side of things, not the server side, so this is more consistent. This is incompatible, but will fail loudly, and I expect these options are more likely set in a configuration file, if they are set at all. I also want to free up -A for setting a client CA, but assuming your away message is not also an existing file path, that will continue to fail loudly.