Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Refactor hasTag to be usable in more places | C. McEnroe | 2021-01-24 | 1 | -30/+15 | |
| | ||||||
* | Support echo-message capability | C. McEnroe | 2021-01-24 | 4 | -25/+73 | |
| | | | | | | | Only request it with labeled-response, since it is impossible to correlate messages to clients without. For clients without echo-message, synthesize a label on PRIVMSG/NOTICE/TAGMSG, then filter out received messages with that label. | |||||
* | Add -o and -t options to trust self-signed certificates | C. McEnroe | 2021-01-11 | 4 | -4/+77 | |
| | ||||||
* | Make SYNOPSIS arguments consistent with option names | C. McEnroe | 2021-01-11 | 1 | -12/+12 | |
| | ||||||
* | Allow interspersing flags and config files | C. McEnroe | 2021-01-11 | 1 | -12/+8 | |
| | | | | | | Don't wait for getopt_long to move all the arguments to the end. This allows overriding options set by config files by placing flags after them on the command line. | |||||
* | Send CAP END if CAP LS response is empty | C. McEnroe | 2020-12-21 | 1 | -1/+5 | |
| | | | | | Or only unsupported caps. Or, as the corresponding commit in catgirl says, "if CAP LS doesn't list anything good." | |||||
* | Alphabetize STANDARDS sections | C. McEnroe | 2020-12-18 | 2 | -55/+46 | |
| | ||||||
* | Handle 437 ERR_UNAVAILRESOURCE like ERR_NICKNAMEINUSE | C. McEnroe | 2020-12-05 | 1 | -0/+1 | |
| | | | | | Not totally clear under what conditions 437 is returned, but if it happens during registration, we should pick a new nick. | |||||
* | Use uint64_t for save file signature | C. McEnroe | 2020-11-28 | 1 | -5/+7 | |
| | | | | This fixes building on 32-bit platforms. | |||||
* | Unlink existing UNIX socket if it can't be connected to | C. McEnroe | 2020-11-23 | 1 | -10/+26 | |
| | | | | | | I think this emulates SO_REUSEADDR, which for some reason doesn't work on PF_UNIX. If the socket exists, check if connect(2) works, rather than clobbering the socket being used by a still-running instance. | |||||
* | Clean up main loop loops | C. McEnroe | 2020-11-21 | 1 | -51/+39 | |
| | ||||||
* | Add lazy client registration timeout | C. McEnroe | 2020-11-20 | 3 | -4/+18 | |
| | | | | | | I don't think this is worth adding a configuration option for since real clients will definitely accomplish registration faster than 10s and it's long enough to even type out manually for testing. | |||||
* | Only allow clients to AUTHENTICATE if using a cert | C. McEnroe | 2020-11-16 | 1 | -2/+3 | |
| | | | | | | Otherwise the successful authentication message can leak information to unauthenticated clients when both certificate and password authentication are enabled. | |||||
* | Set client sockets non-blocking | C. McEnroe | 2020-11-16 | 3 | -6/+12 | |
| | | | | | | | | | | | | | | | | | | | | | Except for during writes. This prevents pounce getting blocked on a client sending only a partial TLS record, for example. Writes still need to block because pounce doesn't have a way to resume them. (And it would do so by having a buffer, but sockets already have a send buffer, so what would be the point of that?) I don't think it should be a problem since outside of stateSync, writes only happen when poll returns POLLOUT. I feel like ideally SO_SNDLOWAT would be set to guarantee a full IRC message can always be written on POLLOUT, but since it's actually TLS records being sent, it's not obvious what the size would be. I'm also making an assumption here that tls_read returning TLS_WANT_POLLOUT is unlikely to happen, since I don't actually set pollfd.events based on that. I'm not sure how wanting to resume a tls_read after a POLLOUT could be cleanly handled. I'm just going to hope that if it does happen, the regular poll loop will eventually sort it out... | |||||
* | Swap localAccept parameter order | C. McEnroe | 2020-11-14 | 3 | -15/+15 | |
| | ||||||
* | Only send shutdown QUIT and ERROR to registered clients | C. McEnroe | 2020-11-14 | 1 | -3/+6 | |
| | ||||||
* | Make struct Client public | C. McEnroe | 2020-11-14 | 3 | -25/+18 | |
| | ||||||
* | Wait for POLLIN to do client tls_handshake | C. McEnroe | 2020-11-13 | 2 | -12/+22 | |
| | | | | | | | | | | | Otherwise a client could cause pounce to hang (since the sockets are left blocking) by opening a connection without handshaking! Oops, that's pretty bad. Since the sockets are still blocking, a hang can still be caused by a client sending a partial handshake then waiting. More fixes to follow. pounce is slightly protected from this when used with calico, as it applies a timeout to waiting for the ClientHello. | |||||
* | Use a fixed size pollfd array in calico | C. McEnroe | 2020-11-13 | 1 | -73/+57 | |
| | | | | | My thinking here is that it's better to not allocate in response to incoming connections. This also just makes the code a little simpler. | |||||
* | Disallow / anywhere in server name | C. McEnroe | 2020-11-13 | 1 | -1/+1 | |
| | ||||||
* | Check bounds of ClientHello extensions length | C. McEnroe | 2020-11-12 | 1 | -1/+3 | |
| | ||||||
* | Report paths in unveil errors | C. McEnroe | 2020-11-10 | 1 | -2/+2 | |
| | ||||||
* | contrib/palaver: Use open_memstream instead of fmemopen | C. McEnroe | 2020-10-24 | 1 | -11/+11 | |
| | | | | | Somehow I never knew about this function. Much better than fmemopen with mode "w". | |||||
* | Handle signals before the main loop | C. McEnroe | 2020-10-11 | 1 | -0/+9 | |
| | | | | This is a long-standing issue I ignored. | |||||
* | Fix possibliy uninitialized error | C. McEnroe | 2020-09-09 | 1 | -0/+1 | |
| | | | | It won't be, but gcc thinks it might. | |||||
* | Refactor reserialization and client self-producing | C. McEnroe | 2020-08-31 | 1 | -47/+45 | |
| | ||||||
* | Add chmod+chown to certbot example | C. McEnroe | 2020-08-30 | 1 | -4/+13 | |
| | ||||||
* | Rearrange bounce.c, move non-main mains below main | C. McEnroe | 2020-08-30 | 1 | -108/+114 | |
| | ||||||
* | Sandbox pounce with unveil(2) | C. McEnroe | 2020-08-30 | 2 | -2/+58 | |
| | ||||||
* | Refactor certificate loading and load all certs from config paths | C. McEnroe | 2020-08-28 | 6 | -103/+187 | |
| | ||||||
* | Sandbox pounce with pledge(2) | C. McEnroe | 2020-08-27 | 1 | -3/+10 | |
| | | | | | unveil(2) is a bit complicated to apply to this, I'll have to think about it more. | |||||
* | Sandbox calico with pledge(2) and unveil(2) | C. McEnroe | 2020-08-27 | 1 | -1/+11 | |
| | ||||||
* | Add support for OpenBSD | C. McEnroe | 2020-08-27 | 4 | -3/+24 | |
| | ||||||
* | Remove rc scripts | C. McEnroe | 2020-08-27 | 7 | -202/+21 | |
| | ||||||
* | contrib/palaver: Fix documented database path | C. McEnroe | 2020-08-27 | 1 | -2/+2 | |
| | ||||||
* | contrib/palaver: Remove rc script | C. McEnroe | 2020-08-27 | 4 | -112/+3 | |
| | ||||||
* | contrib/palaver: Fix database search and creation | C. McEnroe | 2020-08-27 | 1 | -15/+18 | |
| | ||||||
* | contrib/palaver: Use pounce's XDG directory | C. McEnroe | 2020-08-27 | 1 | -1/+1 | |
| | ||||||
* | contrib/palaver: Only allow HTTPS | C. McEnroe | 2020-08-27 | 1 | -0/+1 | |
| | ||||||
* | Support the pounce_env rc variable | C. McEnroe | 2020-08-25 | 2 | -14/+3 | |
| | ||||||
* | Remove deprecated option names | C. McEnroe | 2020-08-25 | 1 | -10/+0 | |
| | | | | The next release will be 2.0 so these can be removed now. | |||||
* | Document configuration and data file search | C. McEnroe | 2020-08-25 | 1 | -13/+68 | |
| | ||||||
* | Use dataOpen for save file | C. McEnroe | 2020-08-24 | 1 | -2/+2 | |
| | ||||||
* | Use configOpen to load localCA | C. McEnroe | 2020-08-24 | 1 | -2/+2 | |
| | ||||||
* | Use configPath to load client cert/priv | C. McEnroe | 2020-08-24 | 1 | -6/+17 | |
| | ||||||
* | Use configOpen in getopt_config | C. McEnroe | 2020-08-24 | 1 | -5/+2 | |
| | ||||||
* | Import xdg.c from catgirl | C. McEnroe | 2020-08-24 | 4 | -1/+159 | |
| | ||||||
* | Replace “RAND_bytes” by “getentropy” | Issam E. Maghni | 2020-08-23 | 2 | -7/+11 | |
| | | | | | | This removes the dependency on libcrypto. Signed-off-by: Issam E. Maghni <issam.e.maghni@mailbox.org> | |||||
* | contrib/palaver: Add no message preview flags | C. McEnroe | 2020-08-16 | 2 | -4/+19 | |
| | ||||||
* | contrib/palaver: Don't set channel for PMs | C. McEnroe | 2020-08-13 | 1 | -2/+4 | |
| |