added uri + fixes

This commit is contained in:
overflowerror 2019-03-07 17:36:43 +01:00
parent c5376732ea
commit 20d6ff66c1
3 changed files with 19 additions and 7 deletions

View file

@ -196,8 +196,8 @@ int headers_metadata(struct metaData* metaData, char* header) {
method = DELETE; method = DELETE;
else if (strcmp(_method, "CONNECT") == 0) else if (strcmp(_method, "CONNECT") == 0)
method = CONNECT; method = CONNECT;
else if (strcmp(_method, "OPTION") == 0) else if (strcmp(_method, "OPTIONS") == 0)
method = OPTION; method = OPTIONS;
else if (strcmp(_method, "TRACE") == 0) else if (strcmp(_method, "TRACE") == 0)
method = TRACE; method = TRACE;
else if (strcmp(_method, "PATCH") == 0) else if (strcmp(_method, "PATCH") == 0)
@ -224,11 +224,22 @@ int headers_metadata(struct metaData* metaData, char* header) {
return HEADERS_ALLOC_ERROR; return HEADERS_ALLOC_ERROR;
} }
strcpy(queryString, _queryString); strcpy(queryString, _queryString);
char* uri = malloc(strlen(_path) + 1 + strlen(_queryString) + 1);
if (uri == NULL) {
free(path);
free(queryString);
return HEADERS_ALLOC_ERROR;
}
strcpy(uri, path);
strcat(uri, "?");
strcat(uri, queryString);
metaData->method = method; metaData->method = method;
metaData->httpVersion = httpVersion; metaData->httpVersion = httpVersion;
metaData->path = path; metaData->path = path;
metaData->queryString = queryString; metaData->queryString = queryString;
metaData->uri = uri;
return HEADERS_SUCCESS; return HEADERS_SUCCESS;
} }
@ -241,21 +252,19 @@ const char* methodString(struct metaData metaData) {
return "HEAD"; return "HEAD";
case POST: case POST:
return "POST"; return "POST";
case POST:
return "POST";
case PUT: case PUT:
return "PUT"; return "PUT";
case DELETE: case DELETE:
return "DELETE"; return "DELETE";
case CONNECT: case CONNECT:
return "CONNECT"; return "CONNECT";
case OPTION: case OPTIONS:
return "OPTION"; return "OPTIONS";
case TRACE: case TRACE:
return "TRACE"; return "TRACE";
case PATCH: case PATCH:
return "PATCH"; return "PATCH";
default: default:
return NULL return NULL;
} }
} }

View file

@ -20,6 +20,7 @@ struct metaData {
enum httpVersion httpVersion; enum httpVersion httpVersion;
char* path; char* path;
char* queryString; char* queryString;
char* uri;
}; };
/* /*

View file

@ -95,6 +95,8 @@ void cleanup() {
free(connection->metaData.path); free(connection->metaData.path);
if (connection->metaData.queryString != NULL) if (connection->metaData.queryString != NULL)
free(connection->metaData.queryString); free(connection->metaData.queryString);
if (connection->metaData.uri != NULL)
free(connection->metaData.uri);
if (connection->currentHeader != NULL) if (connection->currentHeader != NULL)
free(connection->currentHeader); free(connection->currentHeader);