summary refs log tree commit diff
path: root/client.c (follow)
Commit message (Collapse)AuthorAge
* Hash client passwords with cryptJune McEnroe2019-11-04
|
* Use explicit_bzero to clear passwordsJune McEnroe2019-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 sizeJune McEnroe2019-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 listJune McEnroe2019-10-28
|
* Disallow PRIVMSG/NOTICE before registrationJune McEnroe2019-10-28
|
* Move entire login flow to state and reorganize itJune McEnroe2019-10-28
|
* Only increment consumer after successful sendJune McEnroe2019-10-27
|
* Improve client/server error messagesJune McEnroe2019-10-27
|
* Drop clients on zero-length readsJune McEnroe2019-10-27
|
* Require PASS before USERJune McEnroe2019-10-26
| | | | Prevent creating a ring consumer without authentication.
* OopsJune McEnroe2019-10-26
|
* Disconnect client on unknown commandJune McEnroe2019-10-26
| | | | | During registration, no other commands should be sent. Afterwards, only intercepted commands will get parsed.
* Add AGPLv3 notice on client registrationJune McEnroe2019-10-25
| | | | OwO
* Send PRIVMSG and NOTICE to other clientsJune McEnroe2019-10-25
|
* Clean up clientJune McEnroe2019-10-25
|
* Use produce/consume words for ring bufferJune McEnroe2019-10-25
| | | | To disambiguate clientRecv and clientRead, say clientConsume.
* Implement client reading from ring bufferJune McEnroe2019-10-25
| | | | It's still messy but it works!!
* Zero entire Client structJune McEnroe2019-10-24
| | | | | Does zeroing that extra 4K really matter? I'd rather not have uninitialized reads.
* Register readers by client usernamesJune McEnroe2019-10-24
|
* Unset non-blocking on clientsJune McEnroe2019-10-24
| | | | | I figure I'll actually use POLLOUT on clients so should never have issues.
* Intercept client QUITJune McEnroe2019-10-24
|
* Only set NeedCapEnd if unregisteredJune McEnroe2019-10-24
|
* Set client-side origin to irc.invalidJune McEnroe2019-10-24
|
* Factor out client-side origin nameJune McEnroe2019-10-24
|
* Intercept all CAP commands from clientsJune McEnroe2019-10-24
|
* Ignore further CAP ENDJune McEnroe2019-10-24
|
* Implement client CAP for server-timeJune McEnroe2019-10-24
|
* Make clientFormat publicJune McEnroe2019-10-24
|
* Rename some thingsJune McEnroe2019-10-24
|
* Rename Command to MessageJune McEnroe2019-10-23
|
* Synchronize state after client registrationJune McEnroe2019-10-23
|
* Send to server if client has no needsJune McEnroe2019-10-23
|
* Implement some amount of client connectionJune McEnroe2019-10-23
|
* Add dynamic poll listJune McEnroe2019-10-23