Commit message (Collapse) | Author | Age | ||
---|---|---|---|---|
... | ||||
* | 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 | |
| | ||||
* | Rename some things | June McEnroe | 2019-10-24 | |
| | ||||
* | Rename Command to Message | June McEnroe | 2019-10-23 | |
| | ||||
* | Synchronize state after client registration | June McEnroe | 2019-10-23 | |
| | ||||
* | Send to server if client has no needs | June McEnroe | 2019-10-23 | |
| | ||||
* | Implement some amount of client connection | June McEnroe | 2019-10-23 | |
| | ||||
* | Add dynamic poll list | June McEnroe | 2019-10-23 | |