diff -r f48cea237ec3 -r 0de4a90979e1 src/server/util/io.c --- a/src/server/util/io.c Wed Jun 26 15:09:54 2013 +0200 +++ b/src/server/util/io.c Wed Jun 26 17:14:45 2013 +0200 @@ -47,6 +47,8 @@ system_write, system_writev, system_read, + NULL, + NULL, NULL }; @@ -54,7 +56,9 @@ (io_write_f)net_stream_write, (io_writev_f)net_stream_writev, (io_read_f)net_stream_read, - (io_sendfile_f)net_stream_sendfile + (io_sendfile_f)net_stream_sendfile, + (io_close_f)net_stream_close, + (io_finish_f)net_stream_finish }; @@ -174,6 +178,16 @@ return ret; } +void net_stream_close(NetIOStream *st) { + close(st->fd); +} + +void net_stream_finish(NetIOStream *st) { + if(st->chunked_enc) { + write(st->fd, "0\r\n\r\n", 5); + } +} + ssize_t net_read(SYS_NETFD fd, void *buf, size_t nbytes) { ssize_t r = ((IOStream*)fd)->read(fd, buf, nbytes); @@ -283,6 +297,14 @@ return IO_ERROR; } +void net_close(SYS_NETFD fd) { + ((IOStream*)fd)->close(fd); +} + +void net_finish(SYS_NETFD fd) { + ((IOStream*)fd)->finish(fd); +} + /* iovec buffer */ iovec_buf_t *iovec_buf_create(pool_handle_t *pool) {