]> foleosoft.com Git - RosadoAPI.git/commitdiff
remove case sensitiviiivtiy master
authorserver <[email protected]>
Sun, 25 May 2025 03:57:47 +0000 (23:57 -0400)
committerserver <[email protected]>
Sun, 25 May 2025 03:57:47 +0000 (23:57 -0400)
src/http.c

index b62247cdb8de8655a4a0208f192a05811d34e62b..49ece2d58df3474023c6e2e4e1bc820846c64990 100644 (file)
@@ -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[] = "<!DOCTYPE html><html><body><h3>Error %i: %s</h3></body></html>\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)