diff --git a/src/hasp/hasp_dispatch.cpp b/src/hasp/hasp_dispatch.cpp index 353074f4..1d212e0a 100644 --- a/src/hasp/hasp_dispatch.cpp +++ b/src/hasp/hasp_dispatch.cpp @@ -258,7 +258,7 @@ static void dispatch_output(const char* topic, const char* payload) } // objectattribute=value -void dispatch_command(const char* topic, const char* payload, bool update) +void dispatch_command(const char* topic, const char* payload, bool update, uint8_t source) { /* ================================= Standard payload commands ======================================= */ @@ -268,7 +268,7 @@ void dispatch_command(const char* topic, const char* payload, bool update) for(int i = 0; i < nCommands; i++) { if(!strcasecmp_P(topic, commands[i].p_cmdstr)) { // LOG_DEBUG(TAG_MSGR, F("Command %d found in array !!!"), i); - commands[i].func(topic, payload); /* execute command */ + commands[i].func(topic, payload, source); /* execute command */ return; } } @@ -316,32 +316,32 @@ void dispatch_command(const char* topic, const char* payload, bool update) } // Strip command/config prefix from the topic and process the payload -void dispatch_topic_payload(const char* topic, const char* payload, bool update) +void dispatch_topic_payload(const char* topic, const char* payload, bool update, uint8_t source) { if(!strcmp_P(topic, PSTR(MQTT_TOPIC_COMMAND))) { - dispatch_text_line((char*)payload); + dispatch_text_line((char*)payload, source); return; } if(topic == strstr_P(topic, PSTR(MQTT_TOPIC_COMMAND "/"))) { // startsWith command/ topic += 8u; - dispatch_command(topic, (char*)payload, update); + dispatch_command(topic, (char*)payload, update, source); return; } #if HASP_USE_CONFIG > 0 if(topic == strstr_P(topic, PSTR("config/"))) { // startsWith config/ topic += 7u; - dispatch_config(topic, (char*)payload); + dispatch_config(topic, (char*)payload, source); return; } #endif - dispatch_command(topic, (char*)payload, update); // dispatch as is + dispatch_command(topic, (char*)payload, update, source); // dispatch as is } // Parse one line of text and execute the command -void dispatch_text_line(const char* cmnd) +void dispatch_text_line(const char* cmnd, uint8_t source) { if(cmnd[0] == '/' && cmnd[1] == '/') return; // comment @@ -350,16 +350,16 @@ void dispatch_text_line(const char* cmnd) break; // comment case '{': - dispatch_command("jsonl", cmnd, false); + dispatch_command("jsonl", cmnd, false, source); break; case '[': - dispatch_command("json", cmnd, false); + dispatch_command("json", cmnd, false, source); break; // comment case ' ': while(cmnd[0] == ' ') cmnd++; // skip leading spaces - dispatch_text_line(cmnd); + dispatch_text_line(cmnd, source); break; default: { @@ -392,11 +392,11 @@ void dispatch_text_line(const char* cmnd) // topic is before '=', payload is after '=' position update |= strlen(cmnd + pos + 1) > 0; // equal sign OR space with payload LOG_TRACE(TAG_MSGR, update ? F("%s=%s") : F("%s%s"), topic, cmnd + pos + 1); - dispatch_topic_payload(topic, cmnd + pos + 1, update); + dispatch_topic_payload(topic, cmnd + pos + 1, update, source); } else { char empty_payload[1] = {0}; LOG_TRACE(TAG_MSGR, cmnd); - dispatch_topic_payload(cmnd, empty_payload, false); + dispatch_topic_payload(cmnd, empty_payload, false, source); } } } @@ -416,7 +416,7 @@ void dispatch_text_line(const char* cmnd) #if HASP_USE_CONFIG > 0 // Get or Set a part of the config.json file -void dispatch_config(const char* topic, const char* payload) +void dispatch_config(const char* topic, const char* payload, uint8_t source) { DynamicJsonDocument doc(128 * 3); char buffer[128 * 3]; @@ -536,7 +536,7 @@ void dispatch_normalized_group_values(hasp_update_value_t& value) /********************************************** Native Commands ****************************************/ -void dispatch_screenshot(const char*, const char* filename) +void dispatch_screenshot(const char*, const char* filename, uint8_t source) { #if HASP_USE_SPIFFS > 0 || HASP_USE_LITTLEFS > 0 @@ -555,7 +555,7 @@ void dispatch_screenshot(const char*, const char* filename) #endif } -void dispatch_parse_json(const char*, const char* payload) +void dispatch_parse_json(const char*, const char* payload, uint8_t source) { // Parse an incoming JSON array into individual commands /* if(strPayload.endsWith(",]")) { // Trailing null array elements are an artifact of older Home Assistant automations @@ -578,7 +578,7 @@ void dispatch_parse_json(const char*, const char* payload) JsonArray arr = json.as(); // guiStop(); for(JsonVariant command : arr) { - dispatch_text_line(command.as()); + dispatch_text_line(command.as(), source); } // guiStart(); } else if(json.is()) { // handle json as a jsonl @@ -590,11 +590,11 @@ void dispatch_parse_json(const char*, const char* payload) // dispatch_text_line(json.as().c_str()); // #else } else if(json.is()) { // handle json as a single command - dispatch_text_line(json.as().c_str()); + dispatch_text_line(json.as().c_str(), source); // #endif } else if(json.is()) { // handle json as a single command - dispatch_text_line(json.as()); + dispatch_text_line(json.as(), source); // } else if(json.is()) { // handle json as a single command // dispatch_text_line(json.as()); @@ -636,7 +636,7 @@ void dispatch_parse_jsonl(std::istream& stream) } } -void dispatch_parse_jsonl(const char*, const char* payload) +void dispatch_parse_jsonl(const char*, const char* payload, uint8_t source) { #if HASP_USE_CONFIG > 0 CharStream stream((char*)payload); @@ -688,7 +688,7 @@ void dispatch_set_page(uint8_t pageid, lv_scr_load_anim_t animation) dispatch_current_page(); } -void dispatch_page(const char*, const char* page) +void dispatch_page(const char*, const char* page, uint8_t source) { if(strlen(page) == 0) { dispatch_current_page(); // No payload, send current page @@ -711,7 +711,7 @@ void dispatch_page(const char*, const char* page) } // Clears a page id or the current page if empty -void dispatch_clear_page(const char*, const char* page) +void dispatch_clear_page(const char*, const char* page, uint8_t source) { uint8_t pageid; if(strlen(page) > 0) { @@ -739,7 +739,7 @@ void dispatch_dim(const char*, const char* level) dispatch_state_subtopic(topic, payload); } -void dispatch_moodlight(const char* topic, const char* payload) +void dispatch_moodlight(const char* topic, const char* payload, uint8_t source) { // Set the current state if(strlen(payload) != 0) { @@ -790,14 +790,14 @@ void dispatch_moodlight(const char* topic, const char* payload) dispatch_state_subtopic(out_topic, buffer); } -void dispatch_backlight_obsolete(const char* topic, const char* payload) +void dispatch_backlight_obsolete(const char* topic, const char* payload, uint8_t source) { LOG_WARNING(TAG_MSGR, F(D_ATTRIBUTE_OBSOLETE D_ATTRIBUTE_INSTEAD), topic, "backlight"); // TODO: obsolete dim, light and brightness - dispatch_backlight(topic, payload); + dispatch_backlight(topic, payload, source); } -void dispatch_backlight(const char*, const char* payload) +void dispatch_backlight(const char*, const char* payload, uint8_t source) { bool power = haspDevice.get_backlight_power(); @@ -852,7 +852,7 @@ void dispatch_backlight(const char*, const char* payload) dispatch_state_brightness(topic, (hasp_event_t)haspDevice.get_backlight_power(), haspDevice.get_backlight_level()); } -void dispatch_web_update(const char*, const char* espOtaUrl) +void dispatch_web_update(const char*, const char* espOtaUrl, uint8_t source) { #if HASP_USE_OTA > 0 LOG_TRACE(TAG_MSGR, F(D_OTA_CHECK_UPDATE), espOtaUrl); @@ -894,7 +894,7 @@ void dispatch_reboot(bool saveConfig) /******************************************* Command Wrapper Functions *********************************/ // Periodically publish a JSON string indicating system status -void dispatch_send_sensordata(const char*, const char*) +void dispatch_send_sensordata(const char*, const char*, uint8_t source) { #if HASP_USE_MQTT > 0 @@ -956,7 +956,7 @@ void dispatch_send_sensordata(const char*, const char*) } // Periodically publish a JSON string indicating system status -void dispatch_send_discovery(const char*, const char*) +void dispatch_send_discovery(const char*, const char*, uint8_t source) { #if HASP_USE_MQTT > 0 @@ -1000,7 +1000,7 @@ void dispatch_send_discovery(const char*, const char*) } // Periodically publish a JSON string indicating system status -void dispatch_statusupdate(const char*, const char*) +void dispatch_statusupdate(const char*, const char*, uint8_t source) { #if HASP_USE_MQTT > 0 @@ -1054,12 +1054,12 @@ void dispatch_statusupdate(const char*, const char*) #endif } -void dispatch_current_state() +void dispatch_current_state(uint8_t source) { - dispatch_statusupdate(NULL, NULL); - dispatch_idle(NULL, NULL); + dispatch_statusupdate(NULL, NULL, source); + dispatch_idle(NULL, NULL, source); dispatch_current_page(); - dispatch_send_discovery(NULL, NULL); + dispatch_send_discovery(NULL, NULL, source); } // Format filesystem and erase EEPROM @@ -1079,12 +1079,12 @@ bool dispatch_factory_reset() return formated && erased; } -void dispatch_calibrate(const char*, const char*) +void dispatch_calibrate(const char*, const char*, uint8_t source) { guiCalibrate(); } -void dispatch_wakeup_obsolete(const char* topic, const char*) +void dispatch_wakeup_obsolete(const char* topic, const char*, uint8_t source) { LOG_WARNING(TAG_MSGR, F(D_ATTRIBUTE_OBSOLETE D_ATTRIBUTE_INSTEAD), topic, "idle=off"); // TODO: obsolete dim, light and brightness @@ -1092,12 +1092,12 @@ void dispatch_wakeup_obsolete(const char* topic, const char*) hasp_disable_wakeup_touch(); } -void dispatch_sleep(const char*, const char*) +void dispatch_sleep(const char*, const char*, uint8_t source) { hasp_enable_wakeup_touch(); } -void dispatch_idle(const char*, const char* payload) +void dispatch_idle(const char*, const char* payload, uint8_t source) { char topic[6]; char buffer[6]; @@ -1115,24 +1115,24 @@ void dispatch_idle(const char*, const char* payload) dispatch_state_subtopic(topic, buffer); } -void dispatch_reboot(const char*, const char*) +void dispatch_reboot(const char*, const char*, uint8_t source) { dispatch_reboot(true); } -void dispatch_factory_reset(const char*, const char*) +void dispatch_factory_reset(const char*, const char*, uint8_t source) { dispatch_factory_reset(); delay(500); dispatch_reboot(false); // don't save running config } -void dispatch_theme(const char*, const char* themeid) +void dispatch_theme(const char*, const char* themeid, uint8_t source) { hasp_set_theme(atoi(themeid)); } -void dispatch_service(const char*, const char* payload) +void dispatch_service(const char*, const char* payload, uint8_t source) { #if HASP_USE_TELNET > 0 if(!strcmp_P(payload, "start telnet")) { @@ -1159,7 +1159,7 @@ void dispatch_service(const char*, const char* payload) #endif } -void dispatch_exec(const char*, const char* payload) +void dispatch_exec(const char*, const char* payload, uint8_t source) { #if ARDUINO if(!HASP_FS.exists(payload)) { @@ -1191,8 +1191,8 @@ void dispatch_exec(const char*, const char* payload) buffer[index] = (char)c; index++; } - buffer[index] = 0; // terminate string - if(index > 0 && buffer[0] != '#') dispatch_text_line(buffer); // # for comments + buffer[index] = 0; // terminate string + if(index > 0 && buffer[0] != '#') dispatch_text_line(buffer, TAG_FILE); // # for comments } cmdfile.close(); @@ -1202,7 +1202,7 @@ void dispatch_exec(const char*, const char* payload) /******************************************* Commands builder *******************************************/ -static void dispatch_add_command(const char* p_cmdstr, void (*func)(const char*, const char*)) +static void dispatch_add_command(const char* p_cmdstr, void (*func)(const char*, const char*, uint8_t)) { if(nCommands >= sizeof(commands) / sizeof(haspCommand_t)) { LOG_FATAL(TAG_MSGR, F("CMD_OVERFLOW %d"), nCommands); @@ -1269,9 +1269,9 @@ void dispatchEverySecond() dispatchSecondsToNextTeleperiod--; } else if(dispatch_setings.teleperiod > 0 && mqttIsConnected()) { - dispatch_statusupdate(NULL, NULL); - dispatch_send_discovery(NULL, NULL); - dispatch_send_sensordata(NULL, NULL); + dispatch_statusupdate(NULL, NULL, TAG_MSGR); + dispatch_send_discovery(NULL, NULL, TAG_MSGR); + dispatch_send_sensordata(NULL, NULL, TAG_MSGR); dispatchSecondsToNextTeleperiod = dispatch_setings.teleperiod; } } diff --git a/src/hasp/hasp_dispatch.h b/src/hasp/hasp_dispatch.h index d0912870..70b36e6a 100644 --- a/src/hasp/hasp_dispatch.h +++ b/src/hasp/hasp_dispatch.h @@ -46,8 +46,8 @@ void dispatchStart(void); void dispatchStop(void); /* ===== Special Event Processors ===== */ -void dispatch_topic_payload(const char* topic, const char* payload, bool update); -void dispatch_text_line(const char* cmnd); +void dispatch_topic_payload(const char* topic, const char* payload, bool update, uint8_t source); +void dispatch_text_line(const char* cmnd, uint8_t source); #ifdef ARDUINO void dispatch_parse_jsonl(Stream& stream); @@ -64,15 +64,17 @@ void dispatch_page_prev(lv_scr_load_anim_t effectid); void dispatch_page_back(lv_scr_load_anim_t effectid); void dispatch_reboot(bool saveConfig); -void dispatch_current_state(); +void dispatch_current_state(uint8_t source); void dispatch_current_page(); -void dispatch_backlight(const char*, const char* payload); -void dispatch_web_update(const char*, const char* espOtaUrl); -void dispatch_statusupdate(const char*, const char*); -void dispatch_send_discovery(const char*, const char*); -void dispatch_idle(const char*, const char*); -void dispatch_calibrate(const char*, const char*); -void dispatch_wakeup(const char*, const char*); +void dispatch_backlight(const char*, const char* payload, uint8_t source); +void dispatch_web_update(const char*, const char* espOtaUrl, uint8_t source); +void dispatch_statusupdate(const char*, const char*, uint8_t source); +void dispatch_send_discovery(const char*, const char*, uint8_t source); +void dispatch_idle(const char*, const char*, uint8_t source); +void dispatch_calibrate(const char*, const char*, uint8_t source); +void dispatch_wakeup(const char*, const char*, uint8_t source); +void dispatch_exec(const char*, const char* payload, uint8_t source); +void dispatch_config(const char* topic, const char* payload, uint8_t source); void dispatch_normalized_group_values(hasp_update_value_t& value); @@ -81,8 +83,6 @@ void dispatch_state_eventid(const char* topic, hasp_event_t eventid); void dispatch_state_brightness(const char* topic, hasp_event_t eventid, int32_t val); void dispatch_state_val(const char* topic, hasp_event_t eventid, int32_t val); -void dispatch_config(const char* topic, const char* payload); - /* ===== Getter and Setter Functions ===== */ /* ===== Read/Write Configuration ===== */ @@ -91,7 +91,7 @@ void dispatch_config(const char* topic, const char* payload); struct haspCommand_t { const char* p_cmdstr; - void (*func)(const char*, const char*); + void (*func)(const char*, const char*, uint8_t); }; #endif \ No newline at end of file diff --git a/src/hasp/hasp_event.cpp b/src/hasp/hasp_event.cpp index e89f51c8..d7c8b717 100644 --- a/src/hasp/hasp_event.cpp +++ b/src/hasp/hasp_event.cpp @@ -316,7 +316,7 @@ void wakeup_event_handler(lv_obj_t* obj, lv_event_t event) if(event == LV_EVENT_RELEASED && obj == lv_disp_get_layer_sys(NULL)) { hasp_update_sleep_state(); // wakeup? if(!haspDevice.get_backlight_power()) { - dispatch_backlight(NULL, "on"); // backlight on and also disable wakeup touch + dispatch_backlight(NULL, "on", TAG_EVENT); // backlight on and also disable wakeup touch } hasp_disable_wakeup_touch(); // only disable wakeup touch } diff --git a/src/hasp_filesystem.cpp b/src/hasp_filesystem.cpp index eb9c2805..e72ca222 100644 --- a/src/hasp_filesystem.cpp +++ b/src/hasp_filesystem.cpp @@ -15,7 +15,7 @@ #if defined(ARDUINO_ARCH_ESP32) #include "rom/crc.h" -void filesystemUnzip(const char*, const char* filename) +void filesystemUnzip(const char*, const char* filename, uint8_t source) { File zipfile = HASP_FS.open(filename, FILE_READ); if(!zipfile) { diff --git a/src/hasp_filesystem.h b/src/hasp_filesystem.h index 07fd1f8b..934fa9cd 100644 --- a/src/hasp_filesystem.h +++ b/src/hasp_filesystem.h @@ -12,7 +12,7 @@ void filesystemList(); void filesystemInfo(); #if defined(ARDUINO_ARCH_ESP32) -void filesystemUnzip(const char*, const char* filename); +void filesystemUnzip(const char*, const char* filename, uint8_t source); #endif enum { ZIP_NO_COMPRESSION = 0, ZIP_DEFLTATE = 8 }; diff --git a/src/hasp_oobe.cpp b/src/hasp_oobe.cpp index d7bb2a38..2ae8d1cf 100644 --- a/src/hasp_oobe.cpp +++ b/src/hasp_oobe.cpp @@ -334,7 +334,7 @@ bool oobeSetup() } // Thist is used for testing only !! -void oobeFakeSetup(const char*, const char*) +void oobeFakeSetup(const char*, const char*, uint8_t source) { #if HASP_USE_WIFI > 0 char ssid[32] = "HASP-ABCDEF"; diff --git a/src/hasp_oobe.h b/src/hasp_oobe.h index a2ed71d4..e226666e 100644 --- a/src/hasp_oobe.h +++ b/src/hasp_oobe.h @@ -5,6 +5,6 @@ void oobeSetAutoCalibrate(bool cal); bool oobeSetup(); -void oobeFakeSetup(const char*, const char*); // for testing purposes only +void oobeFakeSetup(const char*, const char*, uint8_t source); // for testing purposes only #endif // HASP_USE_CONFIG diff --git a/src/mqtt/hasp_mqtt_pubsubclient.cpp b/src/mqtt/hasp_mqtt_pubsubclient.cpp index 8cb918fb..633db3e7 100644 --- a/src/mqtt/hasp_mqtt_pubsubclient.cpp +++ b/src/mqtt/hasp_mqtt_pubsubclient.cpp @@ -155,7 +155,7 @@ static void mqtt_message_cb(char* topic, byte* payload, unsigned int length) // Group topic topic += strlen(mqttGroupTopic); // shorten topic - dispatch_topic_payload(topic, (const char*)payload, length > 0); + dispatch_topic_payload(topic, (const char*)payload, length > 0, TAG_MQTT); return; #ifdef HASP_USE_BROADCAST @@ -163,7 +163,7 @@ static void mqtt_message_cb(char* topic, byte* payload, unsigned int length) // Broadcast topic topic += strlen_P(PSTR(MQTT_PREFIX "/" MQTT_TOPIC_BROADCAST "/")); // shorten topic - dispatch_topic_payload(topic, (const char*)payload, length > 0); + dispatch_topic_payload(topic, (const char*)payload, length > 0, TAG_MQTT); return; #endif @@ -203,7 +203,7 @@ static void mqtt_message_cb(char* topic, byte* payload, unsigned int length) } else */ { - dispatch_topic_payload(topic, (const char*)payload, length > 0); + dispatch_topic_payload(topic, (const char*)payload, length > 0, TAG_MQTT); } } @@ -322,7 +322,7 @@ void mqttStart() haspReconnect(); haspProgressVal(255); - dispatch_current_state(); + dispatch_current_state(TAG_MQTT); } void mqttSetup() diff --git a/src/sys/svc/hasp_console.cpp b/src/sys/svc/hasp_console.cpp index 8dacc274..f2574e93 100644 --- a/src/sys/svc/hasp_console.cpp +++ b/src/sys/svc/hasp_console.cpp @@ -98,7 +98,7 @@ static void console_process_line(const char* input) } #endif } else { - dispatch_text_line(input); + dispatch_text_line(input, TAG_CONS); } } } diff --git a/src/sys/svc/hasp_http.cpp b/src/sys/svc/hasp_http.cpp index 738f1181..be75d3c5 100644 --- a/src/sys/svc/hasp_http.cpp +++ b/src/sys/svc/hasp_http.cpp @@ -131,9 +131,9 @@ const char HTTP_CSS[] PROGMEM = // const char HTTP_SCRIPT[] PROGMEM = ""; -const char HTTP_HEADER_END[] PROGMEM = - "
"; -const char HTTP_FOOTER[] PROGMEM = "

