Skip to content

Commit 12a5b5c

Browse files
committed
restart network stack at hostname change if no AP
1 parent 88b29df commit 12a5b5c

File tree

3 files changed

+26
-23
lines changed

3 files changed

+26
-23
lines changed

src/app_config.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -266,8 +266,11 @@ void config_changed(String name)
266266
if(name == "time_zone") {
267267
config_set_timezone(time_zone);
268268
} else if(name == "hostname") {
269-
net.mDNSStop();
270-
net.mDNSStart();
269+
// restart network if not in ap mode
270+
if (!net.isWifiModeApOnly()) {
271+
net.end();
272+
net.begin();
273+
}
271274
} else if(name == "flags") {
272275
divert.setMode((config_divert_enabled() && 1 == config_charge_mode()) ? DivertMode::Eco : DivertMode::Normal);
273276
if(mqtt_connected() != config_mqtt_enabled()) {

src/net_manager.cpp

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,14 @@ void NetManagerTask::begin()
7474
}
7575
}
7676

77+
void NetManagerTask::end()
78+
{
79+
if(NULL != _instance)
80+
{
81+
MicroTask.stopTask(_instance);
82+
}
83+
}
84+
7785
// -------------------------------------------------------------------
7886
// Start Access Point
7987
// Access point is used for wifi network selection
@@ -515,7 +523,15 @@ void NetManagerTask::setup()
515523
// Initially startup the netwrok to kick things off
516524
manageState();
517525

518-
mDNSStart();
526+
if (MDNS.begin(esp_hostname.c_str()))
527+
{
528+
MDNS.addService("http", "tcp", 80);
529+
MDNS.addService("openevse", "tcp", 80);
530+
MDNS.addServiceTxt("openevse", "tcp", "type", buildenv.c_str());
531+
MDNS.addServiceTxt("openevse", "tcp", "version", currentfirmware.c_str());
532+
MDNS.addServiceTxt("openevse", "tcp", "id", ESPAL.getLongId());
533+
534+
}
519535
}
520536

521537
unsigned long NetManagerTask::handleMessage()
@@ -790,20 +806,4 @@ bool NetManagerTask::isWiredConnected()
790806
#else
791807
return false;
792808
#endif
793-
}
794-
795-
void NetManagerTask::mDNSStart() {
796-
if (MDNS.begin(esp_hostname.c_str()))
797-
{
798-
MDNS.addService("http", "tcp", 80);
799-
MDNS.addService("openevse", "tcp", 80);
800-
MDNS.addServiceTxt("openevse", "tcp", "type", buildenv.c_str());
801-
MDNS.addServiceTxt("openevse", "tcp", "version", currentfirmware.c_str());
802-
MDNS.addServiceTxt("openevse", "tcp", "id", ESPAL.getLongId());
803-
804-
}
805-
}
806-
807-
void NetManagerTask::mDNSStop() {
808-
MDNS.end();
809-
}
809+
}

src/net_manager.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,8 @@ class NetManagerTask : public MicroTasks::Task
172172
NetManagerTask(LcdTask &lcd, LedManagerTask &led, TimeManager &time);
173173

174174
void begin();
175-
175+
void end();
176+
176177
void wifiScan();
177178

178179
void wifiStart();
@@ -183,8 +184,7 @@ class NetManagerTask : public MicroTasks::Task
183184
void wifiTurnOnAp();
184185

185186
void wifiScanNetworks(WiFiScanCompleteCallback callback);
186-
void mDNSStart();
187-
void mDNSStop();
187+
188188
bool isConnected();
189189
bool isWifiClientConnected();
190190
bool isWiredConnected();

0 commit comments

Comments
 (0)