Skip to content

Commit cf2a20f

Browse files
committed
Fix crash on startup when not configured - ESP32
1 parent 142235c commit cf2a20f

File tree

1 file changed

+52
-43
lines changed

1 file changed

+52
-43
lines changed

src/main.cpp

Lines changed: 52 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
#endif
1111

1212
#include <FS.h>
13-
13+
#include <esp_wifi.h>
1414
#include <SecuritySettingsService.h>
1515
#include <WiFiSettingsService.h>
1616
#include <APSettingsService.h>
@@ -41,49 +41,58 @@ APStatus apStatus = APStatus(&server, &securitySettingsService);
4141
SystemStatus systemStatus = SystemStatus(&server, &securitySettingsService);;
4242

4343
void setup() {
44-
// Disable wifi config persistance and auto reconnect
45-
WiFi.persistent(false);
46-
WiFi.setAutoReconnect(false);
47-
48-
Serial.begin(SERIAL_BAUD_RATE);
49-
SPIFFS.begin();
50-
51-
// start security settings service first
52-
securitySettingsService.begin();
53-
54-
// start services
55-
ntpSettingsService.begin();
56-
otaSettingsService.begin();
57-
apSettingsService.begin();
58-
wifiSettingsService.begin();
59-
60-
// Serving static resources from /www/
61-
server.serveStatic("/js/", SPIFFS, "/www/js/");
62-
server.serveStatic("/css/", SPIFFS, "/www/css/");
63-
server.serveStatic("/fonts/", SPIFFS, "/www/fonts/");
64-
server.serveStatic("/app/", SPIFFS, "/www/app/");
65-
server.serveStatic("/favicon.ico", SPIFFS, "/www/favicon.ico");
66-
67-
// Serving all other get requests with "/www/index.htm"
68-
// OPTIONS get a straight up 200 response
69-
server.onNotFound([](AsyncWebServerRequest *request) {
70-
if (request->method() == HTTP_GET) {
71-
request->send(SPIFFS, "/www/index.html");
72-
} else if (request->method() == HTTP_OPTIONS) {
73-
request->send(200);
74-
} else {
75-
request->send(404);
76-
}
77-
});
78-
79-
// Disable CORS if required
80-
#if defined(ENABLE_CORS)
81-
DefaultHeaders::Instance().addHeader("Access-Control-Allow-Origin", CORS_ORIGIN);
82-
DefaultHeaders::Instance().addHeader("Access-Control-Allow-Headers", "Accept, Content-Type, Authorization");
83-
DefaultHeaders::Instance().addHeader("Access-Control-Allow-Credentials", "true");
84-
#endif
44+
// Disable wifi config persistance and auto reconnect
45+
WiFi.persistent(false);
46+
WiFi.setAutoReconnect(false);
47+
48+
#if defined(ESP_PLATFORM)
49+
// Init the wifi driver on ESP32
50+
wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
51+
esp_err_t err = esp_wifi_init(&cfg);
52+
if(err){
53+
log_e("esp_wifi_init %d", err);
54+
}
55+
#endif
8556

86-
server.begin();
57+
Serial.begin(SERIAL_BAUD_RATE);
58+
SPIFFS.begin();
59+
60+
// Start security settings service first
61+
securitySettingsService.begin();
62+
63+
// Start services
64+
ntpSettingsService.begin();
65+
otaSettingsService.begin();
66+
apSettingsService.begin();
67+
wifiSettingsService.begin();
68+
69+
// Serving static resources from /www/
70+
server.serveStatic("/js/", SPIFFS, "/www/js/");
71+
server.serveStatic("/css/", SPIFFS, "/www/css/");
72+
server.serveStatic("/fonts/", SPIFFS, "/www/fonts/");
73+
server.serveStatic("/app/", SPIFFS, "/www/app/");
74+
server.serveStatic("/favicon.ico", SPIFFS, "/www/favicon.ico");
75+
76+
// Serving all other get requests with "/www/index.htm"
77+
// OPTIONS get a straight up 200 response
78+
server.onNotFound([](AsyncWebServerRequest *request) {
79+
if (request->method() == HTTP_GET) {
80+
request->send(SPIFFS, "/www/index.html");
81+
} else if (request->method() == HTTP_OPTIONS) {
82+
request->send(200);
83+
} else {
84+
request->send(404);
85+
}
86+
});
87+
88+
// Disable CORS if required
89+
#if defined(ENABLE_CORS)
90+
DefaultHeaders::Instance().addHeader("Access-Control-Allow-Origin", CORS_ORIGIN);
91+
DefaultHeaders::Instance().addHeader("Access-Control-Allow-Headers", "Accept, Content-Type, Authorization");
92+
DefaultHeaders::Instance().addHeader("Access-Control-Allow-Credentials", "true");
93+
#endif
94+
95+
server.begin();
8796
}
8897

8998
void loop() {

0 commit comments

Comments
 (0)