summaryrefslogtreecommitdiff
path: root/poll
diff options
context:
space:
mode:
authorniq <niq@13f79535-47bb-0310-9956-ffa450edef68>2008-06-27 17:47:28 +0000
committerniq <niq@13f79535-47bb-0310-9956-ffa450edef68>2008-06-27 17:47:28 +0000
commitb200917e4d61201270a825bd6ee93fa07f881d03 (patch)
tree8c616b24088bb3e757ba86401bb5a62f11e9ff98 /poll
parent992cfc20405e8c3dc39945c57bbeb7c0525b45b1 (diff)
downloadlibapr-b200917e4d61201270a825bd6ee93fa07f881d03.tar.gz
Fix solaris poll bug - ref http://marc.info/?t=121438277000004&r=1&w=2
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@672344 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'poll')
-rw-r--r--poll/unix/port.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/poll/unix/port.c b/poll/unix/port.c
index 3f1ac245d..73d852511 100644
--- a/poll/unix/port.c
+++ b/poll/unix/port.c
@@ -381,7 +381,15 @@ APR_DECLARE(apr_status_t) apr_pollset_poll(apr_pollset_t *pollset,
if (ret == -1) {
(*num) = 0;
- rv = apr_get_netos_error();
+ if (errno == EINTR) {
+ rv = APR_EINTR;
+ }
+ else if (errno == ETIME) {
+ rv = APR_TIMEUP;
+ }
+ else {
+ rv = apr_get_netos_error();
+ }
}
else if (nget == 0) {
rv = APR_TIMEUP;