Fix syslog dependency on ESP8266

This commit is contained in:
fvanroie 2020-11-10 10:43:13 +01:00
parent aa244d5cf2
commit fe50ad1595
2 changed files with 222 additions and 27 deletions

View File

@ -424,6 +424,8 @@ static void debugPrintTag(uint8_t tag, Print * _logOutput)
void debugPrintPrefix(uint8_t tag, int level, Print * _logOutput)
{
#if HASP_USE_SYSLOG > 0
if(_logOutput == syslogClient) {
syslogClient->beginPacket();
@ -440,7 +442,7 @@ void debugPrintPrefix(uint8_t tag, int level, Print * _logOutput)
syslogClient->print(mqttGetNodename());
syslogClient->print(' ');
syslogClient->print(syslogAppName);
debugPrintTag(tag, _logOutput);
if(debugSyslogProtocol == SYSLOG_PROTO_IETF) {
syslogClient->print(F(" - - - \xEF\xBB\xBF")); // include UTF-8 BOM
@ -448,6 +450,7 @@ void debugPrintPrefix(uint8_t tag, int level, Print * _logOutput)
syslogClient->print(F(": "));
}
}
#endif
debugPrintTimestamp(level, _logOutput);
debugPrintHaspMemory(level, _logOutput);
@ -468,9 +471,11 @@ void debugPrintSuffix(uint8_t tag, int level, Print * _logOutput)
_logOutput->println();
if(debugAnsiCodes) _logOutput->print(F(TERM_COLOR_MAGENTA));
#if HASP_USE_SYSLOG > 0
if(_logOutput == syslogClient && strlen(debugSyslogHost) > 0) {
syslogClient->endPacket();
}
#endif
// syslogSend(level, debugOutput);
}

View File

