ustream-fd: handle ENOTCONN for read/write on not-yet-connected sockets
authorFelix Fietkau <nbd@openwrt.org>
Fri, 15 Jan 2016 20:35:48 +0000 (21:35 +0100)
committerFelix Fietkau <nbd@openwrt.org>
Fri, 15 Jan 2016 20:35:48 +0000 (21:35 +0100)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
ustream-fd.c

index d5abb5a1f524c73d635b856966def2fcb8d3a26b..b546fa1c6968c96edda17908457bfd89fb7923f2 100644 (file)
@@ -62,7 +62,7 @@ static void ustream_fd_read_pending(struct ustream_fd *sf, bool *more)
                        if (errno == EINTR)
                                continue;
 
                        if (errno == EINTR)
                                continue;
 
-                       if (errno == EAGAIN)
+                       if (errno == EAGAIN || errno == ENOTCONN)
                                return;
 
                        len = 0;
                                return;
 
                        len = 0;
@@ -96,7 +96,7 @@ static int ustream_fd_write(struct ustream *s, const char *buf, int buflen, bool
                        if (errno == EINTR)
                                continue;
 
                        if (errno == EINTR)
                                continue;
 
-                       if (errno == EAGAIN || errno == EWOULDBLOCK)
+                       if (errno == EAGAIN || errno == EWOULDBLOCK || errno == ENOTCONN)
                                break;
 
                        return -1;
                                break;
 
                        return -1;