| Commit message (Collapse) | Author |
|
|
|
|
|
|
|
It immediately exposed a horrible bug in net.c, which is now fixed.
|
|
|
|
|
|
|
|
|
|
Also, move some stuff to net.c where it belongs.
|
|
* I don't really need to declare all variables at the top of the
function anymore.
* Default-initialize variables more.
* Don't set the output parameter until the object is completely
constructed.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Use a predefined byte order, integers with fixed width, etc.
|
|
This makes sure we use the dual-stack feature to support both IPv4 and
IPv6.
|
|
Apparently, if you try to write() into a socket with the other party
already gone, your process receives a SIGPIPE. Wtf?
|
|
|
|
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.
|
|
I've only recently learned about this flag, seems generally useful.
|
|
Make sure we handle read() returning 0, this is a valid use-case.
|
|
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.
|