@ -16,6 +16,7 @@
#include <Wifi.h>
#elif defined(ARDUINO_ARCH_ESP8266)
#include <ESP8266WiFi.h>
#include "user_interface.h" // Wifi Reasons
static WiFiEventHandler gotIpEventHandler, disconnectedEventHandler;
@ -76,7 +77,194 @@ void wifiDisconnected(const char * ssid, uint8_t reason)
Log.error(TAG_WIFI, F("Retries exceed %u: Rebooting..."), wifiReconnectCounter);
dispatchReboot(false);
}
Log.warning(TAG_WIFI,F("Disconnected from %s (Reason: %d)"), ssid, reason);
char buffer[128];
switch(reason) {
#if defined(ARDUINO_ARCH_ESP8266)
case REASON_UNSPECIFIED:
snprintf_P(buffer, sizeof(buffer), PSTR("unspecified"));
break;
case REASON_AUTH_EXPIRE:
snprintf_P(buffer, sizeof(buffer), PSTR("authentication expired"));
break;
case REASON_AUTH_LEAVE:
snprintf_P(buffer, sizeof(buffer), PSTR("authentication leave"));
break;
case REASON_ASSOC_EXPIRE:
snprintf_P(buffer, sizeof(buffer), PSTR("association expired"));
break;
case REASON_ASSOC_TOOMANY:
snprintf_P(buffer, sizeof(buffer), PSTR("too many associations"));
break;
case REASON_NOT_AUTHED:
snprintf_P(buffer, sizeof(buffer), PSTR("not authenticated"));
break;
case REASON_NOT_ASSOCED:
snprintf_P(buffer, sizeof(buffer), PSTR("not associated"));
break;
case REASON_ASSOC_LEAVE:
snprintf_P(buffer, sizeof(buffer), PSTR("associaction leave"));
break;
case REASON_ASSOC_NOT_AUTHED:
snprintf_P(buffer, sizeof(buffer), PSTR("association not authenticated"));
break;
case REASON_DISASSOC_PWRCAP_BAD:
snprintf_P(buffer, sizeof(buffer), PSTR("bad powercap"));
break;
case REASON_DISASSOC_SUPCHAN_BAD:
snprintf_P(buffer, sizeof(buffer), PSTR("bad supchan"));
break;
case REASON_IE_INVALID:
snprintf_P(buffer, sizeof(buffer), PSTR("ie invalid"));
break;
case REASON_MIC_FAILURE:
snprintf_P(buffer, sizeof(buffer), PSTR("mic failure"));
break;
case REASON_4WAY_HANDSHAKE_TIMEOUT:
snprintf_P(buffer, sizeof(buffer), PSTR("handshake timeout"));
break;
case REASON_GROUP_KEY_UPDATE_TIMEOUT:
snprintf_P(buffer, sizeof(buffer), PSTR("key update timeout"));
break;
case REASON_IE_IN_4WAY_DIFFERS:
snprintf_P(buffer, sizeof(buffer), PSTR("ie handshake differs"));
break;
case REASON_GROUP_CIPHER_INVALID:
snprintf_P(buffer, sizeof(buffer), PSTR("group cipher invalid"));
break;
case REASON_PAIRWISE_CIPHER_INVALID:
snprintf_P(buffer, sizeof(buffer), PSTR("pairwise cipher invalid"));
break;
case REASON_AKMP_INVALID:
snprintf_P(buffer, sizeof(buffer), PSTR("akmp invalid"));
break;
case REASON_UNSUPP_RSN_IE_VERSION:
snprintf_P(buffer, sizeof(buffer), PSTR("bad powercap"));
break;
case REASON_INVALID_RSN_IE_CAP:
snprintf_P(buffer, sizeof(buffer), PSTR("INVALID_RSN_IE_CAP"));
break;
case REASON_802_1X_AUTH_FAILED:
snprintf_P(buffer, sizeof(buffer), PSTR("802.1x auth failed"));
break;
case REASON_CIPHER_SUITE_REJECTED:
snprintf_P(buffer, sizeof(buffer), PSTR("cipher suite rejected"));
break;
case REASON_BEACON_TIMEOUT:
snprintf_P(buffer, sizeof(buffer), PSTR("beacon timeout"));
break;
case REASON_NO_AP_FOUND:
snprintf_P(buffer, sizeof(buffer), PSTR("no AP found"));
break;
case REASON_AUTH_FAIL:
snprintf_P(buffer, sizeof(buffer), PSTR("auth failed"));
break;
case REASON_ASSOC_FAIL:
snprintf_P(buffer, sizeof(buffer), PSTR("assoc failed"));
break;
case REASON_HANDSHAKE_TIMEOUT:
snprintf_P(buffer, sizeof(buffer), PSTR("handshake timeout"));
break;
#endif
#if defined(ARDUINO_ARCH_ESP32)
case WIFI_REASON_UNSPECIFIED:
snprintf_P(buffer, sizeof(buffer), PSTR("unspecified"));
break;
case WIFI_REASON_AUTH_EXPIRE:
snprintf_P(buffer, sizeof(buffer), PSTR("authentication expired"));
break;
case WIFI_REASON_AUTH_LEAVE:
snprintf_P(buffer, sizeof(buffer), PSTR("authentication leave"));
break;
case WIFI_REASON_ASSOC_EXPIRE:
snprintf_P(buffer, sizeof(buffer), PSTR("association expired"));
break;
case WIFI_REASON_ASSOC_TOOMANY:
snprintf_P(buffer, sizeof(buffer), PSTR("too many associations"));
break;
case WIFI_REASON_NOT_AUTHED:
snprintf_P(buffer, sizeof(buffer), PSTR("not authenticated"));
break;
case WIFI_REASON_NOT_ASSOCED:
snprintf_P(buffer, sizeof(buffer), PSTR("not associated"));
break;
case WIFI_REASON_ASSOC_LEAVE:
snprintf_P(buffer, sizeof(buffer), PSTR("associaction leave"));
break;
case WIFI_REASON_ASSOC_NOT_AUTHED:
snprintf_P(buffer, sizeof(buffer), PSTR("association not authenticated"));
break;
case WIFI_REASON_DISASSOC_PWRCAP_BAD:
snprintf_P(buffer, sizeof(buffer), PSTR("bad powercap"));
break;
case WIFI_REASON_DISASSOC_SUPCHAN_BAD:
snprintf_P(buffer, sizeof(buffer), PSTR("bad supchan"));
break;
case WIFI_REASON_IE_INVALID:
snprintf_P(buffer, sizeof(buffer), PSTR("ie invalid"));
break;
case WIFI_REASON_MIC_FAILURE:
snprintf_P(buffer, sizeof(buffer), PSTR("mic failure"));
break;
case WIFI_REASON_4WAY_HANDSHAKE_TIMEOUT:
snprintf_P(buffer, sizeof(buffer), PSTR("handshake timeout"));
break;
case WIFI_REASON_GROUP_KEY_UPDATE_TIMEOUT:
snprintf_P(buffer, sizeof(buffer), PSTR("key update timeout"));
break;
case WIFI_REASON_IE_IN_4WAY_DIFFERS:
snprintf_P(buffer, sizeof(buffer), PSTR("ie handshake differs"));
break;
case WIFI_REASON_GROUP_CIPHER_INVALID:
snprintf_P(buffer, sizeof(buffer), PSTR("group cipher invalid"));
break;
case WIFI_REASON_PAIRWISE_CIPHER_INVALID:
snprintf_P(buffer, sizeof(buffer), PSTR("pairwise cipher invalid"));
break;
case WIFI_REASON_AKMP_INVALID:
snprintf_P(buffer, sizeof(buffer), PSTR("akmp invalid"));
break;
case WIFI_REASON_UNSUPP_RSN_IE_VERSION:
snprintf_P(buffer, sizeof(buffer), PSTR("bad powercap"));
break;
case WIFI_REASON_INVALID_RSN_IE_CAP:
snprintf_P(buffer, sizeof(buffer), PSTR("INVALID_RSN_IE_CAP"));
break;
case WIFI_REASON_802_1X_AUTH_FAILED:
snprintf_P(buffer, sizeof(buffer), PSTR("802.1x auth failed"));
break;
case WIFI_REASON_CIPHER_SUITE_REJECTED:
snprintf_P(buffer, sizeof(buffer), PSTR("cipher suite rejected"));
break;
case WIFI_REASON_BEACON_TIMEOUT:
snprintf_P(buffer, sizeof(buffer), PSTR("beacon timeout"));
break;
case WIFI_REASON_NO_AP_FOUND:
snprintf_P(buffer, sizeof(buffer), PSTR("no AP found"));
break;
case WIFI_REASON_AUTH_FAIL:
snprintf_P(buffer, sizeof(buffer), PSTR("auth powercap"));
break;
case WIFI_REASON_ASSOC_FAIL:
snprintf_P(buffer, sizeof(buffer), PSTR("assoc failed"));
break;
case WIFI_REASON_HANDSHAKE_TIMEOUT:
snprintf_P(buffer, sizeof(buffer), PSTR("handshake failed"));
break;
case WIFI_REASON_CONNECTION_FAIL:
snprintf_P(buffer, sizeof(buffer), PSTR("connection failed"));
break;
#endif
default:
snprintf_P(buffer, sizeof(buffer), PSTR("unknown"));
}
Log.warning(TAG_WIFI, F("Disconnected from %s (Reason: %s [%d])"), ssid, buffer, reason);
}
void wifiSsidConnected(const char * ssid)
@ -183,13 +371,15 @@ void wifiSetup()
if(WiFiSpi.status() == WL_NO_SHIELD) {
Log.notice(TAG_WIFI, F("WiFi shield not present"));
// don't continue:
while (true);
while(true)
;
}
if(!WiFiSpi.checkProtocolVersion()) {
Log.notice(TAG_WIFI, F("Protocol version mismatch. Please upgrade the firmware"));
// don't continue:
while (true);
while(true)
;
}
// attempt to connect to Wifi network