fix missing error propagation in net_http_write when using chunked transfer encoding default tip

Sat, 18 Jul 2026 20:50:04 +0200

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Sat, 18 Jul 2026 20:50:04 +0200
changeset 739
f5ccacc7bab8
parent 738
677bff22d1b2

fix missing error propagation in net_http_write when using chunked transfer encoding

src/server/util/io.c file | annotate | diff | comparison | revisions
--- a/src/server/util/io.c	Sat Jul 18 20:34:33 2026 +0200
+++ b/src/server/util/io.c	Sat Jul 18 20:50:04 2026 +0200
@@ -137,8 +137,11 @@
 
 #ifdef XP_UNIX
 ssize_t net_sys_write(Sysstream *st, const void *buf, size_t nbytes) {
+    st->st.io_errno = 0;
     ssize_t r = write(st->fd, buf, nbytes);
-    st->st.io_errno = errno;
+    if(r <= 0) {
+        st->st.io_errno = errno;
+    }
     return r;
 }
 
@@ -422,6 +425,9 @@
     IOStream *fd = st->fd;
     if(!st->chunked_enc) {
         ssize_t w = fd->write(fd, buf, nbytes);
+        if(w <= 0) {
+            st->st.io_errno = fd->io_errno;
+        }
         //st->written += w > 0 ? w : 0;
         st->written += w;
         return w;

mercurial