fix interrupted read checks in log collection
authorFelix Fietkau <nbd@openwrt.org>
Tue, 18 Oct 2011 18:12:08 +0000 (20:12 +0200)
committerFelix Fietkau <nbd@openwrt.org>
Tue, 18 Oct 2011 18:12:08 +0000 (20:12 +0200)
main.c

diff --git a/main.c b/main.c
index b17f053..256a022 100644 (file)
--- a/main.c
+++ b/main.c
@@ -94,12 +94,14 @@ netifd_process_log_cb(struct uloop_fd *fd, unsigned int events)
 
 retry:
        read_len = len = read(fd->fd, buf, maxlen);
 
 retry:
        read_len = len = read(fd->fd, buf, maxlen);
-       if (len <= 0) {
-               if (errno == EINTR)
+       if (len < 0) {
+               if (errno == EAGAIN)
                        goto retry;
 
                goto out;
                        goto retry;
 
                goto out;
-       }
+       } else if (len == 0)
+               goto out;
+
        proc->log_buf_ofs += len;
 
        cur = buf;
        proc->log_buf_ofs += len;
 
        cur = buf;