From 7520553672be217e524e61d4d32d3acfac452f77 Mon Sep 17 00:00:00 2001 From: Pin Date: Thu, 24 Feb 2022 20:55:27 -0500 Subject: [PATCH] small fixes --- cmd/server.c | 10 +++++++--- include/httpStruct.h | 1 + src/utils.c | 1 - 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/cmd/server.c b/cmd/server.c index e396bff..7b4159f 100644 --- a/cmd/server.c +++ b/cmd/server.c @@ -39,6 +39,7 @@ int parseHTTPRequest(unsigned char *buffer, struct HTTPRequest *r) { int contentCheck = 0; unsigned char *checkLine = calloc(1000, sizeof(unsigned char)); unsigned char *logLine = malloc(sizeof(unsigned char)); + char * varCheck; // Creating empty requestBody r->requestBody = calloc(8, sizeof(char)); @@ -61,8 +62,11 @@ int parseHTTPRequest(unsigned char *buffer, struct HTTPRequest *r) { strcpy(r->requestType, token); // Grabbing HTTP Request Dir token = strtok(NULL, " "); - r->requestDir = malloc(strlen(token)); - strcpy(r->requestDir, token); + varCheck = strchr(token, '?'); + if (varCheck != NULL) { + *varCheck = ' '; + } + sscanf(token, "%ms %ms", &r->requestDir, &r->requestVars); // Grabbing HTTP Request Version token = strtok(NULL, ""); token[strlen(token) - 1] = '\0'; // Fixing version end char @@ -233,7 +237,7 @@ int handleRequest(unsigned char buffer[], int socket, SSL *ssl) { if (checkerr != 0) { // Checking for HTTP parsing error if (checkerr == -1) { printDebug("Error reading request, returning empty 500"); - return500Request(socket, ssl); + return return500Request(socket, ssl); } else { printDebug("Error parsing, returning 501"); return return501Request(socket, ssl); diff --git a/include/httpStruct.h b/include/httpStruct.h index e2fff74..6a45214 100644 --- a/include/httpStruct.h +++ b/include/httpStruct.h @@ -7,5 +7,6 @@ struct HTTPRequest { char *requestVersion; char *requestHost; char *requestDir; + char *requestVars; unsigned char *requestBody; }; diff --git a/src/utils.c b/src/utils.c index ef2f906..a804c5e 100644 --- a/src/utils.c +++ b/src/utils.c @@ -23,7 +23,6 @@ int checkHTTPVersion(char *version) { int supported = -1; // Default fail state char testVer[16]; strcpy(testVer, version); - //testVer[strlen(version) - 1] = '\0'; // Removing for (int i = 0; i < NUM_SUPPORTED_VERSIONS; i++) { if (!strcmp(testVer, supportedHTTPVersions[i])) { supported = 0;