" D_MANUFACTURER " "; +const char HTTP_HEADER_END[] PROGMEM = "
"; +const char HTTP_FOOTER[] PROGMEM = + ""; //////////////////////////////////////////////////////////////////////////////////////////////////// @@ -274,7 +274,7 @@ void webSendPage(const char* nodename, uint32_t httpdatalength, bool gohome = fa uint32_t contentLength = strlen(haspDevice.get_version()); // version length contentLength += sizeof(HTTP_DOCTYPE) - 1; contentLength += sizeof(HTTP_HEADER) - 1 - 2 + strlen(nodename); // -2 for %s - // contentLength += sizeof(HTTP_SCRIPT) - 1; + // contentLength += sizeof(HTTP_SCRIPT) - 1; contentLength += sizeof(HTTP_STYLE) - 1; // contentLength += sizeof(HASP_STYLE) - 1; if(gohome) contentLength += sizeof(HTTP_META_GO_BACK) - 1; @@ -298,14 +298,14 @@ void webSendPage(const char* nodename, uint32_t httpdatalength, bool gohome = fa } #if defined(STM32F4xx) - // webServer.sendContent(HTTP_SCRIPT); // 131 - webServer.sendContent(HTTP_STYLE); // 487 + // webServer.sendContent(HTTP_SCRIPT); // 131 + webServer.sendContent(HTTP_STYLE); // 487 // webServer.sendContent(HASP_STYLE); // 145 if(gohome) webServer.sendContent(HTTP_META_GO_BACK); // 47 webServer.sendContent(HTTP_HEADER_END); // 80 #else - // webServer.sendContent_P(HTTP_SCRIPT); // 131 - webServer.sendContent_P(HTTP_STYLE); // 487 + // webServer.sendContent_P(HTTP_SCRIPT); // 131 + webServer.sendContent_P(HTTP_STYLE); // 487 // webServer.sendContent_P(HASP_STYLE); // 145 if(gohome) webServer.sendContent_P(HTTP_META_GO_BACK); // 47 webServer.sendContent_P(HTTP_HEADER_END); // 80 @@ -1091,16 +1091,16 @@ void handleFileCreate() } } if(webServer.hasArg(F("init"))) { - dispatch_idle(NULL, "0"); + dispatch_idle(NULL, "0", TAG_HTTP); hasp_init(); } if(webServer.hasArg(F("load"))) { - dispatch_idle(NULL, "0"); + dispatch_idle(NULL, "0", TAG_HTTP); hasp_load_json(); } if(webServer.hasArg(F("page"))) { uint8_t pageid = atoi(webServer.arg(F("page")).c_str()); - dispatch_idle(NULL, "0"); + dispatch_idle(NULL, "0", TAG_HTTP); dispatch_set_page(pageid, LV_SCR_LOAD_ANIM_NONE); } webServer.send(200, PSTR("text/plain"), ""); @@ -1366,7 +1366,7 @@ void webHandleGuiConfig() } webSendFooter(); - if(webServer.hasArg(F("cal"))) dispatch_calibrate(NULL, NULL); + if(webServer.hasArg(F("cal"))) dispatch_calibrate(NULL, NULL, TAG_HTTP); } //////////////////////////////////////////////////////////////////////////////////////////////////// @@ -2155,7 +2155,7 @@ void httpHandleEspFirmware() webSendFooter(); LOG_TRACE(TAG_HTTP, F("Updating ESP firmware from: %s"), webServer.arg(url).c_str()); - dispatch_web_update(NULL, webServer.arg(url).c_str()); + dispatch_web_update(NULL, webServer.arg(url).c_str(), TAG_HTTP); } //////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/sys/svc/hasp_telnet.cpp b/src/sys/svc/hasp_telnet.cpp index 16e2636e..6328a824 100644 --- a/src/sys/svc/hasp_telnet.cpp +++ b/src/sys/svc/hasp_telnet.cpp @@ -248,7 +248,7 @@ static void telnetProcessLine(const char* input) telnetClientDisconnect(); } } else { - dispatch_text_line(input); + dispatch_text_line(input, TAG_TELN); } } }