X-Git-Url: https://git.cworth.org/git?p=ttt;a=blobdiff_plain;f=src%2Fttt-socket.c;h=199535f300e200d0970341ea6177e53cf35bbf70;hp=18577ffa378468088938985545f8d758507ee50a;hb=15672ac8305a1c5ba0d9bf6edabb0a194c30628e;hpb=f04f93bc811d1d2f36cf37f4a9e012e8877c744b diff --git a/src/ttt-socket.c b/src/ttt-socket.c index 18577ff..199535f 100644 --- a/src/ttt-socket.c +++ b/src/ttt-socket.c @@ -146,11 +146,45 @@ ttt_socket_create_server (const char *host, const char *port) /* Exported: see ttt-socket.h for documentation. */ void -ttt_socket_accept (int listen_socket, ttt_socket_dispatch_func_t dispatch) +ttt_socket_accept (int listen_socket, + ttt_socket_accept_func_t accept, + void *closure) { int connected_socket; connected_socket = _wait_for_connection (listen_socket); - (dispatch) (connected_socket); + (accept) (closure, connected_socket); +} + +/* Exported: see ttt-socket.h for documentation. */ +void +ttt_socket_read (int socket, + void *buf, + size_t count) +{ + int bytes_read; + char *cbuf = buf; + + while (count) { + bytes_read = xread (socket, cbuf, count); + cbuf += bytes_read; + count -= bytes_read; + } +} + +/* Exported: see ttt-socket.h for documentation. */ +void +ttt_socket_write (int socket, + const void *buf, + size_t count) +{ + int written; + const char *cbuf = buf; + + while (count) { + written = xwrite (socket, cbuf, count); + cbuf += written; + count -= written; + } }