diff options
author | Christian Grothoff <christian@grothoff.org> | 2011-10-06 08:47:42 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2011-10-06 08:47:42 +0000 |
commit | 7a741efb9be24b69bf7f44279274836cdba5601c (patch) | |
tree | 535b33913dfa4f4d409b005b171bfd21d7f7b910 /src/util | |
parent | 61a374c33cac36eea8a4c1c5e85064b3a78608e2 (diff) | |
download | gnunet-7a741efb9be24b69bf7f44279274836cdba5601c.tar.gz gnunet-7a741efb9be24b69bf7f44279274836cdba5601c.zip |
LRN: Fix select() on pipes to trigger read callback on EPIPE
Diffstat (limited to 'src/util')
-rw-r--r-- | src/util/network.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/util/network.c b/src/util/network.c index 320304fe2..3be21599e 100644 --- a/src/util/network.c +++ b/src/util/network.c | |||
@@ -1531,7 +1531,12 @@ GNUNET_NETWORK_socket_select (struct GNUNET_NETWORK_FDSet *rfds, | |||
1531 | "Peek at read pipe %d (0x%x) returned %d (%d bytes available) GLE %u\n", | 1531 | "Peek at read pipe %d (0x%x) returned %d (%d bytes available) GLE %u\n", |
1532 | i, readArray[i]->h, bret, waitstatus, error); | 1532 | i, readArray[i]->h, bret, waitstatus, error); |
1533 | #endif | 1533 | #endif |
1534 | if (bret == 0 || waitstatus <= 0) | 1534 | if (bret == 0) |
1535 | { | ||
1536 | if (error != ERROR_BROKEN_PIPE) | ||
1537 | continue; | ||
1538 | } | ||
1539 | else if (waitstatus <= 0) | ||
1535 | continue; | 1540 | continue; |
1536 | GNUNET_CONTAINER_slist_add (handles_read, | 1541 | GNUNET_CONTAINER_slist_add (handles_read, |
1537 | GNUNET_CONTAINER_SLIST_DISPOSITION_TRANSIENT, | 1542 | GNUNET_CONTAINER_SLIST_DISPOSITION_TRANSIENT, |