diff --git a/components/telnet/telnet.c b/components/telnet/telnet.c index b9b94f06..0f603ae4 100644 --- a/components/telnet/telnet.c +++ b/components/telnet/telnet.c @@ -47,7 +47,7 @@ #define TELNET_STACK_SIZE 8048 #define TELNET_RX_BUF 1024 -const static char tag[] = "telnet"; +const static char TAG[] = "telnet"; static int uart_fd=0; RingbufHandle_t buf_handle; //static SemaphoreHandle_t xSemaphore = NULL; @@ -56,6 +56,7 @@ static size_t log_buf_size=2000; //32-bit aligned size static bool bIsEnabled=false; static int partnerSocket=0; static telnet_t *tnHandle; +extern bool bypass_wifi_manager; /************************************ * Forward declarations @@ -77,16 +78,23 @@ struct telnetUserData { }; bool is_serial_suppressed(){ - return !bIsEnabled || !bMirrorToUART ; + return bIsEnabled?!bMirrorToUART:false ; } void init_telnet(){ char *val= get_nvs_value_alloc(NVS_TYPE_STR, "telnet_enable"); if (!val || strlen(val) == 0 || !strcasestr("YXD",val) ) { - ESP_LOGI(tag,"Telnet support disabled"); + ESP_LOGI(TAG,"Telnet support disabled"); if(val) free(val); return; } - bMirrorToUART = strcasestr("D",val)!=NULL; + // if wifi manager is bypassed, there will possibly be no wifi available + // + bMirrorToUART = (strcasestr("D",val)!=NULL); + if(!bMirrorToUART && bypass_wifi_manager){ + // This isn't supposed to happen, as telnet won't start if wifi manager isn't + // started. So this is a safeguard only. + ESP_LOGW(TAG,"Wifi manager is not active. Forcing console on Serial output."); + } FREE_AND_NULL(val); val=get_nvs_value_alloc(NVS_TYPE_STR, "telnet_block"); @@ -110,11 +118,11 @@ void init_telnet(){ uint8_t *buffer_storage = (uint8_t *)heap_caps_malloc(sizeof(uint8_t)*log_buf_size, MALLOC_CAP_SPIRAM | MALLOC_CAP_8BIT ); buf_handle = xRingbufferCreateStatic(log_buf_size, RINGBUF_TYPE_BYTEBUF, buffer_storage, buffer_struct); if (buf_handle == NULL) { - ESP_LOGE(tag,"Failed to create ring buffer for telnet!"); + ESP_LOGE(TAG,"Failed to create ring buffer for telnet!"); return; } - ESP_LOGI(tag, "***Redirecting log output to telnet"); + ESP_LOGI(TAG, "***Redirecting log output to telnet"); const esp_vfs_t vfs = { .flags = ESP_VFS_FLAG_DEFAULT, .write = &stdout_write, @@ -152,14 +160,14 @@ static void telnet_task(void *data) { int rc = bind(serverSocket, (struct sockaddr *)&serverAddr, sizeof(serverAddr)); if (rc < 0) { - ESP_LOGE(tag, "bind: %d (%s)", errno, strerror(errno)); + ESP_LOGE(TAG, "bind: %d (%s)", errno, strerror(errno)); close(serverSocket); return; } rc = listen(serverSocket, 5); if (rc < 0) { - ESP_LOGE(tag, "listen: %d (%s)", errno, strerror(errno)); + ESP_LOGE(TAG, "listen: %d (%s)", errno, strerror(errno)); close(serverSocket); return; } @@ -168,14 +176,14 @@ static void telnet_task(void *data) { socklen_t len = sizeof(serverAddr); rc = accept(serverSocket, (struct sockaddr *)&serverAddr, &len); if (rc < 0 ){ - ESP_LOGE(tag, "accept: %d (%s)", errno, strerror(errno)); + ESP_LOGE(TAG, "accept: %d (%s)", errno, strerror(errno)); return; } else { partnerSocket = rc; - ESP_LOGD(tag, "We have a new client connection!"); + ESP_LOGD(TAG, "We have a new client connection!"); handle_telnet_conn(); - ESP_LOGD(tag, "Telnet connection terminated"); + ESP_LOGD(TAG, "Telnet connection terminated"); } } close(serverSocket); diff --git a/main/esp_app_main.c b/main/esp_app_main.c index 1cdaa920..10234c45 100644 --- a/main/esp_app_main.c +++ b/main/esp_app_main.c @@ -154,7 +154,7 @@ esp_err_t update_certificates(){ if ( (esp_err= nvs_get_str(handle, certs_version, NULL, &len)) == ESP_OK) { str=(char *)malloc(len); if ( (esp_err = nvs_get_str(handle, certs_version, str, &len)) == ESP_OK) { - printf("String associated with key '%s' is %s \n", certs_version, str); + ESP_LOGI(TAG,"String associated with key '%s' is %s", certs_version, str); } } if(str!=NULL){ @@ -341,10 +341,7 @@ void register_default_nvs(){ ESP_LOGD(TAG,"Done setting default values in nvs."); } -void displayInitCallback(TimerHandle_t pxTimer){ - ESP_LOGD(TAG,"Initializing display"); - display_init("SqueezeESP32"); -} + void app_main() { char * fwurl = NULL; @@ -360,17 +357,15 @@ void app_main() wifi_event_group = xEventGroupCreate(); ESP_LOGD(TAG,"Clearing CONNECTED_BIT from wifi group"); xEventGroupClearBits(wifi_event_group, CONNECTED_BIT); - ESP_LOGI(TAG,"Registering default values"); register_default_nvs(); - ESP_LOGD(TAG,"Configuring services"); + ESP_LOGI(TAG,"Configuring services"); services_init(); - // initialize display in a timer thread to prevent locking up - // the main init sequence - TimerHandle_t display_init = xTimerCreate( "DisplInit", 100,pdFALSE,NULL,displayInitCallback); - xTimerStart(display_init, portMAX_DELAY); + + ESP_LOGI(TAG,"Initializing display"); + display_init("SqueezeESP32"); #if !RECOVERY_APPLICATION ESP_LOGI(TAG,"Checking if certificates need to be updated"); update_certificates(); @@ -404,10 +399,12 @@ void app_main() led_blink(LED_GREEN, 250, 250); if(bypass_wifi_manager){ - ESP_LOGW(TAG,"\n\nwifi manager is disabled. Please use wifi commands to connect to your wifi access point.\n\n"); + ESP_LOGW(TAG,"*******************************************************************************************"); + ESP_LOGW(TAG,"* wifi manager is disabled. Please use wifi commands to connect to your wifi access point."); + ESP_LOGW(TAG,"*******************************************************************************************"); } else { - ESP_LOGW(TAG,"\n\nwifi manager is ENABLED. Starting...\n\n"); + ESP_LOGI(TAG,"Starting Wifi Manager"); wifi_manager_start(); wifi_manager_set_callback(EVENT_STA_GOT_IP, &cb_connection_got_ip); wifi_manager_set_callback(EVENT_STA_DISCONNECTED, &cb_connection_sta_disconnected);