| Commit message (Collapse) | Author |
|
|
|
For the strlcpy implementation.
|
|
Otherwise, the result of strncmp gets converted size_t, since size_t
has greater rank than int.
Since wordcmp is only ever used as a boolean condition, this poses
no real issue, but presumably, it is meant to behave like the other
*cmp function and return a value less than, equal to, or greater
than 0 depending on the result of the comparison.
|
|
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.
|
|
|
|
|
|
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.
|
|
These are really just regular arrays masquerading as VLAs.
|
|
|
|
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.
|
|
I don't know what I was thinking. I'm expecting a number less than 1000
of course that fits in int.
|
|
|
|
|
|
I don't actually deal with it at all other than storing them for syncing
clients.
|
|
|
|
This inverts the meaning of -N!
|
|
|
|
|
|
|
|
I think it's fine to keep it separate since it's a core function of the
bouncer.
|
|
|
|
|
|
|
|
|
|
|
|
This reverts commit c8a771828e1d5fc8c476bbd650fafcfb7ba390a8.
It just feels gross... idk.
|
|
|
|
|
|
Channel names can contain '!' so splitting the whole message on it won't
work.
I hate this code though.
|
|
I really want to be writing tests for these functions...
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
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.
|
|
|
|
|
|
|
|
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.
|
|
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.
|
|
|
|
|
|
This might reduce the frequency of a client getting its own message back
because it was behind in the ring when it sent it.
|