Rob Dobson / RdWebServer

Dependents:   RdBlindsServer SpideyWallWeb RdGasUseMonitor

Revision:
13:4f9c09d3da13
Parent:
12:c14ffd4ec125
Child:
14:4b83670854f0
diff -r c14ffd4ec125 -r 4f9c09d3da13 RdWebServer.cpp
--- a/RdWebServer.cpp	Sun May 03 20:41:35 2015 +0000
+++ b/RdWebServer.cpp	Mon May 04 17:26:32 2015 +0000
@@ -10,6 +10,7 @@
 
 #define MAX_CMDSTR_LEN 100
 #define MAX_ARGSTR_LEN 100
+#define MAX_FILENAME_LEN (MAX_ARGSTR_LEN + 20)
 
 RdWebServer::RdWebServer()
 {
@@ -26,8 +27,6 @@
 
 bool RdWebServer::init(int port, DigitalOut* pStatusLed, char* pBaseWebFolder)
 {
-    printf("Here\r\n");
-    RD_INFO("Here\r\n");
     _port = port;
     _pStatusLed = pStatusLed;
     _pBaseWebFolder = pBaseWebFolder;
@@ -90,16 +89,32 @@
                 else if ((*it)->_cmdType == RdWebServerCmdDef::CMD_LOCALFILE)
                 {
                     if ((*it)->_substFileName[0] != '\0')
-                        handleLocalFileRequest((*it)->_substFileName, argStr, client, _httpHeader, (*it)->_bCacheIfPossible);
+                    {
+                        char combinedFileName[MAX_FILENAME_LEN];
+                        strcpy(combinedFileName, (*it)->_substFileName);
+                        if (combinedFileName[strlen(combinedFileName)-1] == '*')
+                            strcpy(combinedFileName+strlen(combinedFileName)-1, argStr);
+                        handleLocalFileRequest(combinedFileName, argStr, client, _httpHeader, (*it)->_bCacheIfPossible);
+                    }
                     else
+                    {
                         handleLocalFileRequest(cmdStr, argStr, client, _httpHeader, (*it)->_bCacheIfPossible);
+                    }
                 }
                 else if ((*it)->_cmdType == RdWebServerCmdDef::CMD_SDORUSBFILE)
                 {
                     if ((*it)->_substFileName[0] != '\0')
-                        handleSDFileRequest((*it)->_substFileName, argStr, client, _httpHeader);
+                    {
+                        char combinedFileName[MAX_FILENAME_LEN];
+                        strcpy(combinedFileName, (*it)->_substFileName);
+                        if (combinedFileName[strlen(combinedFileName)-1] == '*')
+                            strcpy(combinedFileName+strlen(combinedFileName)-1, argStr);
+                        handleSDFileRequest(combinedFileName, argStr, client, _httpHeader);
+                    }
                     else
+                    {
                         handleSDFileRequest(cmdStr, argStr, client, _httpHeader);
+                    }
                 }
                 break;
             }
@@ -143,6 +158,7 @@
                 int rxLen = client.receive(_buffer, HTTPD_MAX_REQ_LENGTH);
                 if (rxLen == -1)
                 {
+                    RD_WARN("Nothing received\n\r");
                     continue;
                 }
                 else if (rxLen == 0)