Commit message (Collapse) | Author | Age | |
---|---|---|---|
* | Add concept of passive clients | June McEnroe | 2019-11-14 |
| | |||
* | Use struct timeval for sub-second precision | June McEnroe | 2019-11-14 |
| | |||
* | Remove server-time filter TODO | June McEnroe | 2019-11-14 |
| | | | | | I think it's fine to keep it separate since it's a core function of the bouncer. | ||
* | Tweak filter regexes | June McEnroe | 2019-11-14 |
| | |||
* | Filter multi-prefix | June McEnroe | 2019-11-14 |
| | |||
* | Replace filters with regex replaces | June McEnroe | 2019-11-14 |
| | |||
* | Refactor filterUserhostInNames | June McEnroe | 2019-11-13 |
| | |||
* | Factor out wordcpy for filters | June McEnroe | 2019-11-13 |
| | |||
* | Skip initial NAMES parameters | June McEnroe | 2019-11-11 |
| | | | | | | | Channel names can contain '!' so splitting the whole message on it won't work. I hate this code though. | ||
* | Filter userhost-in-names | June McEnroe | 2019-11-11 |
| | | | | I really want to be writing tests for these functions... | ||
* | Compare words without copying in filters | June McEnroe | 2019-11-10 |
| | |||
* | Filter invite-notify | June McEnroe | 2019-11-10 |
| | |||
* | Filter extended-join | June McEnroe | 2019-11-10 |
| | |||
* | Filter ACCOUNT, AWAY, CHGHOST for incapable clients | June McEnroe | 2019-11-10 |
| | |||
* | Maintain stateCaps and offer them to clients | June McEnroe | 2019-11-09 |
| | |||
* | Parse capabilities | June McEnroe | 2019-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. | ||
* | Define macro for bit flag enums | June McEnroe | 2019-11-09 |
| | |||
* | Only change AWAY status for registered clients | June McEnroe | 2019-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 strings | June McEnroe | 2019-11-06 |
| | | | | | GCC hates declaring static consts in headers and not using them, for some stupid reason. | ||
* | Change license to GPLv3 | June McEnroe | 2019-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 LibreSSL | June McEnroe | 2019-11-06 |
| | |||
* | Zero PASS parameter | June McEnroe | 2019-11-04 |
| | |||
* | Hash client passwords with crypt | June McEnroe | 2019-11-04 |
| | |||
* | Use explicit_bzero to clear passwords | June McEnroe | 2019-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. | ||
* | Shrink client buffer size | June McEnroe | 2019-10-31 |
| | | | | | | | Clients are generally not going to send huge amounts at a time, and IRC messages are limited to 512 bytes. If in the future we supported message tags from clients, which have a size limit of 8191 bytes, this would unfortunately have to be set much higher. | ||
* | Specify when command is allowed in Handlers list | June McEnroe | 2019-10-28 |
| | |||
* | Disallow PRIVMSG/NOTICE before registration | June McEnroe | 2019-10-28 |
| | |||
* | Move entire login flow to state and reorganize it | June McEnroe | 2019-10-28 |
| | |||
* | Only increment consumer after successful send | June McEnroe | 2019-10-27 |
| | |||
* | Improve client/server error messages | June McEnroe | 2019-10-27 |
| | |||
* | Drop clients on zero-length reads | June McEnroe | 2019-10-27 |
| | |||
* | Require PASS before USER | June McEnroe | 2019-10-26 |
| | | | | Prevent creating a ring consumer without authentication. | ||
* | Oops | June McEnroe | 2019-10-26 |
| | |||
* | Disconnect client on unknown command | June McEnroe | 2019-10-26 |
| | | | | | During registration, no other commands should be sent. Afterwards, only intercepted commands will get parsed. | ||
* | Add AGPLv3 notice on client registration | June McEnroe | 2019-10-25 |
| | | | | OwO | ||
* | Send PRIVMSG and NOTICE to other clients | June McEnroe | 2019-10-25 |
| | |||
* | Clean up client | June McEnroe | 2019-10-25 |
| | |||
* | Use produce/consume words for ring buffer | June McEnroe | 2019-10-25 |
| | | | | To disambiguate clientRecv and clientRead, say clientConsume. | ||
* | Implement client reading from ring buffer | June McEnroe | 2019-10-25 |
| | | | | It's still messy but it works!! | ||
* | Zero entire Client struct | June McEnroe | 2019-10-24 |
| | | | | | Does zeroing that extra 4K really matter? I'd rather not have uninitialized reads. | ||
* | Register readers by client usernames | June McEnroe | 2019-10-24 |
| | |||
* | Unset non-blocking on clients | June McEnroe | 2019-10-24 |
| | | | | | I figure I'll actually use POLLOUT on clients so should never have issues. | ||
* | Intercept client QUIT | June McEnroe | 2019-10-24 |
| | |||
* | Only set NeedCapEnd if unregistered | June McEnroe | 2019-10-24 |
| | |||
* | Set client-side origin to irc.invalid | June McEnroe | 2019-10-24 |
| | |||
* | Factor out client-side origin name | June McEnroe | 2019-10-24 |
| | |||
* | Intercept all CAP commands from clients | June McEnroe | 2019-10-24 |
| | |||
* | Ignore further CAP END | June McEnroe | 2019-10-24 |
| | |||
* | Implement client CAP for server-time | June McEnroe | 2019-10-24 |
| | |||
* | Make clientFormat public | June McEnroe | 2019-10-24 |
| |