Drop previous client if new one is connecting

pull/25/head
sh123 2021-10-21 21:48:49 +03:00
rodzic 32b68cc237
commit fc1ce59948
1 zmienionych plików z 15 dodań i 7 usunięć

Wyświetl plik

@ -558,14 +558,17 @@ void Service::attachKissNetworkClient()
isKissConn_ = false; isKissConn_ = false;
kissConn_.stop(); kissConn_.stop();
} }
// not connected, new client connected }
} else { WiFiClient wifiClient = kissServer_->available();
WiFiClient wifiClient = kissServer_->available(); // new client connected
if (wifiClient && wifiClient.connected()) { if (wifiClient && wifiClient.connected()) {
Serial.println("New KISS TCP/IP client connected"); // drop off current one
kissConn_ = wifiClient; if (isKissConn_) {
isKissConn_ = true; kissConn_.stop();
} }
Serial.println("New KISS TCP/IP client connected");
kissConn_ = wifiClient;
isKissConn_ = true;
} }
} }
@ -601,6 +604,11 @@ bool Service::onSerialRx(byte *b)
if (isKissConn_) { if (isKissConn_) {
rxResult = kissConn_.read(); rxResult = kissConn_.read();
// client dropped off
if (rxResult == -1) {
kissConn_.stop();
isKissConn_ = false;
}
} }
else { else {
rxResult = config_.BtEnableBle rxResult = config_.BtEnableBle