summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* Set consumer pos with CAP REQ causal.agency/consumer=nC. McEnroe2020-02-273-1/+12
| | | | | So the spec doesn't say I can use cap values in CAP REQ. But it also doesn't explicitly say I can't.
* Rename causal.agency/consumer tag causal.agency/posC. McEnroe2020-02-271-2/+2
|
* Add 1 to consumer ID tagsC. McEnroe2020-02-271-2/+2
| | | | It should indicate the position after having seen the tagged message.
* Add causal.agency/consumer capabilityC. McEnroe2020-02-273-3/+19
|
* Re-sort STANDARDS sectionC. McEnroe2020-02-271-37/+30
| | | | Authors in order listed on IRCv3.
* Send CAP LS 302 to the serverC. McEnroe2020-02-273-6/+12
|
* Properly treat CAP LS version as a numberC. McEnroe2020-02-271-1/+3
|
* Support CAP LS 302 from clientsC. McEnroe2020-02-274-11/+32
|
* Support cap-notifyC. McEnroe2020-02-274-3/+16
|
* Support setnameC. McEnroe2020-02-263-0/+7
|
* Support labeled-responseC. McEnroe2020-02-263-1/+12
|
* Support batchC. McEnroe2020-02-263-1/+8
|
* Support account-tagC. McEnroe2020-02-262-2/+4
|
* Clean up intercept tag skipC. McEnroe2020-02-261-4/+2
| | | | "Tag skip" like it's a speedrun :3
* Also skip the origin in wordcmpC. McEnroe2020-02-261-13/+17
| | | | I think for some caps we need to filter messages without origins.
* Use %n for tags when formatting intercepted PRIVMSG/NOTICEC. McEnroe2020-02-261-12/+8
|
* Tweak buffer sizesC. McEnroe2020-02-262-4/+4
| | | | | | 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.
* Add time tag to lines missing itC. McEnroe2020-02-251-1/+11
| | | | | If a line was produced by another client, it won't have one from the server.
* Support message-tagsC. McEnroe2020-02-254-7/+53
|
* Respond to tagged PINGs correctlyC. McEnroe2020-02-251-2/+7
| | | | Yikes.
* Request server-time from the server and filter tags for clientsC. McEnroe2020-02-254-5/+24
| | | | | | | | 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.
* Bump buffer sizes to allow for tagsC. McEnroe2020-02-253-6/+8
| | | | | I still think this limit is unreasonably large in comparison to 512 for the actual message.
* Remove bad assertC. McEnroe2020-02-181-1/+0
| | | | | 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.
* Implement source address selectionmultiplexd2020-02-184-9/+43
| | | | | | 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)).
* Use Xr for the first "pounce" in READMEC. McEnroe2020-01-171-1/+1
|
* Add litterbox to READMEC. McEnroe2020-01-171-1/+5
|
* Rename SASL EXTERNAL section to CertFPC. McEnroe2020-01-171-4/+5
|
* Document process of generating client certificatesC. McEnroe2020-01-171-2/+42
|
* Set certificate expiry to 10 yearsC. McEnroe2020-01-161-2/+2
| | | | | 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.
* Allow signing by CA in -gC. McEnroe2020-01-122-4/+49
|
* Clean up documentation for -AC. McEnroe2020-01-121-9/+6
|
* Rename all local-related options to local-C. McEnroe2020-01-122-15/+25
| | | | | | | 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.
* Use the CAP_PREAD rightC. McEnroe2020-01-121-1/+1
| | | | Required for the rewind call when loading the CA.
* Add option to set local client CAC. McEnroe2020-01-125-6/+83
| | | | | | | | | 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.
* Add a vendor capability for passive clientsC. McEnroe2020-01-103-9/+14
| | | | | | 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.
* Rename -A and -Q to -y and -qC. McEnroe2020-01-072-18/+18
| | | | | | | | | | | 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.
* Intercept client QUIT with no parameterC. McEnroe2019-12-281-0/+1
| | | | Oops! Clients could get pounce to quit if they didn't send a message.
* Update source URLC. McEnroe2019-12-241-1/+1
| | | | Oops, thought I did this already.
* Exit on zero-length server readC. McEnroe2019-12-221-0/+1
|
* Revert "Exit when server gets POLLHUP"C. McEnroe2019-12-221-4/+1
| | | | | | | Turns out the more likely thing is that the fd will just continue to be POLLIN and produce zero-length reads. This reverts commit 5707b15920a1ce57f01db0d592487d833218be9d.
* Exit when server gets POLLHUPC. McEnroe2019-12-201-1/+4
| | | | | | This should maybe gracefully inform clients of what happened, but for now this is much better than the infinite poll loop that happened previously.
* Add CONTRIBUTING section to READMEC. McEnroe2019-12-171-1/+9
|
* Don't send self-PMs to the serverC. McEnroe2019-12-082-1/+8
|
* Reference openssl(1) by absolute pathedef2019-11-273-1/+7
| | | | | This still allows using openssl(1) from PATH, but defaults to using ${LIBRESSL_PREFIX}/bin/openssl.
* Simplify Linux.mkC. McEnroe2019-11-271-3/+1
| | | | | This should just be what is definitely necessary, and all distros have their own problems. This works on Void Linux at least.
* Don't always create ${ETCDIR}/rc.dC. McEnroe2019-11-261-1/+1
|
* Link calico with libcrypto on LinuxC. McEnroe2019-11-212-1/+2
| | | | For the strlcpy implementation.
* Fix wordcmp return value when the words have differing lengthsMichael Forney2019-11-211-1/+1
| | | | | | | | | | Otherwise, the result of strncmp gets converted size_t, since size_t has greater rank than int. Since wordcmp is only ever used as a boolean condition, this poses no real issue, but presumably, it is meant to behave like the other *cmp function and return a value less than, equal to, or greater than 0 depending on the result of the comparison.
* Declare globals as extern in headers, and define in source fileMichael Forney2019-11-214-5/+13
| | | | | | | | | | | | | | | Otherwise, each source file that includes the header gets its own definition, and according to the C standard (C99 6.9p5): > If an identifier declared with external linkage is used in an > expression (other than as part of the operand of a sizeof operator > whose result is an integer constant), somewhere in the entire > program there shall be exactly one external definition for the > identifier Most compilers use the .bss section for zero data, but if it uses .data instead, or if -Wl,--warn-common is used, this will cause a linking error.
* Zero temporary SASL PLAIN bufferC. McEnroe2019-11-211-0/+1
|