summary refs log tree commit diff
Commit message (Collapse)AuthorAge
* Use RAND_bytes instead of arc4random_bufJune McEnroe2020-07-31
| | | | | This adds an actual dependency on libcrypto, but removes a dependency on BSD (or LibreSSL libcrypto specifically).
* Rewrite configure script for all platformsJune McEnroe2020-07-24
|
* Don't use strlcpy in dispatchJune McEnroe2020-07-24
| | | | So that calico doesn't need any libs even on Linux.
* Add link to "IRC Suite" post in READMEJune McEnroe2020-07-08
|
* Add -R blind-req optionJune McEnroe2020-07-06
| | | | | Allows requesting userhost-in-names on freenode, which is available but hidden.
* Grant CAP_SETSOCKOPT in dispatch 1.3p1June McEnroe2020-06-12
| | | | | | | 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.
* Add additional permission for linking with LibreSSLJune McEnroe2020-06-08
| | | | https://www.gnu.org/licenses/gpl-faq.en.html#GPLIncompatibleLibs
* Revert compression of man pages for installation 1.3June McEnroe2020-05-19
| | | | | Better to leave this up to the packager to do, as FreeBSD ports does, for example.
* Clarify or otherwise expand documentationJune McEnroe2020-05-19
|
* Rewrite build and install to be more amenable to packagingJune McEnroe2020-05-19
| | | | Hopefully. Trying to write a FreeBSD port against this.
* Add RUNDIR make variableJune McEnroe2020-05-18
|
* Template rc scripts with %%PREFIX%%June McEnroe2020-05-18
| | | | The way that the ports tree does it.
* Update email addressesJune McEnroe2020-05-18
|
* Don't bother setting SO_NOSIGPIPEJune McEnroe2020-05-18
| | | | We need to ignore SIGPIPE anyway for other platforms.
* Enable TCP keepalive with half-hour idleJune McEnroe2020-05-18
| | | | | | 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.
* Add server send queueing with time intervalJune McEnroe2020-05-11
| | | | | | | | | 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.
* Pass -1 as backlog to listen(2)June McEnroe2020-05-11
| | | | | | 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.
* Check signals after handling ready socketsJune McEnroe2020-05-11
| | | | | | | 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.
* Use . as ${LDLIBS.$@} separatorJune McEnroe2020-04-20
|
* Use for loop for getopt in calico 1.2p1June McEnroe2020-04-02
|
* Generate short option string from long optionsJune McEnroe2020-04-02
|
* Do not crash on error from acceptJune McEnroe2020-04-02
|
* Do not crash on error from accept in calicoJune McEnroe2020-04-02
|
* Send ERR_NOMOTD during syncJune McEnroe2020-03-08
| | | | | Some clients (Revolution) mistakenly believe they are not connected until a MOTD has been received. Sending this is harmless, I guess.
* Use one line for each CFLAGS addition 1.2June McEnroe2020-03-03
| | | | This should make it easier to modify if needed.
* Clean up configure script a bitJune McEnroe2020-03-02
| | | | I still hate that any of this is necessary...
* Replace .mk files with configure scriptJune McEnroe2020-03-01
| | | | Copied and expanded from catgirl.
* Advertise STS policyJune McEnroe2020-02-27
| | | | | Duration is set to INT_MAX since pounce will never accept cleartext connections.
* Document the causal.agency/consumer vendor capabilityJune McEnroe2020-02-27
|
* Set consumer pos with CAP REQ causal.agency/consumer=nJune McEnroe2020-02-27
| | | | | 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/posJune McEnroe2020-02-27
|
* Add 1 to consumer ID tagsJune McEnroe2020-02-27
| | | | It should indicate the position after having seen the tagged message.
* Add causal.agency/consumer capabilityJune McEnroe2020-02-27
|
* Re-sort STANDARDS sectionJune McEnroe2020-02-27
| | | | Authors in order listed on IRCv3.
* Send CAP LS 302 to the serverJune McEnroe2020-02-27
|
* Properly treat CAP LS version as a numberJune McEnroe2020-02-27
|
* Support CAP LS 302 from clientsJune McEnroe2020-02-27
|
* Support cap-notifyJune McEnroe2020-02-27
|
* Support setnameJune McEnroe2020-02-26
|
* Support labeled-responseJune McEnroe2020-02-26
|
* Support batchJune McEnroe2020-02-26
|
* Support account-tagJune McEnroe2020-02-26
|
* Clean up intercept tag skipJune McEnroe2020-02-26
| | | | "Tag skip" like it's a speedrun :3
* Also skip the origin in wordcmpJune McEnroe2020-02-26
| | | | I think for some caps we need to filter messages without origins.
* Use %n for tags when formatting intercepted PRIVMSG/NOTICEJune McEnroe2020-02-26
|
* Tweak buffer sizesJune McEnroe2020-02-26
| | | | | | 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 itJune McEnroe2020-02-25
| | | | | If a line was produced by another client, it won't have one from the server.
* Support message-tagsJune McEnroe2020-02-25
|
* Respond to tagged PINGs correctlyJune McEnroe2020-02-25
| | | | Yikes.
* Request server-time from the server and filter tags for clientsJune McEnroe2020-02-25
| | | | | | | | 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.