summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authororlikowski <orlikowski@13f79535-47bb-0310-9956-ffa450edef68>2001-06-07 10:03:25 +0000
committerorlikowski <orlikowski@13f79535-47bb-0310-9956-ffa450edef68>2001-06-07 10:03:25 +0000
commit74a0607e8a804266b51210553ab74d583180dbc7 (patch)
treee1131723bb77182f9a3191223b1e1289c50c3402
parent27f483d4a2ed650764d113b298823cec1468465d (diff)
downloadlibapr-74a0607e8a804266b51210553ab74d583180dbc7.tar.gz
Generate httpd.exp on the fly.
This should allow DSOs to work on AIX, without the headache of maintaining the httpd.exp file. This is adapted from OS/2's generation of ApacheCoreOS2.def. There exist a few bugs still: 1) mod_dav and mod_proxy may not yet work, due to certain namespace issues. 2) Some symbols may need to be added, a la core_header.def Once these have been fixed, the old httpd.exp file will be deleted. git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@61729 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--configure.in2
-rw-r--r--include/arch/unix/networkio.h3
-rw-r--r--network_io/unix/poll.c40
3 files changed, 44 insertions, 1 deletions
diff --git a/configure.in b/configure.in
index b8c1b6711..5c1a20936 100644
--- a/configure.in
+++ b/configure.in
@@ -330,6 +330,7 @@ esac
AC_SUBST(threads)
AC_SUBST(have_sigwait)
+AC_CHECK_FUNCS(kqueue)
AC_CHECK_FUNCS(poll)
dnl #----------------------------- Checking for missing POSIX thread functions
@@ -556,6 +557,7 @@ APR_FLAG_HEADERS(
net/errno.h \
netinet/in.h \
sys/file.h \
+ sys/event.h \
sys/mman.h \
sys/poll.h \
sys/resource.h \
diff --git a/include/arch/unix/networkio.h b/include/arch/unix/networkio.h
index 5d983bd80..0b1125ab7 100644
--- a/include/arch/unix/networkio.h
+++ b/include/arch/unix/networkio.h
@@ -69,6 +69,9 @@
#if APR_HAVE_SYS_UIO_H
#include <sys/uio.h>
#endif
+#ifdef HAVE_SYS_EVENT_H
+#include <sys/event.h>
+#endif
#ifdef HAVE_SYS_POLL_H
#include <sys/poll.h>
#endif
diff --git a/network_io/unix/poll.c b/network_io/unix/poll.c
index cfc5d44f7..b6709c300 100644
--- a/network_io/unix/poll.c
+++ b/network_io/unix/poll.c
@@ -55,7 +55,45 @@
#include "networkio.h"
#include "fileio.h"
-#ifdef HAVE_POLL /* We can just use poll to do our socket polling. */
+#if defined(HAVE_KQUEUE) /* FreeBSD provides kqueue, let's use it :) */
+
+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);
+ if ((*new) == NULL) {
+ return APR_ENOMEM;
+ }
+
+}
+
+apr_status_t apr_poll_socket_add(apr_pollfd_t *aprset,
+ apr_socket_t *sock, apr_int16_t event)
+{
+}
+
+apr_status_t apr_poll(apr_pollfd_t *aprset, apr_int32_t *nsds,
+ apr_interval_time_t timeout)
+{
+}
+
+apr_status_t apr_poll_revents_get(apr_int16_t *event, apr_socket_t *sock, apr_pollfd_t *aprset)
+{
+}
+
+apr_status_t apr_poll_socket_mask(apr_pollfd_t *aprset,
+ apr_socket_t *sock, apr_int16_t events)
+{
+}
+
+apr_status_t apr_poll_socket_remove(apr_pollfd_t *aprset, apr_socket_t *sock)
+{
+}
+
+apr_status_t apr_poll_socket_clear(apr_pollfd_t *aprset, apr_int16_t events)
+{
+}
+
+#elif defined(HAVE_POLL) /* We can just use poll to do our socket polling. */
apr_status_t apr_poll_setup(apr_pollfd_t **new, apr_int32_t num, apr_pool_t *cont)
{