aboutsummaryrefslogtreecommitdiffstatshomepage
Commit message (Collapse)AuthorAge
* net: use MSG_NOSIGNALEgor Tensin2022-08-28
| | | | | Apparently, if you try to write() into a socket with the other party already gone, your process receives a SIGPIPE. Wtf?
* server: shutting down more gracefullyEgor Tensin2022-08-28
|
* came up with a new name: cimpleEgor Tensin2022-08-26
|
* add check_errno macroEgor Tensin2022-08-26
|
* fix macrosEgor Tensin2022-08-26
| | | | | | do { ... } while (0) is objectively better: https://stackoverflow.com/q/1067226/514684
* fix pthread error handlingEgor Tensin2022-08-26
| | | | pthread functions return positive error codes.
* worker: allow graceful shutdownsEgor Tensin2022-08-26
| | | | | | | | | | Well, maybe "graceful" is a strong word, but now you _can_ do ./server & ./worker & ./client ci_run URL REV && kill "$( pidof worker )" and the worker will wait for the CI run to complete.
* worker: capture process outputEgor Tensin2022-08-26
|
* add some more codeEgor Tensin2022-08-26
| | | | | | | | | | | | | | | | This adds a basic "worker" program. You can now do something like ./server & ./worker & ./client ci_run URL REV and the server should pass a message to worker, after which it should clone the repository at URL, checkout REV, and try to run the CI script. It's extremely unfinished: I need to sort out the graceful shutdown, how the server manages workers, etc.
* cmake: ignore unused parameters for nowEgor Tensin2022-08-25
| | | | This is a dumb warning.
* msg: add msg_copy, refactoringEgor Tensin2022-08-25
|
* msg: refactoringEgor Tensin2022-08-25
|
* net: rework APIEgor Tensin2022-08-25
| | | | | | | | | | First, rename all API functions so that they start with net_. Second, abstract the basic TCP server functionality into tcp_server.c. This includes reworking net_accept so that it's a simple blocking operation, and putting the callback stuff to tcp_server.c. Also, the server now uses detached threads instead of fork(), since I want connection handlers to share memory.
* msg: add msg_dump_unknownEgor Tensin2022-08-25
|
* log: add print_log macroEgor Tensin2022-08-25
|
* cmd -> msgEgor Tensin2022-08-23
| | | | This I feel better conveys the meaning.
* remove redundant codeEgor Tensin2022-08-23
|
* cmd: add cmd_from_argvEgor Tensin2022-08-23
|
* net: use CLOEXECEgor Tensin2022-08-23
| | | | I've only recently learned about this flag, seems generally useful.
* net: fix recv_allEgor Tensin2022-08-23
| | | | Make sure we handle read() returning 0, this is a valid use-case.
* add some codeEgor Tensin2022-08-23
| | | | | A basic client-server app, the client sends commands as an array of strings. Hopefully I didn't mess up, and hopefully it'll be useful.
* add doc/rationale.mdEgor Tensin2022-08-21
|
* add LICENSE.txtEgor Tensin2022-08-21
|
* initial commitEgor Tensin2022-08-21