about summary refs log tree commit diff
Commit message (Collapse)AuthorAge
* 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.
* Zero temporary SASL PLAIN bufferJune McEnroe2019-11-21
|
* Use a static buffer for plainBase64June McEnroe2019-11-21
|
* Use a fixed buffer size for SASL PLAIN authenticationMichael Forney2019-11-21
| | | | | | | handleAuthenticate only sends a single AUTHENTICATE message, so according to https://ircv3.net/specs/extensions/sasl-3.1.html, its maximum length is 399. So, we know that the authentication string can be at most 299 bytes.
* Avoid a couple VLAs with constant sizeMichael Forney2019-11-20
| | | | These are really just regular arrays masquerading as VLAs.
* client: Include time.h for gmtime and strftimeMichael Forney2019-11-20
|
* Use strlcpy for sun_pathsJune McEnroe2019-11-20
| | | | | | | | | | | | My understanding is that sun_path need not be nul-terminated, but I didn't notice that SUN_LEN actually requires it. > The length of UNIX-domain address, required by bind(2) and connect(2), > can be calculated by the macro SUN_LEN() defined in <sys/un.h>. The > sun_path field must be terminated by a NUL character to be used with > SUN_LEN(), but the terminating NUL is not part of the address. Thanks to Duncan Overbruck <mail@duncano.de> for the report.
* Format milliseconds as intJune McEnroe2019-11-20
| | | | | I don't know what I was thinking. I'm expecting a number less than 1000 of course that fits in int.
* Mention the name CertFP in SASL EXTERNAL guide 1.0June McEnroe2019-11-18
|
* Document accept and exit behaviorJune McEnroe2019-11-18
|
* Remove ISUPPORT draft referenceJune McEnroe2019-11-18
| | | | | I don't actually deal with it at all other than storing them for syncing clients.
* Document inadvertent echo bugJune McEnroe2019-11-18
|
* Request NAMES on sync by defaultJune McEnroe2019-11-15
| | | | This inverts the meaning of -N!
* Add concept of passive clientsJune McEnroe2019-11-14
|
* Save and load full struct timevalJune McEnroe2019-11-14
|
* Use struct timeval for sub-second precisionJune McEnroe2019-11-14
|
* Remove server-time filter TODOJune McEnroe2019-11-14
| | | | | I think it's fine to keep it separate since it's a core function of the bouncer.
* Tweak filter regexesJune McEnroe2019-11-14
|
* Filter multi-prefixJune McEnroe2019-11-14
|
* Replace filters with regex replacesJune McEnroe2019-11-14
|
* Refactor filterUserhostInNamesJune McEnroe2019-11-13
|
* Factor out wordcpy for filtersJune McEnroe2019-11-13
|
* Revert "Test getopt_config"June McEnroe2019-11-11
| | | | | | This reverts commit c8a771828e1d5fc8c476bbd650fafcfb7ba390a8. It just feels gross... idk.
* Test getopt_configJune McEnroe2019-11-11
|
* Add userhost-in-names to manualJune McEnroe2019-11-11
|
* Skip initial NAMES parametersJune McEnroe2019-11-11
| | | | | | | Channel names can contain '!' so splitting the whole message on it won't work. I hate this code though.
* Filter userhost-in-namesJune McEnroe2019-11-11
| | | | I really want to be writing tests for these functions...
* Compare words without copying in filtersJune McEnroe2019-11-10
|
* Separate tags from all targetJune McEnroe2019-11-10
|
* Filter invite-notifyJune McEnroe2019-11-10
|
* Add capsicum note to READMEJune McEnroe2019-11-10
|
* Filter extended-joinJune McEnroe2019-11-10
|
* Expand client configuration documentation and list capabilitiesJune McEnroe2019-11-10
|
* Request all supported caps from serverJune McEnroe2019-11-10
|
* Filter ACCOUNT, AWAY, CHGHOST for incapable clientsJune 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
|
* Check that password is hashedJune McEnroe2019-11-08
|
* Avoid calling getopt_long again after it returns -1June McEnroe2019-11-08
| | | | | | On GNU, calling getopt_long again will reset optind back to the first non-option argument, which would cause an infinite loop of reading the same configurtion file forever.
* 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.
* Just write the example normallyJune McEnroe2019-11-07
|
* Include path in readlinkat errorJune McEnroe2019-11-07
|
* Call clientConsume before clientRecvJune McEnroe2019-11-07
| | | | | This might reduce the frequency of a client getting its own message back because it was behind in the ring when it sent it.
* Use -l:filename in Linux.mkJune McEnroe2019-11-06
|
* Fix compat.h for #defined strlcpyJune McEnroe2019-11-06
|
* Allow unsetting LIBRESSL_PREFIXJune McEnroe2019-11-06
|