From 014839f9538df2c15d986957d797e01ad54591f0 Mon Sep 17 00:00:00 2001 From: luc lebosse Date: Mon, 8 Aug 2016 13:07:35 +0200 Subject: [PATCH] Add command for hostname Fix possible buffer overload when using serial command add missing flags in config report --- esp3d/command.cpp | 19 ++++++++++++++++++- esp3d/config.cpp | 37 +++++++++++++++++++++++++++++++++++-- 2 files changed, 53 insertions(+), 3 deletions(-) diff --git a/esp3d/command.cpp b/esp3d/command.cpp index 82ff991b..f9fc2b62 100644 --- a/esp3d/command.cpp +++ b/esp3d/command.cpp @@ -52,8 +52,14 @@ void COMMAND::execute_command(int cmd,String cmd_params) Serial.println("\nOk"); } break; + case 102: + if(!CONFIG::write_string(EP_HOSTNAME,cmd_params.c_str())) { + Serial.println("\nError"); + } else { + Serial.println("\nOk"); + } + break; case 103: - if (cmd_params=="STA") { mode = CLIENT_MODE; } else { @@ -90,6 +96,17 @@ void COMMAND::execute_command(int cmd,String cmd_params) Serial.print("\r\n"); } break; + case 112: { + String shost ; + if (!CONFIG::read_string(EP_HOSTNAME, shost , MAX_HOSTNAME_LENGTH)) { + shost=wifi_config.get_default_hostname(); + } + Serial.print("\n\r"); + Serial.print(cmd_params); + Serial.println(shost); + Serial.print("\r\n"); + } + break; case 444: if (cmd_params=="RESET") { CONFIG::reset_config(); diff --git a/esp3d/config.cpp b/esp3d/config.cpp index c5078eb3..3f0f3eef 100644 --- a/esp3d/config.cpp +++ b/esp3d/config.cpp @@ -118,9 +118,25 @@ bool CONFIG::write_string(int pos, const __FlashStringHelper *str) bool CONFIG::write_string(int pos, const char * byte_buffer) { int size_buffer; + int maxsize = EEPROM_SIZE; size_buffer= strlen(byte_buffer); //check if parameters are acceptable - if (size_buffer==0 || pos+size_buffer+1 > EEPROM_SIZE || byte_buffer== NULL) { + switch (pos) + { + case EP_SSID: + maxsize = MAX_SSID_LENGTH; + break; + case EP_PASSWORD: + maxsize = MAX_PASSWORD_LENGTH; + break; + case EP_HOSTNAME: + maxsize = MAX_HOSTNAME_LENGTH; + break; + default: + maxsize = EEPROM_SIZE; + break; + } + if (size_buffer==0 || pos+size_buffer+1 > EEPROM_SIZE || size_buffer > maxsize || byte_buffer== NULL) { return false; } //copy the value(s) @@ -443,6 +459,12 @@ void CONFIG::print_config() Serial.println(F("Enabled")); #else Serial.println(F("Disabled")); +#endif + Serial.print(F("NetBios: ")); +#ifdef NETBIOS_FEATURE + Serial.println(F("Enabled")); +#else + Serial.println(F("Disabled")); #endif Serial.print(F("mDNS: ")); #ifdef MDNS_FEATURE @@ -480,6 +502,17 @@ void CONFIG::print_config() #else Serial.println(F("???")); #endif - +#ifdef DEBUG_ESP3D + Serial.print(F("Debug Enabled :")); +#ifdef DEBUG_OUTPUT_SPIFFS + Serial.println(F("SPIFFS")); +#endif +#ifdef DEBUG_OUTPUT_SD + Serial.println(F("SD")); +#endif +#ifdef DEBUG_OUTPUT_SERIAL + Serial.println(F("serial")); +#endif +#endif }