HTTP Server upon new mbed Ethernet Interface. Based on original code by Henry Leinen.
Dependencies: EthernetInterface mbed-rtos mbed
Fork of HTTP_server by
Diff: HTTPServer.h
- 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__