diff -r 09676b559091 -r 60870dbac94f src/server/util/writer.h --- a/src/server/util/writer.h Tue Apr 26 18:21:25 2022 +0200 +++ b/src/server/util/writer.h Sat Apr 30 20:44:38 2022 +0200 @@ -36,16 +36,23 @@ extern "C" { #endif +typedef ssize_t (*wr_writefunc)(void *, const char *, size_t); + typedef struct Writer { - SYS_NETFD fd; + void *fd; + wr_writefunc write; char *buffer; size_t size; size_t pos; int error; } Writer; + + void writer_init(Writer *w, SYS_NETFD fd, char *buf, size_t len); +void writer_init_with_stream(Writer *w, void *stream, wr_writefunc writefunc, char *buf, size_t len); + int writer_flush(Writer *w); int writer_put(Writer *w, const char *s, size_t len); @@ -54,6 +61,8 @@ int writer_putc(Writer *w, char c); +int writer_fwrite(const void *s, size_t size, size_t nelem, Writer *w); + #ifdef __cplusplus } #endif