This commit is contained in:
overflowerror 2017-01-02 18:08:29 +01:00
parent bed7edd544
commit 42e2e33b3e

View file

@ -140,7 +140,7 @@ char* ws_host_find(const char** path, headers_t headers) {
for (int i = 0; i < headers.nrfields; i++) { for (int i = 0; i < headers.nrfields; i++) {
header_t header = headers.fields[i]; header_t header = headers.fields[i];
if (strcmp(header.key, "Host") == 0) { if (strcmp(header.key, "Host") == 0) {
host = (char*) malloc(strlen(header.value) + 1); host = malloc(strlen(header.value) + 1);
memcpy(host, header.value, strlen(header.value) + 1); memcpy(host, header.value, strlen(header.value) + 1);
return host; return host;
} }
@ -155,7 +155,7 @@ char* ws_host_find(const char** path, headers_t headers) {
if (host == NULL) { if (host == NULL) {
setHost = true; setHost = true;
host = (char*) malloc(strlen(*path) + 1); host = malloc(strlen(*path) + 1);
} }
int hposition = 0; int hposition = 0;
@ -184,7 +184,7 @@ char* ws_host_find(const char** path, headers_t headers) {
} }
if (setHost) { if (setHost) {
host[hposition] = '\0'; host[hposition] = '\0';
host = (char*) realloc(host, strlen(host) + 1); host = realloc(host, strlen(host) + 1);
} }
return host; return host;
@ -288,13 +288,13 @@ int ws_request_parse(char* buffer, const char** path, method_t* method) {
headers_t ws_headers_create(void) { headers_t ws_headers_create(void) {
headers_t headers; headers_t headers;
headers.fields = (header_t*) malloc(0 * sizeof(header_t)); headers.fields = malloc(0 * sizeof(header_t));
headers.nrfields = 0; headers.nrfields = 0;
return headers; return headers;
} }
void ws_headers_add(headers_t* headers, const char* key, const char* value) { void ws_headers_add(headers_t* headers, const char* key, const char* value) {
headers->fields = (header_t*) realloc(headers->fields, ++(headers->nrfields) * sizeof(header_t)); headers->fields = realloc(headers->fields, ++(headers->nrfields) * sizeof(header_t));
headers->fields[headers->nrfields - 1].key = key; headers->fields[headers->nrfields - 1].key = key;
headers->fields[headers->nrfields - 1].value = value; headers->fields[headers->nrfields - 1].value = value;
} }
@ -372,7 +372,7 @@ int ws_listen(webserver_t* server) {
} }
void ws_handle_add(webserver_t* server, handle_t handle) { void ws_handle_add(webserver_t* server, handle_t handle) {
server->handles = (handle_t*) realloc(server->handles, ++(server->nrhandles) * sizeof(handle_t)); server->handles = realloc(server->handles, ++(server->nrhandles) * sizeof(handle_t));
server->handles[server->nrhandles - 1] = handle; server->handles[server->nrhandles - 1] = handle;
} }
@ -383,7 +383,7 @@ webserver_t ws_create(const char* name, const char* host, const char* port, FILE
server.port = port; server.port = port;
server.logfile = logfile; server.logfile = logfile;
server.nrhandles = 0; server.nrhandles = 0;
server.handles = (handle_t*) malloc(0); server.handles = malloc(0);
server.options.mode = LINEAR; server.options.mode = LINEAR;
server.options.timeout = 30; server.options.timeout = 30;
@ -555,11 +555,11 @@ int ws_run_linear(webserver_t* server) {
int s; int s;
int connfd; int connfd;
char* buffer = (char*) malloc(BUFFER_SIZE * sizeof(char)); char* buffer = malloc(BUFFER_SIZE * sizeof(char));
int buffersize = 0; int buffersize = 0;
int nb = 1; int nb = 1;
char* header = (char*) malloc(BUFFER_SIZE * sizeof(char)); char* header = malloc(BUFFER_SIZE * sizeof(char));
int headersize = 0; int headersize = 0;
int nhb = 1; int nhb = 1;
@ -595,7 +595,7 @@ int ws_run_linear(webserver_t* server) {
if (buffersize > nb * BUFFER_SIZE - 1) { if (buffersize > nb * BUFFER_SIZE - 1) {
nb++; nb++;
buffer = (char*) realloc(buffer, nb * BUFFER_SIZE * sizeof(char)); buffer = realloc(buffer, nb * BUFFER_SIZE * sizeof(char));
} }
buffer[buffersize] = '\0'; buffer[buffersize] = '\0';
@ -693,7 +693,7 @@ int ws_run_linear(webserver_t* server) {
ws_log(server, LOG_TESTING, "enlarging header buffer"); ws_log(server, LOG_TESTING, "enlarging header buffer");
while (headersize + buffersize + 1 > nhb * BUFFER_SIZE) { while (headersize + buffersize + 1 > nhb * BUFFER_SIZE) {
nhb++; nhb++;
header = (char*) realloc(header, nhb * BUFFER_SIZE * sizeof(char)); header = realloc(header, nhb * BUFFER_SIZE * sizeof(char));
} }
memcpy(header + headersize, buffer, buffersize + 1); memcpy(header + headersize, buffer, buffersize + 1);
@ -720,13 +720,13 @@ int ws_run_linear(webserver_t* server) {
headersize += buffersize + 1; headersize += buffersize + 1;
ws_log(server, LOG_TESTING, "reset buffer"); ws_log(server, LOG_TESTING, "reset buffer");
buffer = (char*) realloc(buffer, BUFFER_SIZE * sizeof(char)); buffer = realloc(buffer, BUFFER_SIZE * sizeof(char));
nb = 1; nb = 1;
buffersize = 0; buffersize = 0;
} }
} }
header = (char*) realloc(header, BUFFER_SIZE * sizeof(char)); header = realloc(header, BUFFER_SIZE * sizeof(char));
nhb = 1; nhb = 1;
headersize = 0; headersize = 0;
@ -738,7 +738,7 @@ int ws_run_linear(webserver_t* server) {
free(host); free(host);
host = NULL; host = NULL;
buffer = (char*) realloc(buffer, BUFFER_SIZE * sizeof(char)); buffer = realloc(buffer, BUFFER_SIZE * sizeof(char));
nb = 1; nb = 1;
buffersize = 0; buffersize = 0;
} }