Commit 3dac803c4158c56bde557910ae93abbd7097a1fa
1 parent
459ecc5d
fix memory leak created while changing things
Showing
3 changed files
with
10 additions
and
3 deletions
@@ -31,11 +31,11 @@ char * | @@ -31,11 +31,11 @@ char * | ||
31 | httpHeaderGet(const HttpHeader header[], int nheader, const char * name) | 31 | httpHeaderGet(const HttpHeader header[], int nheader, const char * name) |
32 | { | 32 | { |
33 | unsigned long hash = sdbm((unsigned char *)name); | 33 | unsigned long hash = sdbm((unsigned char *)name); |
34 | - HttpHeader found; | 34 | + HttpHeader * found; |
35 | 35 | ||
36 | found = bsearch(&hash, header, nheader, sizeof(HttpHeader), comp); | 36 | found = bsearch(&hash, header, nheader, sizeof(HttpHeader), comp); |
37 | 37 | ||
38 | - return (NULL != found)? found->value : NULL; | 38 | + return (NULL != *found)? (*found)->value : NULL; |
39 | } | 39 | } |
40 | 40 | ||
41 | // vim: set ts=4 sw=4: | 41 | // vim: set ts=4 sw=4: |
@@ -9,7 +9,7 @@ httpRequestParserGetHeader(HttpRequest request, char * line) | @@ -9,7 +9,7 @@ httpRequestParserGetHeader(HttpRequest request, char * line) | ||
9 | char * name = line; | 9 | char * name = line; |
10 | char * value = strchr(line, ':'); | 10 | char * value = strchr(line, ':'); |
11 | 11 | ||
12 | - *value = 0; | 12 | + *(value++) = 0; |
13 | for (; *value == ' ' && *value != 0; value++); | 13 | for (; *value == ' ' && *value != 0; value++); |
14 | 14 | ||
15 | (request->header)[request->nheader++] = new(HttpHeader, name, value); | 15 | (request->header)[request->nheader++] = new(HttpHeader, name, value); |
@@ -2,6 +2,9 @@ | @@ -2,6 +2,9 @@ | ||
2 | #include <socket.h> | 2 | #include <socket.h> |
3 | #include <string.h> | 3 | #include <string.h> |
4 | 4 | ||
5 | +#include <sys/time.h> | ||
6 | +#include <sys/resource.h> | ||
7 | + | ||
5 | #include "server.h" | 8 | #include "server.h" |
6 | #include "logger.h" | 9 | #include "logger.h" |
7 | #include "http/request_parser.h" | 10 | #include "http/request_parser.h" |
@@ -13,11 +16,15 @@ | @@ -13,11 +16,15 @@ | ||
13 | int | 16 | int |
14 | main() | 17 | main() |
15 | { | 18 | { |
19 | + struct rlimit limit = {RLIM_INFINITY, RLIM_INFINITY}; | ||
20 | + | ||
16 | Logger logger = new(LoggerStderr, LOGGER_ERR); | 21 | Logger logger = new(LoggerStderr, LOGGER_ERR); |
17 | HttpRequestParser parser = new(HttpRequestParser); | 22 | HttpRequestParser parser = new(HttpRequestParser); |
18 | Server server = new(Server, logger, parser, 11212, SOMAXCONN); | 23 | Server server = new(Server, logger, parser, 11212, SOMAXCONN); |
19 | //Server server = new(Server, logger, parser, 11212, 20); | 24 | //Server server = new(Server, logger, parser, 11212, 20); |
20 | 25 | ||
26 | + setrlimit(RLIMIT_CPU, &limit); | ||
27 | + | ||
21 | init_signals(); | 28 | init_signals(); |
22 | serverRun(server); | 29 | serverRun(server); |
23 | 30 |
Please
register
or
login
to post a comment