Rob Dobson / RdWebServer

Dependents:   RdBlindsServer SpideyWallWeb RdGasUseMonitor

Files at this revision

API Documentation at this revision

Comitter:
Bobty
Date:
Sun May 03 20:41:35 2015 +0000
Parent:
11:cec51b430b20
Child:
13:4f9c09d3da13
Commit message:
Added debugging macros

Changed in this revision

RdWebServer.cpp Show annotated file Show diff for this revision Revisions of this file
RdWebServer.h Show annotated file Show diff for this revision Revisions of this file
--- a/RdWebServer.cpp	Sun May 03 18:59:42 2015 +0000
+++ b/RdWebServer.cpp	Sun May 03 20:41:35 2015 +0000
@@ -4,6 +4,8 @@
    More details at http://robdobson.com/2013/10/moving-my-window-shades-control-to-mbed/
 */
 
+#define RDWEB_DEBUG 5
+
 #include "RdWebServer.h"
 
 #define MAX_CMDSTR_LEN 100
@@ -24,6 +26,8 @@
 
 bool RdWebServer::init(int port, DigitalOut* pStatusLed, char* pBaseWebFolder)
 {
+    printf("Here\r\n");
+    RD_INFO("Here\r\n");
     _port = port;
     _pStatusLed = pStatusLed;
     _pBaseWebFolder = pBaseWebFolder;
@@ -184,6 +188,7 @@
     
     RD_INFO("Requesting file %s\n\r", inFileName);
     
+#ifdef SUPPORT_FOLDER_VIEW
     if ((strlen(inFileName) > 0) && (inFileName[strlen(inFileName)-1] == '/'))
     {
         RD_INFO("Request directory %s%s\r\n", _pBaseWebFolder, inFileName);
@@ -209,6 +214,7 @@
         client.send(httpHeader,strlen(httpHeader));
     }
     else
+#endif
     {
         sprintf(filename, "%s%s", _pBaseWebFolder, inFileName);
         RD_INFO("Filename %s\r\n", filename);
@@ -258,6 +264,9 @@
 
 void RdWebServer::handleLocalFileRequest(char* inFileName, char* argStr, TCPSocketConnection &client, char* httpHeader, bool bCacheIfPossible)
 {
+
+#ifdef SUPPORT_LOCAL_FILESYSTEM
+
     const int HTTPD_MAX_FNAME_LENGTH = 127;
     char localFilename[HTTPD_MAX_FNAME_LENGTH+1];
     char reqFileNameStr[HTTPD_MAX_FNAME_LENGTH+1];
@@ -325,10 +334,21 @@
         client.send_all(fileBuf, rdCnt);
         fclose(fp);
     }
+    
+#else
+
+    RD_WARN("Local file system not supported\r\n");
+    sprintf(httpHeader,"HTTP/1.1 404 Not Found \r\nContent-Type: text\r\nConnection: Close\r\n\r\n");
+    client.send(httpHeader,strlen(httpHeader));
+    client.send_all(inFileName,strlen(inFileName));
+
+#endif
 }
 
 bool RdFileCacheEntry::readLocalFileIntoCache(char* fileName)
 {
+#ifdef SUPPORT_LOCAL_FILESYSTEM
+    
     RD_INFO("Reading into cache %s\n\r", fileName);
     LocalFileSystem local("local");
     FILE* fp = fopen(fileName, "r");
@@ -376,6 +396,9 @@
     RD_DBG("Success in caching %d bytes (read %d)\n\r", _nFileLen, totCnt);
     _bCacheValid = true;
     return true;
+#else
+    return false;
+#endif
 }
 
 bool RdWebServer::extractCmdArgs(char* buf, char* pCmdStr, int maxCmdStrLen, char* pArgStr, int maxArgStrLen)
--- a/RdWebServer.h	Sun May 03 18:59:42 2015 +0000
+++ b/RdWebServer.h	Sun May 03 20:41:35 2015 +0000
@@ -10,26 +10,48 @@
 #include "mbed.h"
 #include "EthernetInterface.h"
 
-#if defined(DEBUG) && (DEBUG > 3)
+#ifdef RDWEB_DEBUG 
+#if (RDWEB_DEBUG > 3)
 #define RD_DBG(x, ...) std::printf("[RD_DBG: %s:%d]" x "\r\n", __FILE__, __LINE__, ##__VA_ARGS__);
 #else
 #define RD_DBG(x, ...)
 #endif
-#if defined(DEBUG) && (DEBUG > 2)
+#else
+#define RD_DBG(x, ...)
+#endif
+
+#ifdef RDWEB_DEBUG 
+#if (RDWEB_DEBUG > 2)
 #define RD_INFO(x, ...) std::printf("[RD_INFO: %s:%d]" x "\r\n", __FILE__, __LINE__, ##__VA_ARGS__);
 #else
 #define RD_INFO(x, ...)
 #endif
-#if defined(DEBUG) && (DEBUG > 1)
+#else
+#define RD_INFO(x, ...)
+#endif
+
+#ifdef RDWEB_DEBUG 
+#if (RDWEB_DEBUG > 1)
 #define RD_WARN(x, ...) std::printf("[RD_WARNING: %s:%d]" x "\r\n", __FILE__, __LINE__, ##__VA_ARGS__);
 #else
 #define RD_WARN(x, ...)
 #endif
-#if defined(DEBUG) && (DEBUG > 0)
+#else
+#define RD_WARN(x, ...)
+#endif
+
+#ifdef RDWEB_DEBUG 
+#if (RDWEB_DEBUG > 0)
 #define RD_ERR(x, ...) std::printf("[RD_ERR: %s:%d]" x "\r\n", __FILE__, __LINE__, ##__VA_ARGS__);
 #else
 #define RD_ERR(x, ...)
 #endif
+#else
+#define RD_ERR(x, ...)
+#endif
+
+//#define SUPPORT_LOCAL_FILESYSTEM 1
+//#define SUPPORT_FOLDER_VIEW 1
 
 extern RawSerial pc;