From 89c418f2734e89e902aca2111ad7e3e6186db907 Mon Sep 17 00:00:00 2001 From: Robin Lu Date: Tue, 8 Jul 2008 16:06:33 +0800 Subject: [PATCH] fix build on mac os x --- src/Makefile.am | 2 +- src/network.c | 167 ----------------------------------------------- src/network_backends.c | 169 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 170 insertions(+), 168 deletions(-) create mode 100644 src/network_backends.c diff --git a/src/Makefile.am b/src/Makefile.am index d161887..bfdebfc 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -73,7 +73,7 @@ common_src=buffer.c log.c \ network_gthread_aio.c network_gthread_sendfile.c \ http_resp.c http_resp_parser.c \ http_req.c http_req_parser.c \ - http_req_range.c http_req_range_parser.c timing.c + http_req_range.c http_req_range_parser.c timing.c network_backends.c src = server.c response.c connections.c network.c \ configfile.c configparser.c request.c proc_open.c diff --git a/src/network.c b/src/network.c index 8534e94..10084d7 100644 --- a/src/network.c +++ b/src/network.c @@ -27,173 +27,6 @@ # include #endif -#define BACKEND_HANDLERS(read, write) network_read_chunkqueue_##read, network_write_chunkqueue_##write -static network_backend_info_t network_backends[] = { - /* lowest id wins */ - { - NETWORK_BACKEND_LINUX_SENDFILE, - "linux-sendfile", - NULL, -#if defined USE_WRITE && defined USE_LINUX_SENDFILE - BACKEND_HANDLERS(read, linuxsendfile) -#else - NULL, NULL -#endif - }, - { - NETWORK_BACKEND_LINUX_AIO_SENDFILE, - "linux-aio-sendfile", - NULL, -#if defined USE_WRITE && defined USE_LINUX_AIO_SENDFILE - BACKEND_HANDLERS(read, linuxaiosendfile) -#else - NULL, NULL -#endif - }, - { - NETWORK_BACKEND_FREEBSD_SENDFILE, - "freebsd-sendfile", - NULL, -#if defined USE_WRITE && defined USE_FREEBSD_SENDFILE - BACKEND_HANDLERS(read, freebsdsendfile) -#else - NULL, NULL -#endif - }, - { - NETWORK_BACKEND_SOLARIS_SENDFILEV, - "solaris-sendfilev", - NULL, -#if defined USE_WRITE && defined USE_SOLARIS_SENDFILEV - BACKEND_HANDLERS(read, solarissendfilev) -#else - NULL, NULL -#endif - }, - { - NETWORK_BACKEND_POSIX_AIO, - "posix-aio", - NULL, -#if defined USE_WRITE && defined USE_POSIX_AIO - BACKEND_HANDLERS(read, posixaio) -#else - NULL, NULL -#endif - }, - - { - NETWORK_BACKEND_GTHREAD_AIO, - "gthread-aio", - NULL, -#if defined USE_WRITE && defined USE_GTHREAD_AIO - BACKEND_HANDLERS(read, gthreadaio) -#else - NULL, NULL -#endif - }, - { - NETWORK_BACKEND_GTHREAD_SENDFILE, - "gthread-sendfile", - NULL, -#if defined USE_WRITE && defined USE_GTHREAD_AIO && defined USE_GTHREAD_SENDFILE - BACKEND_HANDLERS(read, gthreadsendfile) -#else - NULL, NULL -#endif - }, - - { - NETWORK_BACKEND_WRITEV, - "writev", - NULL, -#if defined USE_WRITE && defined USE_WRITEV - BACKEND_HANDLERS(read, writev) -#else - NULL, NULL -#endif - }, - { - NETWORK_BACKEND_WRITE, - "write", - NULL, -#if defined USE_WRITE - BACKEND_HANDLERS(read, write) -#else - NULL, NULL -#endif - }, - { - NETWORK_BACKEND_WIN32_TRANSMITFILE, - "win32-transmitfile", - NULL, -#if defined USE_WIN32_TRANSMITFILE - BACKEND_HANDLERS(win32recv, win32transmitfile) -#else - NULL, NULL -#endif - }, - { - NETWORK_BACKEND_WIN32_SEND, - "win32-send", - NULL, -#if defined USE_WIN32_SEND && defined USE_WIN32_SEND - BACKEND_HANDLERS(win32recv, win32send) -#else - NULL, NULL -#endif - }, - - { - NETWORK_BACKEND_UNSET, - NULL, - NULL, - NULL, NULL - } -}; - -const network_backend_info_t *network_get_backends() { - return network_backends; -} - -const network_backend_info_t *network_get_defaultbackend() { - const network_backend_info_t *backend = network_get_backends(); - - while (backend->name) { - if (backend->write_handler) { - return backend; - } - backend ++; - } - - return NULL; -} - -const network_backend_info_t *network_get_backend_info_by_type(network_backend_t type) { - const network_backend_info_t *backend = network_get_backends(); - - while (backend->name) { - if (type == backend->type) { - return backend; - } - backend ++; - } - - return NULL; -} - -const network_backend_info_t *network_get_backend_info_by_name(const char *name) { - const network_backend_info_t *backend = network_get_backends(); - - while (backend->name) { - if (strcmp(name, backend->name) == 0) { - return backend; - } - backend ++; - } - - return NULL; -} - handler_t network_server_handle_fdevent(void *s, void *context, int revents) { server *srv = (server *)s; server_socket *srv_socket = (server_socket *)context; diff --git a/src/network_backends.c b/src/network_backends.c new file mode 100644 index 0000000..b4b632e --- /dev/null +++ b/src/network_backends.c @@ -0,0 +1,169 @@ +#include "network_backends.h" + +#define BACKEND_HANDLERS(read, write) network_read_chunkqueue_##read, network_write_chunkqueue_##write + +static network_backend_info_t network_backends[] = { + /* lowest id wins */ + { + NETWORK_BACKEND_LINUX_SENDFILE, + "linux-sendfile", + NULL, +#if defined USE_WRITE && defined USE_LINUX_SENDFILE + BACKEND_HANDLERS(read, linuxsendfile) +#else + NULL, NULL +#endif + }, + { + NETWORK_BACKEND_LINUX_AIO_SENDFILE, + "linux-aio-sendfile", + NULL, +#if defined USE_WRITE && defined USE_LINUX_AIO_SENDFILE + BACKEND_HANDLERS(read, linuxaiosendfile) +#else + NULL, NULL +#endif + }, + { + NETWORK_BACKEND_FREEBSD_SENDFILE, + "freebsd-sendfile", + NULL, +#if defined USE_WRITE && defined USE_FREEBSD_SENDFILE + BACKEND_HANDLERS(read, freebsdsendfile) +#else + NULL, NULL +#endif + }, + { + NETWORK_BACKEND_SOLARIS_SENDFILEV, + "solaris-sendfilev", + NULL, +#if defined USE_WRITE && defined USE_SOLARIS_SENDFILEV + BACKEND_HANDLERS(read, solarissendfilev) +#else + NULL, NULL +#endif + }, + { + NETWORK_BACKEND_POSIX_AIO, + "posix-aio", + NULL, +#if defined USE_WRITE && defined USE_POSIX_AIO + BACKEND_HANDLERS(read, posixaio) +#else + NULL, NULL +#endif + }, + + { + NETWORK_BACKEND_GTHREAD_AIO, + "gthread-aio", + NULL, +#if defined USE_WRITE && defined USE_GTHREAD_AIO + BACKEND_HANDLERS(read, gthreadaio) +#else + NULL, NULL +#endif + }, + { + NETWORK_BACKEND_GTHREAD_SENDFILE, + "gthread-sendfile", + NULL, +#if defined USE_WRITE && defined USE_GTHREAD_AIO && defined USE_GTHREAD_SENDFILE + BACKEND_HANDLERS(read, gthreadsendfile) +#else + NULL, NULL +#endif + }, + + { + NETWORK_BACKEND_WRITEV, + "writev", + NULL, +#if defined USE_WRITE && defined USE_WRITEV + BACKEND_HANDLERS(read, writev) +#else + NULL, NULL +#endif + }, + { + NETWORK_BACKEND_WRITE, + "write", + NULL, +#if defined USE_WRITE + BACKEND_HANDLERS(read, write) +#else + NULL, NULL +#endif + }, + { + NETWORK_BACKEND_WIN32_TRANSMITFILE, + "win32-transmitfile", + NULL, +#if defined USE_WIN32_TRANSMITFILE + BACKEND_HANDLERS(win32recv, win32transmitfile) +#else + NULL, NULL +#endif + }, + { + NETWORK_BACKEND_WIN32_SEND, + "win32-send", + NULL, +#if defined USE_WIN32_SEND && defined USE_WIN32_SEND + BACKEND_HANDLERS(win32recv, win32send) +#else + NULL, NULL +#endif + }, + + { + NETWORK_BACKEND_UNSET, + NULL, + NULL, + NULL, NULL + } +}; + +const network_backend_info_t *network_get_backends() { + return network_backends; +} + +const network_backend_info_t *network_get_defaultbackend() { + const network_backend_info_t *backend = network_get_backends(); + + while (backend->name) { + if (backend->write_handler) { + return backend; + } + backend ++; + } + + return NULL; +} + +const network_backend_info_t *network_get_backend_info_by_type(network_backend_t type) { + const network_backend_info_t *backend = network_get_backends(); + + while (backend->name) { + if (type == backend->type) { + return backend; + } + backend ++; + } + + return NULL; +} + +const network_backend_info_t *network_get_backend_info_by_name(const char *name) { + const network_backend_info_t *backend = network_get_backends(); + + while (backend->name) { + if (strcmp(name, backend->name) == 0) { + return backend; + } + backend ++; + } + + return NULL; +} -- 1.5.5.3