Fix for windows
authorLaurent Mazet <laurent.mazet@thalesgroup.com>
Wed, 24 May 2023 08:59:02 +0000 (10:59 +0200)
committerLaurent Mazet <laurent.mazet@thalesgroup.com>
Wed, 24 May 2023 11:46:47 +0000 (13:46 +0200)
file.c
file.h
http.c
server.c
server.h
webserver.c

diff --git a/file.c b/file.c
index c720dba5914668a93d2af55a58f5b7e48a090087..4a866b681bacc77a7aa3a5ff0ac371d0457fbab9 100644 (file)
--- a/file.c
+++ b/file.c
@@ -8,7 +8,7 @@
 
 /* read full file */
 
-int readfile (unsigned char **buffer, char *filename)
+int readfile (char **buffer, char *filename)
 {
 
     /* open file */
diff --git a/file.h b/file.h
index 165c2768b6da185af134bd3b276d58b08055ea8a..c6edd0d00ec5498aedee535d66609d08f69b6217 100644 (file)
--- a/file.h
+++ b/file.h
@@ -1,7 +1,7 @@
 #ifndef __FILE_H__
 #define __FILE_H__
 
-int readfile (unsigned char **buffer, char *filename);
+int readfile (char **buffer, char *filename);
 
 #endif /* __FILE_H__ */
 
diff --git a/http.c b/http.c
index 13223210cba9497a1a5cbd67caf66c58feca1889..dce3cc86d8a81686abd9d483b60d921a2a6ec63e 100644 (file)
--- a/http.c
+++ b/http.c
@@ -63,22 +63,23 @@ typedef struct {
 
 void print_header_values (header_t *header)
 {
-    printf ("allow = '%s'\n", header->allow);
-    printf ("authorization = '%s'\n", header->authorization);
-    printf ("content_encoding = '%s'\n", header->content_encoding);
-    printf ("content_length = '%s'\n", header->content_length);
-    printf ("content_type = '%s'\n", header->content_type);
-    printf ("date = '%s'\n", header->date);
-    printf ("expires = '%s'\n", header->expires);
-    printf ("from = '%s'\n", header->from);
-    printf ("if_modified_since = '%s'\n", header->if_modified_since);
-    printf ("last_modified = '%s'\n", header->last_modified);
-    printf ("location = '%s'\n", header->location);
-    printf ("pragma = '%s'\n", header->pragma);
-    printf ("referer = '%s'\n", header->referer);
-    printf ("server = '%s'\n", header->server);
-    printf ("user_agent = '%s'\n", header->user_agent);
-    printf ("www_authenticate = '%s'\n", header->www_authenticate);
+    printf ("Header values\n");
+    if (header->allow) printf ("allow = '%s'\n", header->allow);
+    if (header->authorization) printf ("authorization = '%s'\n", header->authorization);
+    if (header->content_encoding) printf ("content_encoding = '%s'\n", header->content_encoding);
+    if (header->content_length) printf ("content_length = '%s'\n", header->content_length);
+    if (header->content_type) printf ("content_type = '%s'\n", header->content_type);
+    if (header->date) printf ("date = '%s'\n", header->date);
+    if (header->expires) printf ("expires = '%s'\n", header->expires);
+    if (header->from) printf ("from = '%s'\n", header->from);
+    if (header->if_modified_since) printf ("if_modified_since = '%s'\n", header->if_modified_since);
+    if (header->last_modified) printf ("last_modified = '%s'\n", header->last_modified);
+    if (header->location) printf ("location = '%s'\n", header->location);
+    if (header->pragma) printf ("pragma = '%s'\n", header->pragma);
+    if (header->referer) printf ("referer = '%s'\n", header->referer);
+    if (header->server) printf ("server = '%s'\n", header->server);
+    if (header->user_agent) printf ("user_agent = '%s'\n", header->user_agent);
+    if (header->www_authenticate) printf ("www_authenticate = '%s'\n", header->www_authenticate);
 }
 
 /* find sequence*/
@@ -154,7 +155,7 @@ int add_response_header (char **buffer, char *uri)
     return strlen (*buffer);
 }
 
-int add_entity (char **buffer, unsigned char *entity, int size, char *type, char *encoding)
+int add_entity (char **buffer, char *entity, int size, char *type, char *encoding)
 {
     char tmp[BUFFER_SIZE] = {0};
     int len = strlen (*buffer);
@@ -200,7 +201,7 @@ int error_400 (char **buffer)
     add_response_header (buffer, NULL);
 
     char *response = "<html><head><title>Error 400</title></head><body><p>Bad Request</p></body></html>";
-    return add_entity (buffer, (unsigned char *)response, strlen (response), "text/html", "iso-8859-1");
+    return add_entity (buffer, response, strlen (response), "text/html", "iso-8859-1");
 }
 
 /* error 404 */
@@ -212,7 +213,7 @@ int error_404 (char **buffer, char *uri)
     add_response_header (buffer, uri);
 
     char *response = "<html><head><title>Error 404</title></head><body><p>File not found</p></body></html>";
-    return add_entity (buffer, (unsigned char *)response, strlen (response), "text/html", "iso-8859-1");
+    return add_entity (buffer, response, strlen (response), "text/html", "iso-8859-1");
 }
 
 /* response html */
