mirror of
https://github.com/meshtastic/firmware.git
synced 2025-04-26 01:52:48 +00:00
Merge pull request #1053 from mc-hamster/StoreAndForward
Return an informative message if web content files are unavailable.
This commit is contained in:
commit
676e840b5b
@ -297,14 +297,21 @@ void handleStatic(HTTPRequest *req, HTTPResponse *res)
|
|||||||
file = SPIFFS.open(filenameGzip.c_str());
|
file = SPIFFS.open(filenameGzip.c_str());
|
||||||
res->setHeader("Content-Encoding", "gzip");
|
res->setHeader("Content-Encoding", "gzip");
|
||||||
if (!file.available()) {
|
if (!file.available()) {
|
||||||
DEBUG_MSG("File not available\n");
|
DEBUG_MSG("File not available - %s\n", filenameGzip.c_str());
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
has_set_content_type = true;
|
has_set_content_type = true;
|
||||||
filenameGzip = "/static/index.html.gz";
|
filenameGzip = "/static/index.html.gz";
|
||||||
file = SPIFFS.open(filenameGzip.c_str());
|
file = SPIFFS.open(filenameGzip.c_str());
|
||||||
res->setHeader("Content-Encoding", "gzip");
|
|
||||||
res->setHeader("Content-Type", "text/html");
|
res->setHeader("Content-Type", "text/html");
|
||||||
|
if (!file.available()) {
|
||||||
|
DEBUG_MSG("File not available - %s\n", filenameGzip.c_str());
|
||||||
|
res->println("Web server is running.<br><br>The content you are looking for can't be found. Please see: <a "
|
||||||
|
"href=https://meshtastic.org/docs/getting-started/faq#wifi--web-browser>FAQ</a>.<br><br><a "
|
||||||
|
"href=/json/report>stats</a>");
|
||||||
|
} else {
|
||||||
|
res->setHeader("Content-Encoding", "gzip");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
res->setHeader("Content-Length", httpsserver::intToString(file.size()));
|
res->setHeader("Content-Length", httpsserver::intToString(file.size()));
|
||||||
@ -576,6 +583,7 @@ void handleReport(HTTPRequest *req, HTTPResponse *res)
|
|||||||
res->println("},");
|
res->println("},");
|
||||||
|
|
||||||
res->println("\"device\": {");
|
res->println("\"device\": {");
|
||||||
|
res->printf("\"channel_utilization\": %3.2f%,\n", airTime->channelUtilizationPercent());
|
||||||
res->printf("\"reboot_counter\": %d\n", myNodeInfo.reboot_count);
|
res->printf("\"reboot_counter\": %d\n", myNodeInfo.reboot_count);
|
||||||
res->println("},");
|
res->println("},");
|
||||||
|
|
||||||
|
@ -3,9 +3,9 @@
|
|||||||
#include "concurrency/Periodic.h"
|
#include "concurrency/Periodic.h"
|
||||||
#include "configuration.h"
|
#include "configuration.h"
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
#include "mqtt/MQTT.h"
|
|
||||||
#include "mesh/http/WebServer.h"
|
#include "mesh/http/WebServer.h"
|
||||||
#include "mesh/wifi/WiFiServerAPI.h"
|
#include "mesh/wifi/WiFiServerAPI.h"
|
||||||
|
#include "mqtt/MQTT.h"
|
||||||
#include "target_specific.h"
|
#include "target_specific.h"
|
||||||
#include <DNSServer.h>
|
#include <DNSServer.h>
|
||||||
#include <ESPmDNS.h>
|
#include <ESPmDNS.h>
|
||||||
@ -132,30 +132,30 @@ static void onNetworkConnected()
|
|||||||
initApiServer();
|
initApiServer();
|
||||||
|
|
||||||
APStartupComplete = true;
|
APStartupComplete = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FIXME this is kinda yucky, instead we should just have an observable for 'wifireconnected'
|
// FIXME this is kinda yucky, instead we should just have an observable for 'wifireconnected'
|
||||||
if(mqtt)
|
if (mqtt)
|
||||||
mqtt->reconnect();
|
mqtt->reconnect();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Startup WiFi
|
// Startup WiFi
|
||||||
bool initWifi(bool forceSoftAP)
|
bool initWifi(bool forceSoftAP)
|
||||||
{
|
{
|
||||||
if (forceSoftAP) {
|
|
||||||
DEBUG_MSG("WiFi ... Forced AP Mode\n");
|
|
||||||
} else if (radioConfig.preferences.wifi_ap_mode) {
|
|
||||||
DEBUG_MSG("WiFi ... AP Mode\n");
|
|
||||||
} else {
|
|
||||||
DEBUG_MSG("WiFi ... Client Mode\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
forcedSoftAP = forceSoftAP;
|
forcedSoftAP = forceSoftAP;
|
||||||
|
|
||||||
if ((radioConfig.has_preferences && radioConfig.preferences.wifi_ssid[0]) || forceSoftAP) {
|
if ((radioConfig.has_preferences && radioConfig.preferences.wifi_ssid[0]) || forceSoftAP) {
|
||||||
const char *wifiName = radioConfig.preferences.wifi_ssid;
|
const char *wifiName = radioConfig.preferences.wifi_ssid;
|
||||||
const char *wifiPsw = radioConfig.preferences.wifi_password;
|
const char *wifiPsw = radioConfig.preferences.wifi_password;
|
||||||
|
|
||||||
|
if (forceSoftAP) {
|
||||||
|
DEBUG_MSG("WiFi ... Forced AP Mode\n");
|
||||||
|
} else if (radioConfig.preferences.wifi_ap_mode) {
|
||||||
|
DEBUG_MSG("WiFi ... AP Mode\n");
|
||||||
|
} else {
|
||||||
|
DEBUG_MSG("WiFi ... Client Mode\n");
|
||||||
|
}
|
||||||
|
|
||||||
createSSLCert();
|
createSSLCert();
|
||||||
|
|
||||||
if (!*wifiPsw) // Treat empty password as no password
|
if (!*wifiPsw) // Treat empty password as no password
|
||||||
@ -176,7 +176,6 @@ bool initWifi(bool forceSoftAP)
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
DEBUG_MSG("Starting WIFI AP: ssid=%s, ok=%d\n", wifiName, WiFi.softAP(wifiName, wifiPsw));
|
DEBUG_MSG("Starting WIFI AP: ssid=%s, ok=%d\n", wifiName, WiFi.softAP(wifiName, wifiPsw));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
WiFi.softAPConfig(apIP, apIP, IPAddress(255, 255, 255, 0));
|
WiFi.softAPConfig(apIP, apIP, IPAddress(255, 255, 255, 0));
|
||||||
|
Loading…
Reference in New Issue
Block a user