--- a/src/server/util/io.h Sun Feb 22 09:33:48 2026 +0100 +++ b/src/server/util/io.h Sun Feb 22 10:05:37 2026 +0100 @@ -50,6 +50,7 @@ #define IO_MODE_BLOCKING 0 #define IO_MODE_NONBLOCKING 1 +#define IO_MODE_RAW 2 #define IO_POLL_NONE 0 #define IO_POLL_IN 1 @@ -180,6 +181,10 @@ * end of file indicator (write) */ WSBool write_eof; + /* + * raw socket IO + */ + WSBool raw; }; typedef struct SSLStream { @@ -216,9 +221,12 @@ ssize_t net_http_write(HttpStream *st, const void *buf, size_t nbytes); ssize_t net_http_writev(HttpStream *st, struct iovec *iovec, int iovcnt); +ssize_t net_http_write_raw(HttpStream *st, const void *buf, size_t nbytes); +ssize_t net_http_writev_raw(HttpStream *st, struct iovec *iovec, int iovcnt); ssize_t net_http_read(HttpStream *st, void *buf, size_t nbytes); ssize_t net_http_read_buffered(HttpStream *st, void *buf, size_t nbytes); ssize_t net_http_read_chunked(HttpStream *st, void *buf, size_t nbytes); +ssize_t net_http_read_raw(HttpStream *st, void *buf, size_t nbytes); ssize_t net_http_sendfile(HttpStream *st, sendfiledata *sfd); void net_http_close(HttpStream *st); void net_http_finish(HttpStream *st);