@@ -223,7 +224,7 @@ int response_html (char **buffer, char *location, char *response)
     add_general_header (buffer);
     add_response_header (buffer, location);
 
-    return add_entity (buffer, (unsigned char *)response, strlen (response), "text/html", "iso-8859-1");
+    return add_entity (buffer, response, strlen (response), "text/html", "iso-8859-1");
 }
 
 /* trim string */
@@ -337,7 +338,7 @@ int processing (char *data, int len, char *root, char **pdata)
     char *buffer = NULL;
     switch (type) {
     case get_e:
-        len = readfile ((unsigned char **)&buffer, filename);
+        len = readfile (&buffer, filename);
         if (len == 0) {
             len = error_404 (pdata, "http://localhost/");
         } else {
index 039d4330e0e1da6ce9887e3c0fcaa15f19e0fd52..a08e0c6490576ced79f84a848aa1edcbe74ae2ba 100644 (file)
--- a/server.c
+++ b/server.c
@@ -212,10 +212,10 @@ void close_connection (void)
 
 /* receive data from socket */
 
-int receive_data (unsigned char **pdata)
+int receive_data (char **pdata)
 {
-    unsigned char buffer[BUFFER_SIZE] = {0};
-    unsigned char *data = NULL;
+    char buffer[BUFFER_SIZE] = {0};
+    char *data = NULL;
     int len = 0;
 
     if (conn == INVALID_SOCKET) {
@@ -237,7 +237,8 @@ int receive_data (unsigned char **pdata)
         }
 
         /* read from socket */
-        int rc = read (conn, buffer, BUFFER_SIZE);
+        int rc = recv (conn, buffer, BUFFER_SIZE, 0);
+        VERBOSE (DEBUG, PRINT ("rc: %d\nerrno: %d\n", rc, ERRNO));
 
         if (rc == 0) { /* sock closed */
             if (data) {
@@ -270,7 +271,7 @@ int receive_data (unsigned char **pdata)
 
 /* send data onto socket */
 
-int send_data (unsigned char *data, int len)
+int send_data (char *data, int len)
 {
     int index = 0;
 
index 2e29b6e7e17070c559377f7a99fc8d7ee4da75b7..98b2cbf79ef7b377e250ff78844e744617ceebad 100644 (file)
--- a/server.h
+++ b/server.h
@@ -16,8 +16,8 @@ int accept_incoming_connection (void);
 
 void close_connection (void);
 
-int receive_data (unsigned char **pdata);
-int send_data (unsigned char *data, int len);
+int receive_data (char **pdata);
+int send_data (char *data, int len);
 
 #endif /* __SERVER_H__ */
 
index b8c6e8ced64251dadfdfb92d38204d5cfcf21573..a88b5864460432c6454ba4abe0e0d24e63db2e14 100644 (file)
@@ -130,7 +130,7 @@ int main (int argc, char *argv[])
 
         VERBOSE (DEBUG, PRINT ("Server connected, waiting for data\n"));
 
-        unsigned char *data = {0};
+        char *data = {0};
 
         int len = receive_data (&data);
         if (len == 0) {