A simple web server that can be bound to either the EthernetInterface or the WiflyInterface.

Dependents:   Smart-WiFly-WebServer WattEye X10Svr SSDP_Server

Revision:
55:238dd90b6fb3
Parent:
53:e5d96abe5e9b
Child:
56:df915cb8ba9a
--- a/SW_HTTPServer.cpp	Sun Jun 10 22:24:54 2018 +0000
+++ b/SW_HTTPServer.cpp	Mon Jul 02 17:31:05 2018 +0000
@@ -247,9 +247,12 @@
 
         case ReceivingHeader:
             n = client.receive(bPtr, headerbuffersize - (bPtr - headerbuffer));
-            INFO("%sclient.receive() returned %d, from %s", (n<0) ? "*** " : "", n, client.get_address());
-            if (n < 0) {
-                op = Sending;
+            if (n == -2) {
+                ;   // timeout, so hang here waiting for traffic
+                //   was hang here waiting ... op = Sending; which causes misses
+            } else if (n < 0) {
+                // some error like a closed/crashed interface
+                INFO("%sclient.receive() returned %d, from %s", (n<0) ? "*** " : "", n, client.get_address());
             } else if (n) {
                 bPtr[n] = '\0';
                 switch (ParseHeader(headerbuffer)) {
@@ -365,7 +368,7 @@
         char *fbuffer = (char *)mymalloc(FILESEND_BUF_SIZE);
         int bytes;
 
-        client.set_blocking(true, 450);
+        client.set_blocking(false, 450);
         //server->set_blocking(true, 240);
         if (fbuffer) {
             char ContentLen[30];