diff options
-rw-r--r-- | CHANGES | 10 | ||||
-rw-r--r-- | include/arch/unix/networkio.h | 3 | ||||
-rw-r--r-- | network_io/unix/poll.c | 4 |
3 files changed, 10 insertions, 7 deletions
@@ -1,5 +1,9 @@ Changes with APR b1 + *) Fix the Unix HAVE_POLL flavor of apr_poll_socket_mask() so that + it doesn't segfault. Avoid some wasted storage in a poll-related + APR structure. [INOUE Seiichiro <inoue@ariel-networks.com>] + *) Fix apr_setup_signal_thread() so that threads don't block synchronous signals (e.g., SIGSEGV). It is a programming error to do so, and some platforms (e.g., Solaris, AIX) don't call any @@ -8,7 +12,7 @@ Changes with APR b1 *) Change the apr_table_elts macro so that it provides access via a const pointer instead of a non-const pointer. - [Brian Pane <bpane@pacbell.net] + [Brian Pane <bpane@pacbell.net>] *) Use strerror_r() where available, since strerror() isn't always thread-safe. Example systems where strerror() isn't thread-safe: @@ -20,11 +24,11 @@ Changes with APR b1 *) New functions apr_hash_[merge|copy], change to overlay fn so that it calls merge, which does a inline iteration instead - of calling the iterator function. [Brian Pane <bpane@pacbell.net] + of calling the iterator function. [Brian Pane <bpane@pacbell.net>] *) Introduce the apr_pool_userdata_setn() variant that doesn't strdup the key. Allows both the _setn() and _set() variant to - accept NULL for the cleanup. [Brian Pane <bpane@pacbell.net] + accept NULL for the cleanup. [Brian Pane <bpane@pacbell.net>] *) Re-vamp the apr_proc_wait and apr_proc_wait_all functions. We now return the exit code from the program and a reason that the diff --git a/include/arch/unix/networkio.h b/include/arch/unix/networkio.h index 58a1cd0b1..c8803e08c 100644 --- a/include/arch/unix/networkio.h +++ b/include/arch/unix/networkio.h @@ -152,10 +152,9 @@ struct apr_pollfd_t { fd_set *read_set; fd_set *write_set; fd_set *except_set; -#endif apr_int16_t *events; apr_int16_t *revents; - +#endif }; const char *apr_inet_ntop(int af, const void *src, char *dst, apr_size_t size); diff --git a/network_io/unix/poll.c b/network_io/unix/poll.c index 9e0c27bf9..5e832fdcd 100644 --- a/network_io/unix/poll.c +++ b/network_io/unix/poll.c @@ -180,8 +180,8 @@ apr_status_t apr_poll_socket_mask(apr_pollfd_t *aprset, return APR_NOTFOUND; } newevents = get_event(events); - if (aprset->events[i] & newevents) { - aprset->events[i] ^= newevents; + if (aprset->pollset[i].events & newevents) { + aprset->pollset[i].events ^= newevents; } return APR_SUCCESS; |