summary refs log tree commit diff
path: root/bounce.h (follow)
Commit message (Collapse)AuthorAge
* 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.
* 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.
* 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.
* Add causal.agency/consumer capabilityJune McEnroe2020-02-27
|
* Send CAP LS 302 to the serverJune 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
|
* Support message-tagsJune McEnroe2020-02-25
|
* 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.
* Bump buffer sizes to allow for tagsJune McEnroe2020-02-25
| | | | | I still think this limit is unreasonably large in comparison to 512 for the actual message.
* Implement source address selectionmultiplexd2020-02-18
| | | | | | 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)).
* Add option to set local client CAJune McEnroe2020-01-12
| | | | | | | | | 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 clientsJune McEnroe2020-01-10
| | | | | | 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.
* Update source URLJune McEnroe2019-12-24
| | | | Oops, thought I did this already.
* Reference openssl(1) by absolute pathedef2019-11-27
| | | | | This still allows using openssl(1) from PATH, but defaults to using ${LIBRESSL_PREFIX}/bin/openssl.
* Declare globals as extern in headers, and define in source fileMichael Forney2019-11-21
| | | | | | | | | | | | | | | 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.
* Request NAMES on sync by defaultJune McEnroe2019-11-15
| | | | This inverts the meaning of -N!
* Use struct timeval for sub-second precisionJune McEnroe2019-11-14
|
* Filter multi-prefixJune McEnroe2019-11-14
|
* Filter userhost-in-namesJune McEnroe2019-11-11
| | | | I really want to be writing tests for these functions...
* Filter invite-notifyJune McEnroe2019-11-10
|
* Filter extended-joinJune McEnroe2019-11-10
|
* Rename listen to localJune McEnroe2019-11-10
|
* Remove extended-join and invite-notifyJune McEnroe2019-11-09
| | | | | | | | | | | | The remaining caps only generate new commands which can easily be filtered out when sending to clients so will be in the first pass of support. extended-join is probably safe to pass through unaltered, just causing extraneous parameters on JOIN commands, but maybe not. invite-notify reuses the INVITE command where the invited user is not self.
* Maintain stateCaps and offer them to clientsJune McEnroe2019-11-09
|
* Parse capabilitiesJune McEnroe2019-11-09
| | | | | | The list that I've defined are the ones that I expect to be able to enable probably without any clients breaking... And of course server-time which pounce implements itself.
* Avoid the reserved _A names with BIT macroJune McEnroe2019-11-09
|
* Define macro for bit flag enumsJune McEnroe2019-11-09
|
* Only change AWAY status for registered clientsJune McEnroe2019-11-08
| | | | | | Turns out I did eventually fix this, because I may want to implement "passive clients" for logging or notification stuff, which wouldn't affect AWAY status either.
* Use #defines for constant stringsJune McEnroe2019-11-06
| | | | | GCC hates declaring static consts in headers and not using them, for some stupid reason.
* Define one CERTBOT_PATH rather than two format stringsJune McEnroe2019-11-06
|
* Change license to GPLv3June McEnroe2019-11-06
| | | | | | | | | | | | | | > Notwithstanding any other provision of this License, if you modify the > Program, your modified version must prominently offer all users > interacting with it remotely through a computer network (if your version > supports such interaction) an opportunity to receive the Corresponding > Source of your version by providing access to the Corresponding Source > from a network server at no charge, through some standard or customary > means of facilitating copying of software. This potentially means that every freenode user, for example, is interacting with this software, and offering the corresponding source to each of them is an unreasonable burden.
* Use explicit_bzero from LibreSSLJune McEnroe2019-11-06
|
* Implement SASL EXTERNALJune McEnroe2019-11-05
|
* Add options for TLS client certificateJune McEnroe2019-11-04
|
* Zero PASS parameterJune McEnroe2019-11-04
|
* Hash client passwords with cryptJune McEnroe2019-11-04
|
* Move base64 to bounce.hJune McEnroe2019-11-04
|
* Implement UNIX-domain bindingJune McEnroe2019-11-02
|
* Re-read cert and key from the same FILEsJune McEnroe2019-11-01
|
* Use explicit_bzero to clear passwordsJune McEnroe2019-10-31
| | | | | GNU doesn't implement memset_s, but both FreeBSD and GNU implement explicit_bzero. Darwin doesn't, so #define it in terms of memset_s.
* Allocate ring buffer at runtimeJune McEnroe2019-10-29
|
* Implement getopt_long-integrated configuration parsingJune McEnroe2019-10-29
|
* Add option to save and load ring contents across restartsJune McEnroe2019-10-28
|
* Move entire login flow to state and reorganize itJune McEnroe2019-10-28
|