Ignore EAGAIN errors on socket writes
authorVasilis Tsiligiannis <b_tsiligiannis@silverton.gr>
Fri, 26 Feb 2010 17:54:38 +0000 (19:54 +0200)
committerVasilis Tsiligiannis <b_tsiligiannis@silverton.gr>
Fri, 26 Feb 2010 17:54:38 +0000 (19:54 +0200)
try_read sets file access mode to non blocking during reads.
While try_read reads from socket, an attempt to write will
lead to EAGAIN error.

lib/quagga/src/quagga.c

index fcdc414..0aaaeaa 100644 (file)
@@ -309,7 +309,7 @@ zebra_send_command(unsigned char command, unsigned char *options, int optlen)
   do {
     ret = write(zebra.sock, p, length);
     if (ret < 0) {
-      if (errno == EINTR) {
+      if ((errno == EINTR) || (errno == EAGAIN)) {
         errno = 0;
         continue;
       } else {