Simple HTTP Server with one page index.html stored inside MBED as char vector and javascript to update a table content

Fork of HTTP_SERVER by Akifumi Takahashi

Files at this revision

API Documentation at this revision

Comitter:
aktk
Date:
Sat Nov 26 19:15:20 2016 +0000
Parent:
5:dedbaa9c633b
Child:
7:184c6f1ace94
Commit message:
fixed a bug;

Changed in this revision

HTTP_SERVER.cpp Show annotated file Show diff for this revision Revisions of this file
handlers/ResponseMessenger.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/HTTP_SERVER.cpp	Sat Nov 26 18:54:10 2016 +0000
+++ b/HTTP_SERVER.cpp	Sat Nov 26 19:15:20 2016 +0000
@@ -91,7 +91,7 @@
                 case 0:
                     printf("(HTTP_SERVER) recieved buffer is empty.\r\n");
                     msger.setStatusLine(400, "No Request");
-                    if(msger.setHeaderField("Connection", "close"))printf("(HTTP_SERVER)buffer over flow @ ResponseMessenger");
+                    if(msger.setHeaderField("Connection", "Close"))printf("(HTTP_SERVER)buffer over flow @ ResponseMessenger");
                     httpmethod    = NULL;
                     filepath      = NULL;
                     http_ver      = NULL;
@@ -99,7 +99,7 @@
                 case -1:
                     printf("(HTTP_SERVER) failed to read data from client.\r\n");
                     msger.setStatusLine(500, "Internal Server Error");
-                    if(msger.setHeaderField("Connection", "close"))printf("(HTTP_SERVER)buffer over flow @ ResponseMessenger");
+                    if(msger.setHeaderField("Connection", "Close"))printf("(HTTP_SERVER)buffer over flow @ ResponseMessenger");
                     httpmethod    = NULL;
                     filepath      = NULL;
                     http_ver      = NULL;
@@ -242,6 +242,9 @@
                 msger.resetHeader();
                 printf("(HTTP_SERVER) echo back done.\r\n");
             }
+            if (strcmp(httpmethod, NULL) == 0 ) {
+                msger.sendHTTPResponse(tcpcon);
+            }
             printf("(HTTP_SERVER) Response to Request has done\r\n");
         }
         printf("(HTTP_SERVER) close connection.\r\ntcp server is listening...\r\n");
--- a/handlers/ResponseMessenger.cpp	Sat Nov 26 18:54:10 2016 +0000
+++ b/handlers/ResponseMessenger.cpp	Sat Nov 26 19:15:20 2016 +0000
@@ -59,7 +59,7 @@
     if(flag) {
         sprintf(header_field_line_buffer, "%s: %s\r\n", arg_field_name, arg_field_val);
         strcat(header_field_buffer, header_field_line_buffer);
-        printf("header field: \r\n%s\r\n", header_field_buffer);
+        printf("(RM) header field: \r\n%s\r\n", header_field_buffer);
     }
     //  To be safe on the sage side
     header_field_buffer[HEADER_FIELDS_SIZE - 1] = '\0';
@@ -88,7 +88,7 @@
     if(flag) {
         sprintf(header_field_line_buffer, "%s: %d\r\n", arg_field_name, arg_field_val);
         strcat(header_field_buffer, header_field_line_buffer);
-        printf("header field: \r\n%s\r\n", header_field_buffer);
+        printf("(RM) header field: \r\n%s\r\n", header_field_buffer);
     }
     //  To be safe on the sage side
     header_field_buffer[HEADER_FIELDS_SIZE - 1] = '\0';
@@ -138,7 +138,7 @@
     //
     //  Header
     //
-    printf("[send]Header\r\n");
+    printf("(RM) [send]Header\r\n");
     //  Status Line
     sprintf(buffer, "%s %d %s\r\n", http_ver, status_code, reason_phrase);
     buffer[MAX_BUFFER_SIZE - 1] = '\0';
@@ -150,7 +150,7 @@
     //  Blank line
     err_log = arg_connection.send_all("\r\n", strlen("\r\n"));
     if(err_log < 0) err_code = ((err_code << 1) | 1);
-    printf("[Header has sent]\r\n");
+    printf("(RM) [Header has sent]\r\n");
     //return error code
     return err_code << 2;
 
@@ -175,7 +175,7 @@
     //  Body
     //
     if (arg_file.arrival() && status_code == 200) {
-        printf("[send]Body\r\n");
+        printf("(RM) [send]Body\r\n");
         do {
             int i = 0;
             do {
@@ -185,17 +185,17 @@
             buffer[i] = '\0';
             if (!arg_file.hasError()) {
                 err_log = arg_connection.send_all((char*)buffer, i);
-                //printf("buffer log: %s",  buffer);
+                //printf("(RM) buffer log: %s",  buffer);
             }
-            if (arg_file.hasError()) printf("\r\n[ERR][ERR][ERR]\r\n");
-            if (arg_file.atEOF())    printf("\r\n[EOF][EOF][EOF]\r\n");
+            if (arg_file.hasError()) printf("(RM) \r\n[ERR][ERR][ERR]\r\n");
+            if (arg_file.atEOF())    printf("(RM) \r\n[EOF][EOF][EOF]\r\n");
         } while (!arg_file.atEOF() && !arg_file.hasError());
-        printf("[Body has sent]\r\n");
+        printf("(RM) [Body has sent]\r\n");
 
         if (err_log < 0) err_code = ((err_code) | 2);
         if (!arg_file.hasError())err_code = ((err_code) | 1);
     } else {
-        printf("[No Body]\r\n");
+        printf("(RM) [No Body]\r\n");
     }
     return (char)err_code;
 }
\ No newline at end of file