X-Git-Url: http://lists.indexdata.com/cgi-bin?a=blobdiff_plain;f=src%2Fhttp.c;h=6ca8bd8f565803129ddef2d0b956f85f99a9367c;hb=ad57e922f6418a6f7741eceacbb61c3e9da662a8;hp=d40bd08cd47b8ba3876a3edcedce7406c4317eb4;hpb=26e2bf146ed32bc205eb2b76cdc2974c75504c58;p=pazpar2-moved-to-github.git diff --git a/src/http.c b/src/http.c index d40bd08..6ca8bd8 100644 --- a/src/http.c +++ b/src/http.c @@ -62,21 +62,23 @@ typedef int socklen_t; #include #include -#include "util.h" -#include "eventl.h" #include "pazpar2.h" #include "http.h" -#include "http_command.h" #define MAX_HTTP_HEADER 4096 +#ifdef WIN32 +#define strncasecmp _strnicmp +#define strcasecmp _stricmp +#endif + static void proxy_io(IOCHAN i, int event); static struct http_channel *http_create(const char *addr, struct conf_server *server); static void http_destroy(IOCHAN i); -static struct http_buf *http_buf_freelist = 0; -static struct http_channel *http_channel_freelist = 0; +static struct http_buf *http_buf_freelist = 0; /* thread pr */ +static struct http_channel *http_channel_freelist = 0; /* thread pr */ struct http_channel_observer_s { void *data; @@ -87,8 +89,8 @@ struct http_channel_observer_s { }; -static const char *http_lookup_header(struct http_header *header, - const char *name) +const char *http_lookup_header(struct http_header *header, + const char *name) { for (; header; header = header->next) if (!strcasecmp(name, header->name)) @@ -268,7 +270,7 @@ void http_addheader(struct http_response *r, const char *name, const char *value r->headers = h; } -char *http_argbyname(struct http_request *r, char *name) +const char *http_argbyname(struct http_request *r, const char *name) { struct http_argument *p; if (!name) @@ -279,7 +281,7 @@ char *http_argbyname(struct http_request *r, char *name) return 0; } -char *http_headerbyname(struct http_header *h, char *name) +const char *http_headerbyname(struct http_header *h, const char *name) { for (; h; h = h->next) if (!strcmp(h->name, name)) @@ -1129,8 +1131,6 @@ static void http_accept(IOCHAN i, int event) pazpar2_add_channel(c); } -static int listener_socket = 0; - /* Create a http-channel listener, syntax [host:]port */ int http_init(const char *addr, struct conf_server *server) { @@ -1193,7 +1193,7 @@ int http_init(const char *addr, struct conf_server *server) return 1; } - listener_socket = l; + server->listener_socket = l; c = iochan_create(l, http_accept, EVENT_INPUT | EVENT_EXCEPT); iochan_setdata(c, server); @@ -1201,15 +1201,15 @@ int http_init(const char *addr, struct conf_server *server) return 0; } -void http_close_server(void) +void http_close_server(struct conf_server *server) { /* break the event_loop (select) by closing down the HTTP listener sock */ - if (listener_socket) + if (server->listener_socket) { #ifdef WIN32 - closesocket(listener_socket); + closesocket(server->listener_socket); #else - close(listener_socket); + close(server->listener_socket); #endif } }