summary refs log tree commit diff homepage
path: root/server.c (follow)
Commit message (Collapse)AuthorAge
* Set client sockets SNDBUF to twice tile sizeJune McEnroe2018-07-25
| | | | | On Darwin and FreeBSD, this is already the default buffer size, but on (32-bit?) NetBSD, it's only 4K.
* Revert "Do not set non-blocking on client sockets"June McEnroe2018-07-24
| | | | | | This reverts commit f4da47cb0ee659472b563b9e6443663c62a69996. There actually are adverse effects.
* Do not set non-blocking on client socketsJune McEnroe2018-07-24
| | | | | | On NetBSD, the send buffer seems to only be 4096 bytes, so sending SERVER_TILE would get cut short. Just not setting non-blocking allows messages to properly get through and *seems* to have no adverse effect.
* Use EV_SETJune McEnroe2018-07-24
| | | | | NetBSD kevent.udata is uintptr_t rather than void * and the macro does the cast.
* Add ARRAY_LEN macroJune McEnroe2018-07-19
|
* Add server map generationJune McEnroe2018-07-17
|
* Tabify sourceJune McEnroe2018-07-17
| | | | And other style changes.
* Use anonymous unionJune McEnroe2018-04-09
|
* Miscellaneous code cleanupJune McEnroe2018-03-05
|
* Pass message structs by valueJune McEnroe2018-03-05
|
* Clean up spawn constantsJune McEnroe2018-03-05
|
* Rename Tile timestamps {create,modify,access}TimeJune McEnroe2018-03-05
|
* Remove leading blank linesJune McEnroe2017-09-27
|
* Assert client coords are valid after movementJune McEnroe2017-09-03
|
* Relicense AGPLJune McEnroe2017-09-03
| | | | | | | I know it's already published under a permissive license in what is probably its final form, but I want to license it AGPL anyway on principle following some conversations I had about open source, corporations and copyleft.
* Remove clientRemove call from clientCastJune McEnroe2017-09-01
| | | | | | | If an error occurs on a client socket during a broadcast, that client will show up in the kqueue loop with EV_EOF and get removed that way. Tested by sending SIGKILL to a client and watching its cursor disappear.
* Add four additional spawnsJune McEnroe2017-08-29
|
* Add respawningJune McEnroe2017-08-28
|
* Use MakefileJune McEnroe2017-08-26
|
* Add license to C filesJune McEnroe2017-08-24
| | | | I feel like doing this now.
* Clean up unnecessary kevent initializersJune McEnroe2017-08-13
|
* Remove MADV_NOSYNCJune McEnroe2017-08-08
| | | | | I don't think this has any benefit. It just takes longer to stop the server because it flushes all the pages then.
* Completely retry if a send fails during a broadcastJune McEnroe2017-08-08
| | | | | | | | This fixes a bug where the saved next client to iterate through would also get removed. This can result in messages being sent multiple times to a client, but that will have no negative effect.
* Reverse order of main loopJune McEnroe2017-08-08
|
* Turn off SIGPIPE at the socket levelJune McEnroe2017-08-08
| | | | | I imagine it's better to not generate SIGPIPE at all rather than generate and ignore.
* Split tile access and modifyJune McEnroe2017-08-02
|
* Madvise RANDOM and NOSYNCJune McEnroe2017-08-01
|
* Fix removing clients from clientCastJune McEnroe2017-07-31
|
* Don't dump tiles in coreJune McEnroe2017-07-31
|
* Use designated initializers for messagesJune McEnroe2017-07-31
| | | | I did not realize this syntax was so powerful.
* Show other clients' cursorsJune McEnroe2017-07-31
| | | | Also unfuck removing on send failure.
* Track tile access countsJune McEnroe2017-07-31
|
* Handle large movesJune McEnroe2017-07-31
|
* Track color only client-sideJune McEnroe2017-07-30
|
* Add tile create and access timestampsJune McEnroe2017-07-30
|
* Initial commitJune McEnroe2017-07-30