diff options
Diffstat (limited to 'rubbos/app/httpd-2.0.64/srclib/apr/poll')
14 files changed, 0 insertions, 1158 deletions
diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/poll/os2/Makefile.in b/rubbos/app/httpd-2.0.64/srclib/apr/poll/os2/Makefile.in deleted file mode 100644 index 96fc006f..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/poll/os2/Makefile.in +++ /dev/null @@ -1,17 +0,0 @@ -srcdir = @srcdir@ -VPATH = @srcdir@ - -TARGETS = \ - poll.lo \ - pollset.lo \ - pollacc.lo - -# bring in rules.mk for standard functionality -@INCLUDE_RULES@ - -INCDIR=../../include -OSDIR=$(INCDIR)/arch/@OSDIR@ -DEFOSDIR=$(INCDIR)/arch/@DEFAULT_OSDIR@ -INCLUDES=-I$(INCDIR) -I$(OSDIR) -I$(DEFOSDIR) - -# DO NOT REMOVE diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/poll/os2/poll.c b/rubbos/app/httpd-2.0.64/srclib/apr/poll/os2/poll.c deleted file mode 100644 index 3c36e5e6..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/poll/os2/poll.c +++ /dev/null @@ -1,105 +0,0 @@ -/* Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "apr.h" -#include "apr_poll.h" -#include "apr_arch_networkio.h" - -APR_DECLARE(apr_status_t) apr_poll(apr_pollfd_t *aprset, apr_int32_t num, - apr_int32_t *nsds, apr_interval_time_t timeout) -{ - int *pollset; - int i; - int num_read = 0, num_write = 0, num_except = 0, num_total; - int pos_read, pos_write, pos_except; - - for (i = 0; i < num; i++) { - if (aprset[i].desc_type == APR_POLL_SOCKET) { - num_read += (aprset[i].reqevents & APR_POLLIN) != 0; - num_write += (aprset[i].reqevents & APR_POLLOUT) != 0; - num_except += (aprset[i].reqevents & APR_POLLPRI) != 0; - } - } - - num_total = num_read + num_write + num_except; - pollset = alloca(sizeof(int) * num_total); - memset(pollset, 0, sizeof(int) * num_total); - - pos_read = 0; - pos_write = num_read; - pos_except = pos_write + num_write; - - for (i = 0; i < num; i++) { - if (aprset[i].desc_type == APR_POLL_SOCKET) { - if (aprset[i].reqevents & APR_POLLIN) { - pollset[pos_read++] = aprset[i].desc.s->socketdes; - } - - if (aprset[i].reqevents & APR_POLLOUT) { - pollset[pos_write++] = aprset[i].desc.s->socketdes; - } - - if (aprset[i].reqevents & APR_POLLPRI) { - pollset[pos_except++] = aprset[i].desc.s->socketdes; - } - - aprset[i].rtnevents = 0; - } - } - - if (timeout > 0) { - timeout /= 1000; /* convert microseconds to milliseconds */ - } - - i = select(pollset, num_read, num_write, num_except, timeout); - (*nsds) = i; - - if ((*nsds) < 0) { - return APR_FROM_OS_ERROR(sock_errno()); - } - - if ((*nsds) == 0) { - return APR_TIMEUP; - } - - pos_read = 0; - pos_write = num_read; - pos_except = pos_write + num_write; - - for (i = 0; i < num; i++) { - if (aprset[i].desc_type == APR_POLL_SOCKET) { - if (aprset[i].reqevents & APR_POLLIN) { - if (pollset[pos_read++] > 0) { - aprset[i].rtnevents |= APR_POLLIN; - } - } - - if (aprset[i].reqevents & APR_POLLOUT) { - if (pollset[pos_write++] > 0) { - aprset[i].rtnevents |= APR_POLLOUT; - } - } - - if (aprset[i].reqevents & APR_POLLPRI) { - if (pollset[pos_except++] > 0) { - aprset[i].rtnevents |= APR_POLLPRI; - } - } - } - } - - return APR_SUCCESS; -} diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/poll/os2/pollacc.c b/rubbos/app/httpd-2.0.64/srclib/apr/poll/os2/pollacc.c deleted file mode 100644 index ac87d0aa..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/poll/os2/pollacc.c +++ /dev/null @@ -1 +0,0 @@ -#include "../unix/pollacc.c" diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/poll/os2/pollset.c b/rubbos/app/httpd-2.0.64/srclib/apr/poll/os2/pollset.c deleted file mode 100644 index 872571f8..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/poll/os2/pollset.c +++ /dev/null @@ -1,220 +0,0 @@ -/* Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "apr.h" -#include "apr_poll.h" -#include "apr_arch_networkio.h" - - - -struct apr_pollset_t { - apr_pool_t *pool; - apr_uint32_t nelts; - apr_uint32_t nalloc; - int *pollset; - int num_read; - int num_write; - int num_except; - int num_total; - apr_pollfd_t *query_set; - apr_pollfd_t *result_set; -}; - - - -APR_DECLARE(apr_status_t) apr_pollset_create(apr_pollset_t **pollset, - apr_uint32_t size, - apr_pool_t *p, - apr_uint32_t flags) -{ - *pollset = apr_palloc(p, sizeof(**pollset)); - (*pollset)->pool = p; - (*pollset)->nelts = 0; - (*pollset)->nalloc = size; - (*pollset)->pollset = apr_palloc(p, size * sizeof(int) * 3); - (*pollset)->query_set = apr_palloc(p, size * sizeof(apr_pollfd_t)); - (*pollset)->result_set = apr_palloc(p, size * sizeof(apr_pollfd_t)); - (*pollset)->num_read = -1; - return APR_SUCCESS; -} - - - -APR_DECLARE(apr_status_t) apr_pollset_destroy(apr_pollset_t *pollset) -{ - /* A no-op function for now. If we later implement /dev/poll - * support, we'll need to close the /dev/poll fd here - */ - return APR_SUCCESS; -} - - - -APR_DECLARE(apr_status_t) apr_pollset_add(apr_pollset_t *pollset, - const apr_pollfd_t *descriptor) -{ - if (pollset->nelts == pollset->nalloc) { - return APR_ENOMEM; - } - - pollset->query_set[pollset->nelts] = *descriptor; - - if (descriptor->desc_type != APR_POLL_SOCKET) { - return APR_EBADF; - } - - pollset->nelts++; - pollset->num_read = -1; - return APR_SUCCESS; -} - - - -APR_DECLARE(apr_status_t) apr_pollset_remove(apr_pollset_t *pollset, - const apr_pollfd_t *descriptor) -{ - apr_uint32_t i; - - for (i = 0; i < pollset->nelts; i++) { - if (descriptor->desc.s == pollset->query_set[i].desc.s) { - /* Found an instance of the fd: remove this and any other copies */ - apr_uint32_t dst = i; - apr_uint32_t old_nelts = pollset->nelts; - pollset->nelts--; - - for (i++; i < old_nelts; i++) { - if (descriptor->desc.s == pollset->query_set[i].desc.s) { - pollset->nelts--; - } - else { - pollset->pollset[dst] = pollset->pollset[i]; - pollset->query_set[dst] = pollset->query_set[i]; - dst++; - } - } - - pollset->num_read = -1; - return APR_SUCCESS; - } - } - - return APR_NOTFOUND; -} - - - -static void make_pollset(apr_pollset_t *pollset) -{ - int i; - int pos = 0; - - pollset->num_read = 0; - pollset->num_write = 0; - pollset->num_except = 0; - - for (i = 0; i < pollset->nelts; i++) { - if (pollset->query_set[i].reqevents & APR_POLLIN) { - pollset->pollset[pos++] = pollset->query_set[i].desc.s->socketdes; - pollset->num_read++; - } - } - - for (i = 0; i < pollset->nelts; i++) { - if (pollset->query_set[i].reqevents & APR_POLLOUT) { - pollset->pollset[pos++] = pollset->query_set[i].desc.s->socketdes; - pollset->num_write++; - } - } - - for (i = 0; i < pollset->nelts; i++) { - if (pollset->query_set[i].reqevents & APR_POLLPRI) { - pollset->pollset[pos++] = pollset->query_set[i].desc.s->socketdes; - pollset->num_except++; - } - } - - pollset->num_total = pollset->num_read + pollset->num_write + pollset->num_except; -} - - - -APR_DECLARE(apr_status_t) apr_pollset_poll(apr_pollset_t *pollset, - apr_interval_time_t timeout, - apr_int32_t *num, - const apr_pollfd_t **descriptors) -{ - int rv; - apr_uint32_t i; - int *pollresult; - int read_pos, write_pos, except_pos; - - if (pollset->num_read < 0) { - make_pollset(pollset); - } - - pollresult = alloca(sizeof(int) * pollset->num_total); - memcpy(pollresult, pollset->pollset, sizeof(int) * pollset->num_total); - (*num) = 0; - - if (timeout > 0) { - timeout /= 1000; - } - - rv = select(pollresult, pollset->num_read, pollset->num_write, pollset->num_except, timeout); - - if (rv < 0) { - return APR_FROM_OS_ERROR(sock_errno()); - } - - if (rv == 0) { - return APR_TIMEUP; - } - - read_pos = 0; - write_pos = pollset->num_read; - except_pos = pollset->num_read + pollset->num_write; - - for (i = 0; i < pollset->nelts; i++) { - int rtnevents = 0; - - if (pollset->query_set[i].reqevents & APR_POLLIN) { - if (pollresult[read_pos++] != -1) { - rtnevents |= APR_POLLIN; - } - } - - if (pollset->query_set[i].reqevents & APR_POLLOUT) { - if (pollresult[write_pos++] != -1) { - rtnevents |= APR_POLLOUT; - } - } - - if (pollset->query_set[i].reqevents & APR_POLLPRI) { - if (pollresult[except_pos++] != -1) { - rtnevents |= APR_POLLPRI; - } - } - - if (rtnevents) { - pollset->result_set[*num] = pollset->query_set[i]; - pollset->result_set[*num].rtnevents = rtnevents; - (*num)++; - } - } - - *descriptors = pollset->result_set; - return APR_SUCCESS; -} diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/poll/unix/.libs/poll.o b/rubbos/app/httpd-2.0.64/srclib/apr/poll/unix/.libs/poll.o Binary files differdeleted file mode 100644 index 3b0e57b9..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/poll/unix/.libs/poll.o +++ /dev/null diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/poll/unix/.libs/pollacc.o b/rubbos/app/httpd-2.0.64/srclib/apr/poll/unix/.libs/pollacc.o Binary files differdeleted file mode 100644 index d5a506db..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/poll/unix/.libs/pollacc.o +++ /dev/null diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/poll/unix/Makefile b/rubbos/app/httpd-2.0.64/srclib/apr/poll/unix/Makefile deleted file mode 100644 index 35ad9b16..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/poll/unix/Makefile +++ /dev/null @@ -1,17 +0,0 @@ -srcdir = . - - -TARGETS = \ - poll.lo \ - pollacc.lo - - -# bring in rules.mk for standard functionality -include /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr/build/apr_rules.mk - -INCDIR=../../include -OSDIR=$(INCDIR)/arch/unix -DEFOSDIR=$(INCDIR)/arch/unix -INCLUDES=-I$(INCDIR) -I$(OSDIR) -I$(DEFOSDIR) - -# DO NOT REMOVE diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/poll/unix/Makefile.in b/rubbos/app/httpd-2.0.64/srclib/apr/poll/unix/Makefile.in deleted file mode 100644 index d9ab2219..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/poll/unix/Makefile.in +++ /dev/null @@ -1,17 +0,0 @@ -srcdir = @srcdir@ -VPATH = @srcdir@ - -TARGETS = \ - poll.lo \ - pollacc.lo - - -# bring in rules.mk for standard functionality -@INCLUDE_RULES@ - -INCDIR=../../include -OSDIR=$(INCDIR)/arch/@OSDIR@ -DEFOSDIR=$(INCDIR)/arch/@DEFAULT_OSDIR@ -INCLUDES=-I$(INCDIR) -I$(OSDIR) -I$(DEFOSDIR) - -# DO NOT REMOVE diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/poll/unix/poll.c b/rubbos/app/httpd-2.0.64/srclib/apr/poll/unix/poll.c deleted file mode 100644 index dffda771..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/poll/unix/poll.c +++ /dev/null @@ -1,605 +0,0 @@ -/* Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "apr.h" -#include "apr_poll.h" -#include "apr_time.h" -#include "apr_portable.h" -#include "apr_arch_networkio.h" -#include "apr_arch_file_io.h" -#if HAVE_POLL_H -#include <poll.h> -#endif -#if HAVE_SYS_POLL_H -#include <sys/poll.h> -#endif -#if HAVE_ALLOCA_H -#include <alloca.h> -#endif - -#ifdef NETWARE -#define HAS_SOCKETS(dt) (dt == APR_POLL_SOCKET) ? 1 : 0 -#define HAS_PIPES(dt) (dt == APR_POLL_FILE) ? 1 : 0 -#endif - -#ifdef HAVE_POLL /* We can just use poll to do our socket polling. */ - -static apr_int16_t get_event(apr_int16_t event) -{ - apr_int16_t rv = 0; - - if (event & APR_POLLIN) - rv |= POLLIN; - if (event & APR_POLLPRI) - rv |= POLLPRI; - if (event & APR_POLLOUT) - rv |= POLLOUT; - if (event & APR_POLLERR) - rv |= POLLERR; - if (event & APR_POLLHUP) - rv |= POLLHUP; - if (event & APR_POLLNVAL) - rv |= POLLNVAL; - - return rv; -} - -static apr_int16_t get_revent(apr_int16_t event) -{ - apr_int16_t rv = 0; - - if (event & POLLIN) - rv |= APR_POLLIN; - if (event & POLLPRI) - rv |= APR_POLLPRI; - if (event & POLLOUT) - rv |= APR_POLLOUT; - if (event & POLLERR) - rv |= APR_POLLERR; - if (event & POLLHUP) - rv |= APR_POLLHUP; - if (event & POLLNVAL) - rv |= APR_POLLNVAL; - - return rv; -} - -#define SMALL_POLLSET_LIMIT 8 - -APR_DECLARE(apr_status_t) apr_poll(apr_pollfd_t *aprset, apr_int32_t num, - apr_int32_t *nsds, apr_interval_time_t timeout) -{ - int i, num_to_poll; -#ifdef HAVE_VLA - /* XXX: I trust that this is a segv when insufficient stack exists? */ - struct pollfd pollset[num]; -#elif defined(HAVE_ALLOCA) - struct pollfd *pollset = alloca(sizeof(struct pollfd) * num); - if (!pollset) - return APR_ENOMEM; -#else - struct pollfd tmp_pollset[SMALL_POLLSET_LIMIT]; - struct pollfd *pollset; - - if (num <= SMALL_POLLSET_LIMIT) { - pollset = tmp_pollset; - } - else { - /* This does require O(n) to copy the descriptors to the internal - * mapping. - */ - pollset = malloc(sizeof(struct pollfd) * num); - /* The other option is adding an apr_pool_abort() fn to invoke - * the pool's out of memory handler - */ - if (!pollset) - return APR_ENOMEM; - } -#endif - for (i = 0; i < num; i++) { - if (aprset[i].desc_type == APR_POLL_SOCKET) { - pollset[i].fd = aprset[i].desc.s->socketdes; - } - else if (aprset[i].desc_type == APR_POLL_FILE) { - pollset[i].fd = aprset[i].desc.f->filedes; - } - else { - break; - } - pollset[i].events = get_event(aprset[i].reqevents); - } - num_to_poll = i; - - if (timeout > 0) { - timeout /= 1000; /* convert microseconds to milliseconds */ - } - - i = poll(pollset, num_to_poll, timeout); - (*nsds) = i; - - for (i = 0; i < num; i++) { - aprset[i].rtnevents = get_revent(pollset[i].revents); - } - -#if !defined(HAVE_VLA) && !defined(HAVE_ALLOCA) - if (num > SMALL_POLLSET_LIMIT) { - free(pollset); - } -#endif - - if ((*nsds) < 0) { - return apr_get_netos_error(); - } - if ((*nsds) == 0) { - return APR_TIMEUP; - } - return APR_SUCCESS; -} - - -#else /* Use select to mimic poll */ - -APR_DECLARE(apr_status_t) apr_poll(apr_pollfd_t *aprset, int num, apr_int32_t *nsds, - apr_interval_time_t timeout) -{ - fd_set readset, writeset, exceptset; - int rv, i; - int maxfd = -1; - struct timeval tv, *tvptr; -#ifdef NETWARE - apr_datatype_e set_type = APR_NO_DESC; -#endif - - if (timeout < 0) { - tvptr = NULL; - } - else { - tv.tv_sec = (long)apr_time_sec(timeout); - tv.tv_usec = (long)apr_time_usec(timeout); - tvptr = &tv; - } - - FD_ZERO(&readset); - FD_ZERO(&writeset); - FD_ZERO(&exceptset); - - for (i = 0; i < num; i++) { - apr_os_sock_t fd; - - aprset[i].rtnevents = 0; - - if (aprset[i].desc_type == APR_POLL_SOCKET) { -#ifdef NETWARE - if (HAS_PIPES(set_type)) { - return APR_EBADF; - } - else { - set_type = APR_POLL_SOCKET; - } -#endif - fd = aprset[i].desc.s->socketdes; - } - else if (aprset[i].desc_type == APR_POLL_FILE) { -#if !APR_FILES_AS_SOCKETS - return APR_EBADF; -#else -#ifdef NETWARE - if (aprset[i].desc.f->is_pipe && !HAS_SOCKETS(set_type)) { - set_type = APR_POLL_FILE; - } - else - return APR_EBADF; -#endif /* NETWARE */ - - fd = aprset[i].desc.f->filedes; - -#endif /* APR_FILES_AS_SOCKETS */ - } - else { - break; - } -#if !defined(WIN32) && !defined(NETWARE) /* socket sets handled with array of handles */ - if (fd >= FD_SETSIZE) { - /* XXX invent new error code so application has a clue */ - return APR_EBADF; - } -#endif - if (aprset[i].reqevents & APR_POLLIN) { - FD_SET(fd, &readset); - } - if (aprset[i].reqevents & APR_POLLOUT) { - FD_SET(fd, &writeset); - } - if (aprset[i].reqevents & - (APR_POLLPRI | APR_POLLERR | APR_POLLHUP | APR_POLLNVAL)) { - FD_SET(fd, &exceptset); - } - if ((int)fd > maxfd) { - maxfd = (int)fd; - } - } - -#ifdef NETWARE - if (HAS_PIPES(set_type)) { - rv = pipe_select(maxfd + 1, &readset, &writeset, &exceptset, tvptr); - } - else { -#endif - - rv = select(maxfd + 1, &readset, &writeset, &exceptset, tvptr); - -#ifdef NETWARE - } -#endif - - (*nsds) = rv; - if ((*nsds) == 0) { - return APR_TIMEUP; - } - if ((*nsds) < 0) { - return apr_get_netos_error(); - } - - for (i = 0; i < num; i++) { - apr_os_sock_t fd; - - if (aprset[i].desc_type == APR_POLL_SOCKET) { - fd = aprset[i].desc.s->socketdes; - } - else if (aprset[i].desc_type == APR_POLL_FILE) { -#if !APR_FILES_AS_SOCKETS - return APR_EBADF; -#else - fd = aprset[i].desc.f->filedes; -#endif - } - else { - break; - } - if (FD_ISSET(fd, &readset)) { - aprset[i].rtnevents |= APR_POLLIN; - } - if (FD_ISSET(fd, &writeset)) { - aprset[i].rtnevents |= APR_POLLOUT; - } - if (FD_ISSET(fd, &exceptset)) { - aprset[i].rtnevents |= APR_POLLERR; - } - } - - return APR_SUCCESS; -} - -#endif - - -struct apr_pollset_t { - apr_uint32_t nelts; - apr_uint32_t nalloc; -#ifdef HAVE_POLL - struct pollfd *pollset; -#else - fd_set readset, writeset, exceptset; - int maxfd; -#endif - apr_pollfd_t *query_set; - apr_pollfd_t *result_set; - apr_pool_t *pool; -#ifdef NETWARE - int set_type; -#endif -}; - -APR_DECLARE(apr_status_t) apr_pollset_create(apr_pollset_t **pollset, - apr_uint32_t size, - apr_pool_t *p, - apr_uint32_t flags) -{ -#if !defined(HAVE_POLL) && defined(FD_SETSIZE) - if (size > FD_SETSIZE) { - *pollset = NULL; - return APR_EINVAL; - } -#endif - *pollset = apr_palloc(p, sizeof(**pollset)); - (*pollset)->nelts = 0; - (*pollset)->nalloc = size; -#ifdef HAVE_POLL - (*pollset)->pollset = apr_palloc(p, size * sizeof(struct pollfd)); -#else - FD_ZERO(&((*pollset)->readset)); - FD_ZERO(&((*pollset)->writeset)); - FD_ZERO(&((*pollset)->exceptset)); - (*pollset)->maxfd = 0; -#ifdef NETWARE - (*pollset)->set_type = APR_NO_DESC; -#endif -#endif - (*pollset)->query_set = apr_palloc(p, size * sizeof(apr_pollfd_t)); - (*pollset)->result_set = apr_palloc(p, size * sizeof(apr_pollfd_t)); - (*pollset)->pool = p; - return APR_SUCCESS; -} - -APR_DECLARE(apr_status_t) apr_pollset_destroy(apr_pollset_t *pollset) -{ - /* A no-op function for now. If we later implement /dev/poll - * support, we'll need to close the /dev/poll fd here - */ - return APR_SUCCESS; -} - -APR_DECLARE(apr_status_t) apr_pollset_add(apr_pollset_t *pollset, - const apr_pollfd_t *descriptor) -{ -#ifndef HAVE_POLL - apr_os_sock_t fd; -#endif - - if (pollset->nelts == pollset->nalloc) { - return APR_ENOMEM; - } - - pollset->query_set[pollset->nelts] = *descriptor; -#ifdef HAVE_POLL - - if (descriptor->desc_type == APR_POLL_SOCKET) { - pollset->pollset[pollset->nelts].fd = descriptor->desc.s->socketdes; - } - else { - pollset->pollset[pollset->nelts].fd = descriptor->desc.f->filedes; - } - - pollset->pollset[pollset->nelts].events = get_event(descriptor->reqevents); -#else - if (descriptor->desc_type == APR_POLL_SOCKET) { -#ifdef NETWARE - /* NetWare can't handle mixed descriptor types in select() */ - if (HAS_PIPES(pollset->set_type)) { - return APR_EBADF; - } - else { - pollset->set_type = APR_POLL_SOCKET; - } -#endif - fd = descriptor->desc.s->socketdes; - } - else { -#if !APR_FILES_AS_SOCKETS - return APR_EBADF; -#else -#ifdef NETWARE - /* NetWare can't handle mixed descriptor types in select() */ - if (descriptor->desc.f->is_pipe && !HAS_SOCKETS(pollset->set_type)) { - pollset->set_type = APR_POLL_FILE; - fd = descriptor->desc.f->filedes; - } - else { - return APR_EBADF; - } -#else - fd = descriptor->desc.f->filedes; -#endif -#endif - } -#if !defined(WIN32) && !defined(NETWARE) /* socket sets handled with array of handles */ - if (fd >= FD_SETSIZE) { - /* XXX invent new error code so application has a clue */ - return APR_EBADF; - } -#endif - if (descriptor->reqevents & APR_POLLIN) { - FD_SET(fd, &(pollset->readset)); - } - if (descriptor->reqevents & APR_POLLOUT) { - FD_SET(fd, &(pollset->writeset)); - } - if (descriptor->reqevents & - (APR_POLLPRI | APR_POLLERR | APR_POLLHUP | APR_POLLNVAL)) { - FD_SET(fd, &(pollset->exceptset)); - } - if ((int)fd > pollset->maxfd) { - pollset->maxfd = (int)fd; - } -#endif - pollset->nelts++; - return APR_SUCCESS; -} - -APR_DECLARE(apr_status_t) apr_pollset_remove(apr_pollset_t *pollset, - const apr_pollfd_t *descriptor) -{ - apr_uint32_t i; -#ifndef HAVE_POLL - apr_os_sock_t fd; -#endif - -#ifdef HAVE_POLL - for (i = 0; i < pollset->nelts; i++) { - if (descriptor->desc.s == pollset->query_set[i].desc.s) { - /* Found an instance of the fd: remove this and any other copies */ - apr_uint32_t dst = i; - apr_uint32_t old_nelts = pollset->nelts; - pollset->nelts--; - for (i++; i < old_nelts; i++) { - if (descriptor->desc.s == pollset->query_set[i].desc.s) { - pollset->nelts--; - } - else { - pollset->pollset[dst] = pollset->pollset[i]; - pollset->query_set[dst] = pollset->query_set[i]; - dst++; - } - } - return APR_SUCCESS; - } - } - -#else /* no poll */ - if (descriptor->desc_type == APR_POLL_SOCKET) { - fd = descriptor->desc.s->socketdes; - } - else { -#if !APR_FILES_AS_SOCKETS - return APR_EBADF; -#else - fd = descriptor->desc.f->filedes; -#endif - } - - for (i = 0; i < pollset->nelts; i++) { - if (descriptor->desc.s == pollset->query_set[i].desc.s) { - /* Found an instance of the fd: remove this and any other copies */ - apr_uint32_t dst = i; - apr_uint32_t old_nelts = pollset->nelts; - pollset->nelts--; - for (i++; i < old_nelts; i++) { - if (descriptor->desc.s == pollset->query_set[i].desc.s) { - pollset->nelts--; - } - else { - pollset->query_set[dst] = pollset->query_set[i]; - dst++; - } - } - FD_CLR(fd, &(pollset->readset)); - FD_CLR(fd, &(pollset->writeset)); - FD_CLR(fd, &(pollset->exceptset)); - if (((int)fd == pollset->maxfd) && (pollset->maxfd > 0)) { - pollset->maxfd--; - } - return APR_SUCCESS; - } - } -#endif /* no poll */ - - return APR_NOTFOUND; -} - -#ifdef HAVE_POLL -APR_DECLARE(apr_status_t) apr_pollset_poll(apr_pollset_t *pollset, - apr_interval_time_t timeout, - apr_int32_t *num, - const apr_pollfd_t **descriptors) -{ - int rv; - apr_uint32_t i, j; - - if (timeout > 0) { - timeout /= 1000; - } - rv = poll(pollset->pollset, pollset->nelts, timeout); - (*num) = rv; - if (rv < 0) { - return apr_get_netos_error(); - } - if (rv == 0) { - return APR_TIMEUP; - } - j = 0; - for (i = 0; i < pollset->nelts; i++) { - if (pollset->pollset[i].revents != 0) { - pollset->result_set[j] = pollset->query_set[i]; - pollset->result_set[j].rtnevents = - get_revent(pollset->pollset[i].revents); - j++; - } - } - *descriptors = pollset->result_set; - return APR_SUCCESS; -} - -#else /* no poll */ - -APR_DECLARE(apr_status_t) apr_pollset_poll(apr_pollset_t *pollset, - apr_interval_time_t timeout, - apr_int32_t *num, - const apr_pollfd_t **descriptors) -{ - int rv; - apr_uint32_t i, j; - struct timeval tv, *tvptr; - fd_set readset, writeset, exceptset; - - if (timeout < 0) { - tvptr = NULL; - } - else { - tv.tv_sec = (long)apr_time_sec(timeout); - tv.tv_usec = (long)apr_time_usec(timeout); - tvptr = &tv; - } - - memcpy(&readset, &(pollset->readset), sizeof(fd_set)); - memcpy(&writeset, &(pollset->writeset), sizeof(fd_set)); - memcpy(&exceptset, &(pollset->exceptset), sizeof(fd_set)); - -#ifdef NETWARE - if (HAS_PIPES(pollset->set_type)) { - rv = pipe_select(pollset->maxfd + 1, &readset, &writeset, &exceptset, tvptr); - } - else -#endif - rv = select(pollset->maxfd + 1, &readset, &writeset, &exceptset, tvptr); - - /* Set initial *num now for expected -1 / 0 failures, or errors below */ - (*num) = rv; - if (rv < 0) { - return apr_get_netos_error(); - } - if (rv == 0) { - return APR_TIMEUP; - } - j = 0; - for (i = 0; i < pollset->nelts; i++) { - apr_os_sock_t fd; - if (pollset->query_set[i].desc_type == APR_POLL_SOCKET) { - fd = pollset->query_set[i].desc.s->socketdes; - } - else { -#if !APR_FILES_AS_SOCKETS - return APR_EBADF; -#else - fd = pollset->query_set[i].desc.f->filedes; -#endif - } - if (FD_ISSET(fd, &readset) || FD_ISSET(fd, &writeset) || - FD_ISSET(fd, &exceptset)) { - pollset->result_set[j] = pollset->query_set[i]; - pollset->result_set[j].rtnevents = 0; - if (FD_ISSET(fd, &readset)) { - pollset->result_set[j].rtnevents |= APR_POLLIN; - } - if (FD_ISSET(fd, &writeset)) { - pollset->result_set[j].rtnevents |= APR_POLLOUT; - } - if (FD_ISSET(fd, &exceptset)) { - pollset->result_set[j].rtnevents |= APR_POLLERR; - } - j++; - } - } - - /* Reset computed *num to account for multiply-polled fd's which - * select() - on some platforms, treats as a single fd result. - * The *num returned must match the size of result_set[] - */ - (*num) = j; - *descriptors = pollset->result_set; - return APR_SUCCESS; -} - -#endif /* no poll */ diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/poll/unix/poll.lo b/rubbos/app/httpd-2.0.64/srclib/apr/poll/unix/poll.lo deleted file mode 100644 index ee53f816..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/poll/unix/poll.lo +++ /dev/null @@ -1,12 +0,0 @@ -# poll.lo - a libtool object file -# Generated by ltmain.sh - GNU libtool 1.5.26 (1.1220.2.493 2008/02/01 16:58:18) -# -# Please DO NOT delete this file! -# It is necessary for linking the library. - -# Name of the PIC object. -pic_object='.libs/poll.o' - -# Name of the non-PIC object. -non_pic_object='poll.o' - diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/poll/unix/poll.o b/rubbos/app/httpd-2.0.64/srclib/apr/poll/unix/poll.o Binary files differdeleted file mode 100644 index d47744fd..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/poll/unix/poll.o +++ /dev/null diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/poll/unix/pollacc.c b/rubbos/app/httpd-2.0.64/srclib/apr/poll/unix/pollacc.c deleted file mode 100644 index 3b1e3eb8..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/poll/unix/pollacc.c +++ /dev/null @@ -1,152 +0,0 @@ -/* Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "apr.h" -#include "apr_poll.h" -#include "apr_arch_networkio.h" -#include "apr_arch_file_io.h" -#if HAVE_POLL_H -#include <poll.h> -#endif -#if HAVE_SYS_POLL_H -#include <sys/poll.h> -#endif - -APR_DECLARE(apr_status_t) apr_poll_setup(apr_pollfd_t **new, apr_int32_t num, apr_pool_t *cont) -{ - (*new) = (apr_pollfd_t *)apr_pcalloc(cont, sizeof(apr_pollfd_t) * (num + 1)); - if ((*new) == NULL) { - return APR_ENOMEM; - } - (*new)[num].desc_type = APR_POLL_LASTDESC; - (*new)[0].p = cont; - return APR_SUCCESS; -} - -static apr_pollfd_t *find_poll_sock(apr_pollfd_t *aprset, apr_socket_t *sock) -{ - apr_pollfd_t *curr = aprset; - - while (curr->desc.s != sock) { - if (curr->desc_type == APR_POLL_LASTDESC) { - return NULL; - } - curr++; - } - - return curr; -} - -APR_DECLARE(apr_status_t) apr_poll_socket_add(apr_pollfd_t *aprset, - apr_socket_t *sock, apr_int16_t event) -{ - apr_pollfd_t *curr = aprset; - - while (curr->desc_type != APR_NO_DESC) { - if (curr->desc_type == APR_POLL_LASTDESC) { - return APR_ENOMEM; - } - curr++; - } - curr->desc.s = sock; - curr->desc_type = APR_POLL_SOCKET; - curr->reqevents = event; - - return APR_SUCCESS; -} - -APR_DECLARE(apr_status_t) apr_poll_revents_get(apr_int16_t *event, apr_socket_t *sock, apr_pollfd_t *aprset) -{ - apr_pollfd_t *curr = find_poll_sock(aprset, sock); - if (curr == NULL) { - return APR_NOTFOUND; - } - - (*event) = curr->rtnevents; - return APR_SUCCESS; -} - -APR_DECLARE(apr_status_t) apr_poll_socket_mask(apr_pollfd_t *aprset, - apr_socket_t *sock, apr_int16_t events) -{ - apr_pollfd_t *curr = find_poll_sock(aprset, sock); - if (curr == NULL) { - return APR_NOTFOUND; - } - - if (curr->reqevents & events) { - curr->reqevents ^= events; - } - - return APR_SUCCESS; -} - -APR_DECLARE(apr_status_t) apr_poll_socket_remove(apr_pollfd_t *aprset, apr_socket_t *sock) -{ - apr_pollfd_t *match = NULL; - apr_pollfd_t *curr; - - for (curr = aprset; (curr->desc_type != APR_POLL_LASTDESC) && - (curr->desc_type != APR_NO_DESC); curr++) { - if (curr->desc.s == sock) { - match = curr; - } - } - if (match == NULL) { - return APR_NOTFOUND; - } - - /* Remove this entry by swapping the last entry into its place. - * This ensures that the non-APR_NO_DESC entries are all at the - * start of the array, so that apr_poll() doesn't have to worry - * about invalid entries in the middle of the pollset. - */ - curr--; - if (curr != match) { - *match = *curr; - } - curr->desc_type = APR_NO_DESC; - - return APR_SUCCESS; -} - -APR_DECLARE(apr_status_t) apr_poll_socket_clear(apr_pollfd_t *aprset, apr_int16_t events) -{ - apr_pollfd_t *curr = aprset; - - while (curr->desc_type != APR_POLL_LASTDESC) { - if (curr->reqevents & events) { - curr->reqevents &= ~events; - } - curr++; - } - return APR_SUCCESS; -} - -#if APR_FILES_AS_SOCKETS -/* I'm not sure if this needs to return an apr_status_t or not, but - * for right now, we'll leave it this way, and change it later if - * necessary. - */ -APR_DECLARE(apr_status_t) apr_socket_from_file(apr_socket_t **newsock, apr_file_t *file) -{ - (*newsock) = apr_pcalloc(file->pool, sizeof(**newsock)); - (*newsock)->socketdes = file->filedes; - (*newsock)->cntxt = file->pool; - (*newsock)->timeout = file->timeout; - return APR_SUCCESS; -} -#endif diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/poll/unix/pollacc.lo b/rubbos/app/httpd-2.0.64/srclib/apr/poll/unix/pollacc.lo deleted file mode 100644 index d418c174..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/poll/unix/pollacc.lo +++ /dev/null @@ -1,12 +0,0 @@ -# pollacc.lo - a libtool object file -# Generated by ltmain.sh - GNU libtool 1.5.26 (1.1220.2.493 2008/02/01 16:58:18) -# -# Please DO NOT delete this file! -# It is necessary for linking the library. - -# Name of the PIC object. -pic_object='.libs/pollacc.o' - -# Name of the non-PIC object. -non_pic_object='pollacc.o' - diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/poll/unix/pollacc.o b/rubbos/app/httpd-2.0.64/srclib/apr/poll/unix/pollacc.o Binary files differdeleted file mode 100644 index 18458749..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/poll/unix/pollacc.o +++ /dev/null |