diff options
Diffstat (limited to 'cpukit/shttpd/io_socket.c')
-rw-r--r-- | cpukit/shttpd/io_socket.c | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/cpukit/shttpd/io_socket.c b/cpukit/shttpd/io_socket.c new file mode 100644 index 0000000000..9e2b73edc4 --- /dev/null +++ b/cpukit/shttpd/io_socket.c @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2004-2005 Sergey Lyubka <valenok@gmail.com> + * All rights reserved + * + * "THE BEER-WARE LICENSE" (Revision 42): + * Sergey Lyubka wrote this file. As long as you retain this notice you + * can do whatever you want with this stuff. If we meet some day, and you think + * this stuff is worth it, you can buy me a beer in return. + */ + +#include "defs.h" + +static int +read_socket(struct stream *stream, void *buf, size_t len) +{ + assert(stream->chan.sock != -1); + return (recv(stream->chan.sock, buf, len, 0)); +} + +static int +write_socket(struct stream *stream, const void *buf, size_t len) +{ + assert(stream->chan.sock != -1); + return (send(stream->chan.sock, buf, len, 0)); +} + +static void +close_socket(struct stream *stream) +{ + assert(stream->chan.sock != -1); + (void) closesocket(stream->chan.sock); +} + +const struct io_class io_socket = { + "socket", + read_socket, + write_socket, + close_socket +}; |