HTTP Server upon new mbed Ethernet Interface. Based on original code by Henry Leinen.

Dependencies:   EthernetInterface mbed-rtos mbed

Fork of HTTP_server by pablo gindel

Revision:
4:2a34139c7246
Parent:
3:27b3a889b327
--- a/HTTPServer.h	Tue Jul 30 04:37:09 2013 +0000
+++ b/HTTPServer.h	Mon Aug 05 05:51:16 2013 +0000
@@ -32,15 +32,15 @@
 #include <map>
 
 #define BUFFER_SIZE     256       // all-purpose buffer
-#define TIMEOUT         800
+#define TIMEOUT         500
 #define OK              0
 #define ERROR           -1
 #define EMPTY           -2
 #define MIN_LONG        3
 #define CHUNK_SIZE      256
 
-#define DEBUG 0
-#include "../debug.h"
+#define DEBUG 2
+#include "debug.h"
 
 enum RequestType {
      HTTP_RT_GET,        /*!< GET request */
@@ -88,26 +88,32 @@
     void handleError (int errorCode);
 
     int tcpsend (const char* text, int param) {
-        //if (cliente == NULL) {return ERROR;}
         sprintf (buffer, text, param);
-        int len = strlen (buffer);
-        if (cliente->send_all (buffer, len) == len) {
-            return OK;
-        } else {
+        return tcpsend (buffer, strlen (buffer));
+    }
+
+    int tcpsend (const char* text) {
+        return tcpsend ((char*)text, strlen (text));
+    }
+
+    /*int tcpsend (char* buf, int len) {
+        int sent = 0;
+        while (sent<len) {
+            sent += cliente->send (buf+sent, len-sent);
+            if (sent == ERROR) {
+                WARN("Unsent bytes left !");
+                return ERROR;
+            }
+        }
+        return OK;
+    }*/
+
+    int tcpsend (char* buf, int len) {
+        if (cliente->send_all (buf, len) != len) {
             WARN("Unsent bytes left !");
             return ERROR;
         }
-    }
-
-    int tcpsend (const char* text) {
-        //if (cliente == NULL) {return ERROR;}
-        int len = strlen (text);
-        if (cliente->send_all ((char*)text, len) == len) {
-            return OK;
-        } else {
-            WARN("Unsent bytes left !");
-            return ERROR;
-        }
+        return OK;
     }
 
 public:
@@ -124,4 +130,5 @@
 void url_decode (char *str);
 
 
+
 #endif //__HTTPSERVER_H__