src/server/util/io.c

changeset 739
f5ccacc7bab8
parent 735
902b417ab6d2
--- 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