src/server/util/io.h

changeset 684
48da20bde908
parent 683
db37761a8494
--- a/src/server/util/io.h	Wed Feb 18 12:31:19 2026 +0100
+++ b/src/server/util/io.h	Wed Feb 18 13:41:10 2026 +0100
@@ -70,6 +70,7 @@
 typedef void(*io_finish_f)(IOStream *);
 typedef void(*io_setmode_f)(IOStream *, int);
 typedef int(*io_poll_f)(IOStream *, EventHandler *, int, Event *);
+typedef void (*io_free_f)(IOStream *);
 
 struct IOStream {
     io_write_f    write;
@@ -80,12 +81,14 @@
     io_finish_f   finish;
     io_setmode_f  setmode;
     io_poll_f     poll;
+    io_free_f     free;
     int           io_errno;
     unsigned int  type;
 };
 
 struct Sysstream {
     IOStream st;
+    pool_handle_t *pool;
 #ifdef XP_UNIX
     int      fd;
 #elif defined(XP_WIN32)
@@ -97,6 +100,7 @@
 struct HttpStream {
     IOStream st;
     IOStream *fd;
+    pool_handle_t *pool;
     
     uint64_t written; 
     /*
@@ -181,6 +185,7 @@
 typedef struct SSLStream {
     IOStream st;
     SSL      *ssl;
+    pool_handle_t *pool;
     int      error;
 } SSLStream;
 
@@ -188,6 +193,7 @@
 
 /* system stream */
 IOStream* Sysstream_new(pool_handle_t *pool, SYS_SOCKET fd);
+void sysstream_free(IOStream *st);
 
 ssize_t net_sys_write(Sysstream *st, const void *buf, size_t nbytes);
 ssize_t net_sys_writev(Sysstream *st, struct iovec *iovec, int iovcnt);
@@ -199,6 +205,7 @@
 
 /* http stream */
 IOStream* httpstream_new(pool_handle_t *pool, IOStream *fd);
+void httpstream_free(IOStream *st);
 
 int httpstream_enable_chunked_read(IOStream *st, char *buffer, size_t bufsize, int *cursize, int *pos);
 int httpstream_enable_buffered_read(IOStream *st, char *buffer, size_t bufsize, int *cursize, int *pos);
@@ -222,6 +229,7 @@
 
 /* ssl stream */
 IOStream* sslstream_new(pool_handle_t *pool, SSL *ssl);
+void sslstream_free(IOStream *st);
 
 ssize_t net_ssl_write(SSLStream *st, const void *buf, size_t nbytes);
 ssize_t net_ssl_writev(SSLStream *st, struct iovec *iovec, int iovcnt);

mercurial