diff --git a/.gitignore b/.gitignore index 58273a4e..63ae6684 100644 --- a/.gitignore +++ b/.gitignore @@ -7,8 +7,4 @@ .vscode .pio platformio-user.ini -<<<<<<< HEAD /src/version.h -======= -src/version.h ->>>>>>> master diff --git a/lib/HanConfigAp/src/HanConfigAp.cpp b/lib/HanConfigAp/src/HanConfigAp.cpp index 9c9fa182..8cfeef96 100644 --- a/lib/HanConfigAp/src/HanConfigAp.cpp +++ b/lib/HanConfigAp/src/HanConfigAp.cpp @@ -73,189 +73,6 @@ bool HanConfigAp::loop() { return isActivated; } -<<<<<<< HEAD -======= -/** Handle root or redirect to captive portal */ -void HanConfigAp::handleRoot() { - println("Serving / over http..."); - - configuration *config = new configuration(); - config->load(); - - String html = String((const __FlashStringHelper*) CONFIG_HTML); - - if(config->hasConfig()) { - bool access = !config->isAuth(); - if(config->isAuth() && server.hasHeader("Authorization")) { - String expectedAuth = String(config->authUser) + ":" + String(config->authPass); - - String providedPwd = server.header("Authorization"); - providedPwd.replace("Basic ", ""); - char inputString[providedPwd.length()]; - providedPwd.toCharArray(inputString, providedPwd.length()+1); - - int inputStringLength = sizeof(inputString); - int decodedLength = Base64.decodedLength(inputString, inputStringLength); - char decodedString[decodedLength]; - Base64.decode(decodedString, inputString, inputStringLength); - print("Received auth: "); - println(decodedString); - access = String(decodedString).equals(expectedAuth); - } - - if(!access) { - server.sendHeader("WWW-Authenticate", "Basic realm=\"Secure Area\""); - server.send(401, "text/html", ""); - } else { - server.sendHeader("Cache-Control", "no-cache, no-store, must-revalidate"); - server.sendHeader("Pragma", "no-cache"); - server.sendHeader("Expires", "-1"); - - html.replace("${config.ssid}", config->ssid); - html.replace("${config.ssidPassword}", config->ssidPassword); - switch (config->meterType) { - case 1: - html.replace("${config.meterType0}", ""); - html.replace("${config.meterType1}", "selected"); - html.replace("${config.meterType2}", ""); - html.replace("${config.meterType3}", ""); - break; - case 2: - html.replace("${config.meterType0}", ""); - html.replace("${config.meterType1}", ""); - html.replace("${config.meterType2}", "selected"); - html.replace("${config.meterType3}", ""); - break; - case 3: - html.replace("${config.meterType0}", ""); - html.replace("${config.meterType1}", ""); - html.replace("${config.meterType2}", ""); - html.replace("${config.meterType3}", "selected"); - break; - default: - html.replace("${config.meterType0}", "selected"); - html.replace("${config.meterType1}", ""); - html.replace("${config.meterType2}", ""); - html.replace("${config.meterType3}", ""); - } - html.replace("${config.mqtt}", config->mqtt); - html.replace("${config.mqttPort}", String(config->mqttPort)); - html.replace("${config.mqttClientID}", config->mqttClientID); - html.replace("${config.mqttPublishTopic}", config->mqttPublishTopic); - html.replace("${config.mqttSubscribeTopic}", config->mqttSubscribeTopic); - html.replace("${config.mqttUser}", config->mqttUser); - html.replace("${config.mqttPass}", config->mqttPass); - html.replace("${config.authUser}", config->authUser); - html.replace("${config.authPass}", config->authPass); - } - - } else { - server.sendHeader("Cache-Control", "no-cache, no-store, must-revalidate"); - server.sendHeader("Pragma", "no-cache"); - server.sendHeader("Expires", "-1"); - - html.replace("${config.ssid}", ""); - html.replace("${config.ssidPassword}", ""); - html.replace("${config.meterType0}", "selected"); - html.replace("${config.meterType1}", ""); - html.replace("${config.meterType2}", ""); - html.replace("${config.meterType3}", ""); - html.replace("${config.mqtt}", ""); - html.replace("${config.mqttPort}", "1883"); - html.replace("${config.mqttClientID}", ""); - html.replace("${config.mqttPublishTopic}", ""); - html.replace("${config.mqttSubscribeTopic}", ""); - html.replace("${config.mqttUser}", ""); - html.replace("${config.mqttPass}", ""); - html.replace("${config.authUser}", ""); - html.replace("${config.authPass}", ""); - } - server.send(200, "text/html", html); -} - -void HanConfigAp::handleStyle() { - println("Serving /style.css over http..."); - - String css = String((const __FlashStringHelper*) STYLE_CSS); - - server.sendHeader("Cache-Control", "no-cache, no-store, must-revalidate"); - server.sendHeader("Pragma", "no-cache"); - server.sendHeader("Expires", "-1"); - server.send(200, "text/css", css); -} - -void HanConfigAp::handleSave() { - configuration *config = new configuration(); - - String temp; - - temp = server.arg("ssid"); - config->ssid = new char[temp.length() + 1]; - temp.toCharArray(config->ssid, temp.length() + 1, 0); - - temp = server.arg("ssidPassword"); - config->ssidPassword = new char[temp.length() + 1]; - temp.toCharArray(config->ssidPassword, temp.length() + 1, 0); - - config->meterType = (byte)server.arg("meterType").toInt(); - - temp = server.arg("mqtt"); - config->mqtt = new char[temp.length() + 1]; - temp.toCharArray(config->mqtt, temp.length() + 1, 0); - - config->mqttPort = (int)server.arg("mqttPort").toInt(); - - temp = server.arg("mqttClientID"); - config->mqttClientID = new char[temp.length() + 1]; - temp.toCharArray(config->mqttClientID, temp.length() + 1, 0); - - temp = server.arg("mqttPublishTopic"); - config->mqttPublishTopic = new char[temp.length() + 1]; - temp.toCharArray(config->mqttPublishTopic, temp.length() + 1, 0); - - temp = server.arg("mqttSubscribeTopic"); - config->mqttSubscribeTopic = new char[temp.length() + 1]; - temp.toCharArray(config->mqttSubscribeTopic, temp.length() + 1, 0); - - temp = server.arg("mqttUser"); - config->mqttUser = new char[temp.length() + 1]; - temp.toCharArray(config->mqttUser, temp.length() + 1, 0); - - temp = server.arg("mqttPass"); - config->mqttPass = new char[temp.length() + 1]; - temp.toCharArray(config->mqttPass, temp.length() + 1, 0); - - temp = server.arg("authUser"); - config->authUser = new char[temp.length() + 1]; - temp.toCharArray(config->authUser, temp.length() + 1, 0); - - temp = server.arg("authPass"); - config->authPass = new char[temp.length() + 1]; - temp.toCharArray(config->authPass, temp.length() + 1, 0); - - println("Saving configuration now..."); - - if (HanConfigAp::debugger) config->print(HanConfigAp::debugger); - if (config->save()) - { - println("Successfully saved. Will reboot now."); - String html = "

Successfully Saved!

Device is restarting now...

"; - server.send(200, "text/html", html); -#if defined(ESP8266) - ESP.reset(); -#elif defined(ESP32) - ESP.restart(); -#endif - } - else - { - println("Error saving configuration"); - String html = "

Error saving configuration!

"; - server.send(500, "text/html", html); - } -} - ->>>>>>> master size_t HanConfigAp::print(const char* text) { if (debugger) debugger->print(text);