From: server Date: Sun, 25 May 2025 03:57:47 +0000 (-0400) Subject: remove case sensitiviiivtiy X-Git-Url: http://www.foleosoft.com/?a=commitdiff_plain;h=fe8cd8b7a0a182a97d3ed8cb8f0db2735fa3cb1e;p=RosadoAPI.git remove case sensitiviiivtiy --- diff --git a/src/http.c b/src/http.c index b62247c..49ece2d 100644 --- a/src/http.c +++ b/src/http.c @@ -95,16 +95,16 @@ char* httpParse(char* search, char* buff, long buff_len) { int buff_pos = 0; - if ( strcmp(search, "Method") == 0 ) + if ( strcasecmp(search, "Method") == 0 ) { return httpParseNext(' ', buff, &buff_pos, buff_len); } - else if ( strcmp(search, "Path") == 0 ) + else if ( strcasecmp(search, "Path") == 0 ) { httpNext(' ', buff, &buff_pos, buff_len); return httpParseNext(' ', buff, &buff_pos, buff_len); } - else if ( strcmp(search, "Version") == 0 ) + else if ( strcasecmp(search, "Version") == 0 ) { if (buff[0] == 'H' && buff[1] == 'T' && buff[2] == 'T') { @@ -117,10 +117,10 @@ char* httpParse(char* search, char* buff, long buff_len) return httpParseNext('\n', buff, &buff_pos, buff_len); } } - else if ( strcmp(search, "Content") == 0 ) + else if ( strcasecmp(search, "Content") == 0 ) { for (int i = 3; i < buff_len; i++) - { + { if (buff[i - 3] == '\r' && buff[i - 2] == '\n' && buff[i - 1] == '\r' && buff[i - 0] == '\n') { i++; @@ -138,7 +138,7 @@ char* httpParse(char* search, char* buff, long buff_len) while (buff_pos < buff_len) { char* tmp = httpParseNext(':', buff, &buff_pos, buff_len); - if ( strcmp(tmp, search) == 0 ) + if ( strcasecmp(tmp, search) == 0 ) { free(tmp); buff_pos++; @@ -209,19 +209,22 @@ void httpRespondByte(int session_fd, uint8_t byte) void httpError(int session_fd, int error, char *msg) { - char headerTemplate[] = "HTTP/1.1 %i %s\n"; + + printf("Error: %s\n", msg); + + char headerTemplate[] = "HTTP/1.1 %i %s\r\n"; int headerLen = snprintf(NULL, 0, headerTemplate, error, msg); - char *header = malloc(headerLen); + char *header = malloc(headerLen+1); sprintf(header, headerTemplate, error, msg); - char pageTemplate[] = "Error %i: %s\n"; + char pageTemplate[] = "

Error %i: %s

\r\n"; int pageLen = snprintf(NULL, 0, pageTemplate, error, msg); - char *page = malloc(pageLen); + char *page = malloc(pageLen+1); sprintf(page, pageTemplate, error, msg); - char contentLengthTemplate[] = "Content-Length: %i\n\n"; + char contentLengthTemplate[] = "Access-Control-Allow-Origin: *\r\nContent-Length: %i\r\n\r\n"; int contentLengthLen = snprintf(NULL, 0, contentLengthTemplate, pageLen); - char *contentLength = malloc(contentLengthLen); + char *contentLength = malloc(contentLengthLen+1); sprintf(contentLength, contentLengthTemplate, pageLen); httpRespond(session_fd, header); @@ -374,7 +377,7 @@ void httpRequest(int session_fd, char** str, int* strlen) uint8_t buffer[1024]; int32_t length; int8_t tries = 3; - + while (tries > 0) { while ( (length = read(session_fd, buffer, sizeof(buffer))) > 0 ) @@ -386,11 +389,11 @@ void httpRequest(int session_fd, char** str, int* strlen) usleep(1000); tries--; } - + *str = realloc(*str, (*strlen) + 1); (*str)[*strlen] = 0; *strlen += 1; - + /* ioctl(session_fd, FIONREAD, strlen); if (*strlen > 0)