diff --git a/src/http/header/get.c b/src/http/header/get.c index f46b47f..65e9748 100644 --- a/src/http/header/get.c +++ b/src/http/header/get.c @@ -31,11 +31,11 @@ char * httpHeaderGet(const HttpHeader header[], int nheader, const char * name) { unsigned long hash = sdbm((unsigned char *)name); - HttpHeader found; + HttpHeader * found; found = bsearch(&hash, header, nheader, sizeof(HttpHeader), comp); - return (NULL != found)? found->value : NULL; + return (NULL != *found)? (*found)->value : NULL; } // vim: set ts=4 sw=4: diff --git a/src/http/request/parser/get_header.c b/src/http/request/parser/get_header.c index eb1cab8..4b01309 100644 --- a/src/http/request/parser/get_header.c +++ b/src/http/request/parser/get_header.c @@ -9,7 +9,7 @@ httpRequestParserGetHeader(HttpRequest request, char * line) char * name = line; char * value = strchr(line, ':'); - *value = 0; + *(value++) = 0; for (; *value == ' ' && *value != 0; value++); (request->header)[request->nheader++] = new(HttpHeader, name, value); diff --git a/src/testserver.c b/src/testserver.c index 818776f..0ad825e 100644 --- a/src/testserver.c +++ b/src/testserver.c @@ -2,6 +2,9 @@ #include #include +#include +#include + #include "server.h" #include "logger.h" #include "http/request_parser.h" @@ -13,11 +16,15 @@ int main() { + struct rlimit limit = {RLIM_INFINITY, RLIM_INFINITY}; + Logger logger = new(LoggerStderr, LOGGER_ERR); HttpRequestParser parser = new(HttpRequestParser); Server server = new(Server, logger, parser, 11212, SOMAXCONN); //Server server = new(Server, logger, parser, 11212, 20); + setrlimit(RLIMIT_CPU, &limit); + init_signals(); serverRun(server);