diff --git a/src/sys/svc/hasp_http.cpp b/src/sys/svc/hasp_http.cpp
index eee9bd51..6f0348ff 100644
--- a/src/sys/svc/hasp_http.cpp
+++ b/src/sys/svc/hasp_http.cpp
@@ -89,7 +89,7 @@ const char MAIN_MENU_BUTTON[] PROGMEM = "" D_HTTP_MAIN_MENU "";
const char HTTP_DOCTYPE[] PROGMEM = "
";
-const char HTTP_META_GO_BACK[] PROGMEM = "";
+const char HTTP_META_GO_BACK[] PROGMEM = "";
const char HTTP_HEADER[] PROGMEM = "%s";
const char HTTP_HEADER_END[] PROGMEM =
""
@@ -210,7 +210,7 @@ static int webSendCached(int statuscode, const char* contenttype, const char* da
return statuscode;
}
-static void webSendHeader(const char* nodename, uint32_t httpdatalength, bool gohome = false)
+static void webSendHeader(const char* nodename, uint32_t httpdatalength, uint8_t gohome = 0)
{
{
char buffer[64];
@@ -219,8 +219,12 @@ static void webSendHeader(const char* nodename, uint32_t httpdatalength, bool go
uint32_t contentLength = strlen(haspDevice.get_version()); // version length
contentLength += sizeof(HTTP_DOCTYPE) - 1;
contentLength += sizeof(HTTP_HEADER) - 1 - 2 + strlen(nodename); // -2 for %s
- // contentLength += sizeof(HTTP_SCRIPT) - 1;
- if(gohome) contentLength += sizeof(HTTP_META_GO_BACK) - 1;
+ if(gohome > 0) {
+ snprintf_P(buffer, sizeof(buffer), HTTP_META_GO_BACK, gohome);
+ contentLength += strlen(buffer); // gohome
+ } else {
+ buffer[0] = '\0';
+ }
contentLength += sizeof(HTTP_HEADER_END) - 1;
contentLength += sizeof(HTTP_FOOTER) - 1;
contentLength += sizeof(HTTP_END) - 1;
@@ -235,6 +239,7 @@ static void webSendHeader(const char* nodename, uint32_t httpdatalength, bool go
#else
webServer.send(200, ("text/html"), HTTP_DOCTYPE); // 122
#endif
+ webServer.sendContent(buffer); // gohome
snprintf_P(buffer, sizeof(buffer), HTTP_HEADER, nodename);
webServer.sendContent(buffer); // 17-2+len
@@ -244,14 +249,12 @@ static void webSendHeader(const char* nodename, uint32_t httpdatalength, bool go
// webServer.sendContent(HTTP_SCRIPT); // 131
// webServer.sendContent(HTTP_STYLE); // 487
// webServer.sendContent(HASP_STYLE); // 145
- if(gohome) webServer.sendContent(HTTP_META_GO_BACK); // 47
- webServer.sendContent(HTTP_HEADER_END); // 80
+ webServer.sendContent(HTTP_HEADER_END); // 80
#else
// webServer.sendContent_P(HTTP_SCRIPT); // 131
// webServer.sendContent_P(HTTP_STYLE); // 487
// webServer.sendContent_P(HASP_STYLE); // 145
- if(gohome) webServer.sendContent_P(HTTP_META_GO_BACK); // 47
- webServer.sendContent_P(HTTP_HEADER_END); // 80
+ webServer.sendContent_P(HTTP_HEADER_END); // 80
#endif
}
@@ -334,7 +337,7 @@ static void webHandleRoot()
httpMessage += F("" D_HTTP_REBOOT "");
- webSendHeader(haspDevice.get_hostname(), httpMessage.length(), false);
+ webSendHeader(haspDevice.get_hostname(), httpMessage.length(), 0);
webServer.sendContent(httpMessage);
}
webSendFooter();
@@ -353,7 +356,7 @@ static void httpHandleReboot()
httpMessage += F("
");
httpMessage = F(D_DISPATCH_REBOOT);
- webSendHeader(haspDevice.get_hostname(), httpMessage.length(), true);
+ webSendHeader(haspDevice.get_hostname(), httpMessage.length(), 6);
webServer.sendContent(httpMessage);
}
webSendFooter();
@@ -415,7 +418,7 @@ static void webHandleScreenshot()
httpMessage += F("" D_HTTP_NEXT_PAGE "");
httpMessage += FPSTR(MAIN_MENU_BUTTON);
- webSendHeader(haspDevice.get_hostname(), httpMessage.length(), false);
+ webSendHeader(haspDevice.get_hostname(), httpMessage.length(), 0);
webServer.sendContent(httpMessage);
}
webSendFooter();
@@ -604,7 +607,7 @@ static void webHandleAbout()
httpMessage += FPSTR(MAIN_MENU_BUTTON);
httpMessage += "";
- webSendHeader(haspDevice.get_hostname(), httpMessage.length(), false);
+ webSendHeader(haspDevice.get_hostname(), httpMessage.length(), 0);
webServer.sendContent(httpMessage);
}
webSendFooter();
@@ -627,7 +630,7 @@ static void webHandleInfoJson()
htmldata += "";
htmldata += FPSTR(MAIN_MENU_BUTTON);
- webSendHeader(haspDevice.get_hostname(), htmldata.length(), false);
+ webSendHeader(haspDevice.get_hostname(), htmldata.length(), 0);
webServer.sendContent(htmldata);
}
webSendFooter();
@@ -702,16 +705,11 @@ static void webUpdateReboot()
httpMessage += F("
");
httpMessage += F("Upload complete. Rebooting device, please wait...");
- webSendHeader(haspDevice.get_hostname(), httpMessage.length(), true);
+ webSendHeader(haspDevice.get_hostname(), httpMessage.length(), 10);
webServer.sendContent(httpMessage);
}
webSendFooter();
-
- // Exectute Actions
- {
- // delay(250);
- dispatch_reboot(true); // Save the current config
- }
+ dispatch_reboot(true); // Save the current config
}
static void webHandleFirmwareUpload()
@@ -1084,7 +1082,7 @@ static void webHandleConfig()
httpMessage += F("" D_HTTP_FACTORY_RESET "");
httpMessage += FPSTR(MAIN_MENU_BUTTON);
- webSendHeader(haspDevice.get_hostname(), httpMessage.length(), false);
+ webSendHeader(haspDevice.get_hostname(), httpMessage.length(), 0);
webServer.sendContent(httpMessage);
}
webSendFooter();
@@ -1154,7 +1152,7 @@ static void webHandleMqttConfig()
add_form_button(httpMessage, F(D_BACK_ICON D_HTTP_CONFIGURATION), F("/config"));
httpMessage += "";
- webSendHeader(haspDevice.get_hostname(), httpMessage.length(), false);
+ webSendHeader(haspDevice.get_hostname(), httpMessage.length(), 0);
webServer.sendContent(httpMessage);
}
webSendFooter();
@@ -1259,7 +1257,7 @@ static void webHandleGuiConfig()
add_form_button(httpMessage, F(D_BACK_ICON D_HTTP_CONFIGURATION), F("/config"));
httpMessage += F("");
- webSendHeader(haspDevice.get_hostname(), httpMessage.length(), false);
+ webSendHeader(haspDevice.get_hostname(), httpMessage.length(), 0);
webServer.sendContent(httpMessage);
}
webSendFooter();
@@ -1324,7 +1322,7 @@ static void webHandleWifiConfig()
httpMessage += F("");
- webSendHeader(haspDevice.get_hostname(), httpMessage.length(), false);
+ webSendHeader(haspDevice.get_hostname(), httpMessage.length(), 0);
webServer.sendContent(httpMessage);
}
webSendFooter();
@@ -1374,7 +1372,7 @@ static void webHandleHttpConfig()
httpMessage += F("" D_HTTP_CONFIGURATION "");
httpMessage += F("");
- webSendHeader(haspDevice.get_hostname(), httpMessage.length(), false);
+ webSendHeader(haspDevice.get_hostname(), httpMessage.length(), 0);
webServer.sendContent(httpMessage);
}
webSendFooter();
@@ -1561,7 +1559,7 @@ static void webHandleGpioConfig()
add_form_button(httpMessage, F(D_BACK_ICON D_HTTP_CONFIGURATION), F("/config"));
- webSendHeader(haspDevice.get_hostname(), httpMessage.length(), false);
+ webSendHeader(haspDevice.get_hostname(), httpMessage.length(), 0);
webServer.sendContent(httpMessage);
}
webSendFooter();
@@ -1642,7 +1640,7 @@ static void webHandleGpioOutput()
httpMessage += PSTR("");
- webSendHeader(haspDevice.get_hostname(), httpMessage.length(), false);
+ webSendHeader(haspDevice.get_hostname(), httpMessage.length(), 0);
webServer.sendContent(httpMessage);
}
webSendFooter();
@@ -1733,7 +1731,7 @@ static void webHandleGpioInput()
httpMessage += PSTR("");
- webSendHeader(haspDevice.get_hostname(), httpMessage.length(), false);
+ webSendHeader(haspDevice.get_hostname(), httpMessage.length(), 0);
webServer.sendContent(httpMessage);
}
webSendFooter();
@@ -1836,7 +1834,7 @@ static void webHandleDebugConfig()
add_form_button(httpMessage, F(D_BACK_ICON D_HTTP_CONFIGURATION), F("/config"));
httpMessage += F("");
- webSendHeader(haspDevice.get_hostname(), httpMessage.length(), false);
+ webSendHeader(haspDevice.get_hostname(), httpMessage.length(), 0);
webServer.sendContent(httpMessage);
}
webSendFooter();
@@ -1968,7 +1966,7 @@ static void webHandleHaspConfig()
httpMessage += FPSTR(MAIN_MENU_BUTTON);
httpMessage += F("");
- webSendHeader(haspDevice.get_hostname(), httpMessage.length(), false);
+ webSendHeader(haspDevice.get_hostname(), httpMessage.length(), 0);
webServer.sendContent(httpMessage);
}
webSendFooter();
@@ -2032,7 +2030,7 @@ static void webHandleFirmware()
httpMessage += F("ESP update
Updating ESP firmware from: ");
httpMessage += url;
- webSendHeader(haspDevice.get_hostname(), httpMessage.length(), true);
+ webSendHeader(haspDevice.get_hostname(), httpMessage.length(), 30);
webServer.sendContent(httpMessage);
}
@@ -2080,38 +2078,12 @@ static void webHandleFirmware()
httpMessage += FPSTR(MAIN_MENU_BUTTON);
- webSendHeader(haspDevice.get_hostname(), httpMessage.length(), false);
+ webSendHeader(haspDevice.get_hostname(), httpMessage.length(), 0);
webServer.sendContent(httpMessage);
}
webSendFooter();
}
-////////////////////////////////////////////////////////////////////////////////////////////////////
-static void httpHandleEspFirmware()
-{ // http://plate01/espfirmware
- if(!httpIsAuthenticated(F("espfirmware"))) return;
- if(!webServer.hasArg(F("url"))) return;
-
- const char* url = webServer.arg(F("url")).c_str();
- {
- String httpMessage((char*)0);
- httpMessage.reserve(HTTP_PAGE_SIZE);
- httpMessage += F("");
- httpMessage += haspDevice.get_hostname();
- httpMessage += F("
");
-
- httpMessage += F("ESP update
Updating ESP firmware from: ");
- httpMessage += url;
-
- webSendHeader(haspDevice.get_hostname(), httpMessage.length(), true);
- webServer.sendContent(httpMessage);
- }
- webSendFooter();
-
- LOG_TRACE(TAG_HTTP, F("Updating ESP firmware from: %s"), url);
- dispatch_web_update(NULL, url, TAG_HTTP);
-}
-
////////////////////////////////////////////////////////////////////////////////////////////////////
#if HASP_USE_CONFIG > 0
@@ -2161,7 +2133,7 @@ static void httpHandleResetConfig()
add_form_button(httpMessage, F(D_BACK_ICON D_HTTP_CONFIGURATION), F("/config"));
}
- webSendHeader(haspDevice.get_hostname(), httpMessage.length(), resetConfirmed);
+ webSendHeader(haspDevice.get_hostname(), httpMessage.length(), resetConfirmed ? 10 : 0);
webServer.sendContent(httpMessage);
}
webSendFooter();
@@ -2287,7 +2259,6 @@ void httpSetup()
LOG_VERBOSE(TAG_HTTP, F("Total size: %s"), webServer.hostHeader().c_str());
},
webHandleFirmwareUpload);
- // webServer.on(F("/espfirmware"), httpHandleEspFirmware);
#endif
#if HASP_USE_WIFI > 0