diff options
author | Paul Querna <pquerna@apache.org> | 2009-06-28 08:17:42 +0000 |
---|---|---|
committer | Paul Querna <pquerna@apache.org> | 2009-06-28 08:17:42 +0000 |
commit | 867ff2e049c3e42fecc67f91944ba708670efd5e (patch) | |
tree | 3356c95989802d99112b6c41679c3c7eb8a82a14 /poll | |
parent | 32d4d8aa9258fa8525c1ec48a2c45814125f6054 (diff) | |
download | apr-867ff2e049c3e42fecc67f91944ba708670efd5e.tar.gz |
If APR_POLLSET_NODEFAULT is specified, never ever fallback to the default.
git-svn-id: https://svn.apache.org/repos/asf/apr/apr/trunk@789066 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'poll')
-rw-r--r-- | poll/unix/pollcb.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/poll/unix/pollcb.c b/poll/unix/pollcb.c index 9fbfbd61a..cd5266a7e 100644 --- a/poll/unix/pollcb.c +++ b/poll/unix/pollcb.c @@ -103,19 +103,22 @@ APR_DECLARE(apr_status_t) apr_pollcb_create_ex(apr_pollcb_t **pollcb, rv = (*provider->create)(*pollcb, size, p, flags); if (rv == APR_ENOTIMPL) { + *pollcb = NULL; if (method == pollset_default_method) { - *pollcb = NULL; return rv; } + + if ((flags & APR_POLLSET_NODEFAULT) == APR_POLLSET_NODEFAULT) { + return rv; + } + /* Try with default provider */ provider = pollcb_provider(pollset_default_method); if (!provider) { - *pollcb = NULL; return APR_ENOTIMPL; } rv = (*provider->create)(*pollcb, size, p, flags); if (rv != APR_SUCCESS) { - *pollcb = NULL; return rv; } (*pollcb)->provider = provider; |