summaryrefslogtreecommitdiff
path: root/bounce.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* Implement source address selectionmultiplexd2020-02-181-1/+1
| | | | | | 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 CAC. McEnroe2020-01-121-1/+2
| | | | | | | | | 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-101-0/+1
| | | | | | 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 URLC. McEnroe2019-12-241-1/+1
| | | | Oops, thought I did this already.
* Reference openssl(1) by absolute pathedef2019-11-271-0/+4
| | | | | 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-211-5/+5
| | | | | | | | | | | | | | | 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 defaultC. McEnroe2019-11-151-1/+1
| | | | This inverts the meaning of -N!
* Use struct timeval for sub-second precisionC. McEnroe2019-11-141-3/+3
|
* Filter multi-prefixC. McEnroe2019-11-141-0/+1
|
* Filter userhost-in-namesC. McEnroe2019-11-111-0/+1
| | | | I really want to be writing tests for these functions...
* Filter invite-notifyC. McEnroe2019-11-101-0/+2
|
* Filter extended-joinC. McEnroe2019-11-101-0/+1
|
* Rename listen to localC. McEnroe2019-11-101-4/+4
|
* Remove extended-join and invite-notifyC. McEnroe2019-11-091-2/+0
| | | | | | | | | | | | 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 clientsC. McEnroe2019-11-091-0/+2
|
* Parse capabilitiesC. McEnroe2019-11-091-2/+53
| | | | | | 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 macroC. McEnroe2019-11-091-1/+1
|
* Define macro for bit flag enumsC. McEnroe2019-11-091-0/+1
|
* Only change AWAY status for registered clientsC. McEnroe2019-11-081-0/+1
| | | | | | 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 stringsC. McEnroe2019-11-061-3/+3
| | | | | GCC hates declaring static consts in headers and not using them, for some stupid reason.
* Define one CERTBOT_PATH rather than two format stringsC. McEnroe2019-11-061-6/+2
|
* Change license to GPLv3C. McEnroe2019-11-061-4/+4
| | | | | | | | | | | | | | > 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 LibreSSLC. McEnroe2019-11-061-5/+2
|
* Implement SASL EXTERNALC. McEnroe2019-11-051-1/+1
|
* Add options for TLS client certificateC. McEnroe2019-11-041-1/+2
|
* Zero PASS parameterC. McEnroe2019-11-041-3/+3
|
* Hash client passwords with cryptC. McEnroe2019-11-041-3/+1
|
* Move base64 to bounce.hC. McEnroe2019-11-041-0/+32
|
* Implement UNIX-domain bindingC. McEnroe2019-11-021-0/+1
|
* Re-read cert and key from the same FILEsCurtis McEnroe2019-11-011-1/+1
|
* Use explicit_bzero to clear passwordsCurtis McEnroe2019-10-311-0/+5
| | | | | 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 runtimeCurtis McEnroe2019-10-291-0/+1
|
* Implement getopt_long-integrated configuration parsingCurtis McEnroe2019-10-291-0/+6
|
* Add option to save and load ring contents across restartsCurtis McEnroe2019-10-281-0/+3
|
* Move entire login flow to state and reorganize itCurtis McEnroe2019-10-281-6/+7
|
* Only increment consumer after successful sendCurtis McEnroe2019-10-271-0/+1
|
* Output ring info on SIGINFOCurtis McEnroe2019-10-271-0/+1
|
* Add undocumented flag to disable verificationCurtis McEnroe2019-10-261-1/+1
|
* Track channel topicsCurtis McEnroe2019-10-261-1/+0
|
* Add flags to request TOPIC and NAMES on client connectCurtis McEnroe2019-10-261-0/+2
|
* Add AGPLv3 notice on client registrationCurtis McEnroe2019-10-251-0/+3
| | | | OwO
* Send PRIVMSG and NOTICE to other clientsCurtis McEnroe2019-10-251-0/+1
|
* Clean up listen APICurtis McEnroe2019-10-251-1/+1
|
* Use produce/consume words for ring bufferCurtis McEnroe2019-10-251-5/+5
| | | | To disambiguate clientRecv and clientRead, say clientConsume.
* Implement client reading from ring bufferCurtis McEnroe2019-10-251-5/+7
| | | | It's still messy but it works!!
* Implement ringDiff and ringReadCurtis McEnroe2019-10-251-0/+3
|
* Register readers by client usernamesCurtis McEnroe2019-10-241-0/+1
|
* Implement ringWriteCurtis McEnroe2019-10-241-0/+2
|
* Make clientFormat publicCurtis McEnroe2019-10-241-0/+2
|
* Make serverFormat publicCurtis McEnroe2019-10-241-2/+3
|