mirror of
https://github.com/sle118/squeezelite-esp32.git
synced 2025-12-06 19:47:02 +03:00
httpd ready for some testing - release
This commit is contained in:
@@ -47,7 +47,7 @@
|
|||||||
#define TELNET_STACK_SIZE 8048
|
#define TELNET_STACK_SIZE 8048
|
||||||
#define TELNET_RX_BUF 1024
|
#define TELNET_RX_BUF 1024
|
||||||
|
|
||||||
const static char tag[] = "telnet";
|
const static char TAG[] = "telnet";
|
||||||
static int uart_fd=0;
|
static int uart_fd=0;
|
||||||
RingbufHandle_t buf_handle;
|
RingbufHandle_t buf_handle;
|
||||||
//static SemaphoreHandle_t xSemaphore = NULL;
|
//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 bool bIsEnabled=false;
|
||||||
static int partnerSocket=0;
|
static int partnerSocket=0;
|
||||||
static telnet_t *tnHandle;
|
static telnet_t *tnHandle;
|
||||||
|
extern bool bypass_wifi_manager;
|
||||||
|
|
||||||
/************************************
|
/************************************
|
||||||
* Forward declarations
|
* Forward declarations
|
||||||
@@ -77,16 +78,23 @@ struct telnetUserData {
|
|||||||
};
|
};
|
||||||
|
|
||||||
bool is_serial_suppressed(){
|
bool is_serial_suppressed(){
|
||||||
return !bIsEnabled || !bMirrorToUART ;
|
return bIsEnabled?!bMirrorToUART:false ;
|
||||||
}
|
}
|
||||||
void init_telnet(){
|
void init_telnet(){
|
||||||
char *val= get_nvs_value_alloc(NVS_TYPE_STR, "telnet_enable");
|
char *val= get_nvs_value_alloc(NVS_TYPE_STR, "telnet_enable");
|
||||||
if (!val || strlen(val) == 0 || !strcasestr("YXD",val) ) {
|
if (!val || strlen(val) == 0 || !strcasestr("YXD",val) ) {
|
||||||
ESP_LOGI(tag,"Telnet support disabled");
|
ESP_LOGI(TAG,"Telnet support disabled");
|
||||||
if(val) free(val);
|
if(val) free(val);
|
||||||
return;
|
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);
|
FREE_AND_NULL(val);
|
||||||
val=get_nvs_value_alloc(NVS_TYPE_STR, "telnet_block");
|
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 );
|
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);
|
buf_handle = xRingbufferCreateStatic(log_buf_size, RINGBUF_TYPE_BYTEBUF, buffer_storage, buffer_struct);
|
||||||
if (buf_handle == NULL) {
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ESP_LOGI(tag, "***Redirecting log output to telnet");
|
ESP_LOGI(TAG, "***Redirecting log output to telnet");
|
||||||
const esp_vfs_t vfs = {
|
const esp_vfs_t vfs = {
|
||||||
.flags = ESP_VFS_FLAG_DEFAULT,
|
.flags = ESP_VFS_FLAG_DEFAULT,
|
||||||
.write = &stdout_write,
|
.write = &stdout_write,
|
||||||
@@ -152,14 +160,14 @@ static void telnet_task(void *data) {
|
|||||||
|
|
||||||
int rc = bind(serverSocket, (struct sockaddr *)&serverAddr, sizeof(serverAddr));
|
int rc = bind(serverSocket, (struct sockaddr *)&serverAddr, sizeof(serverAddr));
|
||||||
if (rc < 0) {
|
if (rc < 0) {
|
||||||
ESP_LOGE(tag, "bind: %d (%s)", errno, strerror(errno));
|
ESP_LOGE(TAG, "bind: %d (%s)", errno, strerror(errno));
|
||||||
close(serverSocket);
|
close(serverSocket);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
rc = listen(serverSocket, 5);
|
rc = listen(serverSocket, 5);
|
||||||
if (rc < 0) {
|
if (rc < 0) {
|
||||||
ESP_LOGE(tag, "listen: %d (%s)", errno, strerror(errno));
|
ESP_LOGE(TAG, "listen: %d (%s)", errno, strerror(errno));
|
||||||
close(serverSocket);
|
close(serverSocket);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -168,14 +176,14 @@ static void telnet_task(void *data) {
|
|||||||
socklen_t len = sizeof(serverAddr);
|
socklen_t len = sizeof(serverAddr);
|
||||||
rc = accept(serverSocket, (struct sockaddr *)&serverAddr, &len);
|
rc = accept(serverSocket, (struct sockaddr *)&serverAddr, &len);
|
||||||
if (rc < 0 ){
|
if (rc < 0 ){
|
||||||
ESP_LOGE(tag, "accept: %d (%s)", errno, strerror(errno));
|
ESP_LOGE(TAG, "accept: %d (%s)", errno, strerror(errno));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
partnerSocket = rc;
|
partnerSocket = rc;
|
||||||
ESP_LOGD(tag, "We have a new client connection!");
|
ESP_LOGD(TAG, "We have a new client connection!");
|
||||||
handle_telnet_conn();
|
handle_telnet_conn();
|
||||||
ESP_LOGD(tag, "Telnet connection terminated");
|
ESP_LOGD(TAG, "Telnet connection terminated");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
close(serverSocket);
|
close(serverSocket);
|
||||||
|
|||||||
@@ -154,7 +154,7 @@ esp_err_t update_certificates(){
|
|||||||
if ( (esp_err= nvs_get_str(handle, certs_version, NULL, &len)) == ESP_OK) {
|
if ( (esp_err= nvs_get_str(handle, certs_version, NULL, &len)) == ESP_OK) {
|
||||||
str=(char *)malloc(len);
|
str=(char *)malloc(len);
|
||||||
if ( (esp_err = nvs_get_str(handle, certs_version, str, &len)) == ESP_OK) {
|
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){
|
if(str!=NULL){
|
||||||
@@ -341,10 +341,7 @@ void register_default_nvs(){
|
|||||||
|
|
||||||
ESP_LOGD(TAG,"Done setting default values in 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()
|
void app_main()
|
||||||
{
|
{
|
||||||
char * fwurl = NULL;
|
char * fwurl = NULL;
|
||||||
@@ -360,17 +357,15 @@ void app_main()
|
|||||||
wifi_event_group = xEventGroupCreate();
|
wifi_event_group = xEventGroupCreate();
|
||||||
ESP_LOGD(TAG,"Clearing CONNECTED_BIT from wifi group");
|
ESP_LOGD(TAG,"Clearing CONNECTED_BIT from wifi group");
|
||||||
xEventGroupClearBits(wifi_event_group, CONNECTED_BIT);
|
xEventGroupClearBits(wifi_event_group, CONNECTED_BIT);
|
||||||
|
|
||||||
|
|
||||||
ESP_LOGI(TAG,"Registering default values");
|
ESP_LOGI(TAG,"Registering default values");
|
||||||
register_default_nvs();
|
register_default_nvs();
|
||||||
|
|
||||||
ESP_LOGD(TAG,"Configuring services");
|
ESP_LOGI(TAG,"Configuring services");
|
||||||
services_init();
|
services_init();
|
||||||
// initialize display in a timer thread to prevent locking up
|
|
||||||
// the main init sequence
|
ESP_LOGI(TAG,"Initializing display");
|
||||||
TimerHandle_t display_init = xTimerCreate( "DisplInit", 100,pdFALSE,NULL,displayInitCallback);
|
display_init("SqueezeESP32");
|
||||||
xTimerStart(display_init, portMAX_DELAY);
|
|
||||||
#if !RECOVERY_APPLICATION
|
#if !RECOVERY_APPLICATION
|
||||||
ESP_LOGI(TAG,"Checking if certificates need to be updated");
|
ESP_LOGI(TAG,"Checking if certificates need to be updated");
|
||||||
update_certificates();
|
update_certificates();
|
||||||
@@ -404,10 +399,12 @@ void app_main()
|
|||||||
led_blink(LED_GREEN, 250, 250);
|
led_blink(LED_GREEN, 250, 250);
|
||||||
|
|
||||||
if(bypass_wifi_manager){
|
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 {
|
else {
|
||||||
ESP_LOGW(TAG,"\n\nwifi manager is ENABLED. Starting...\n\n");
|
ESP_LOGI(TAG,"Starting Wifi Manager");
|
||||||
wifi_manager_start();
|
wifi_manager_start();
|
||||||
wifi_manager_set_callback(EVENT_STA_GOT_IP, &cb_connection_got_ip);
|
wifi_manager_set_callback(EVENT_STA_GOT_IP, &cb_connection_got_ip);
|
||||||
wifi_manager_set_callback(EVENT_STA_DISCONNECTED, &cb_connection_sta_disconnected);
|
wifi_manager_set_callback(EVENT_STA_DISCONNECTED, &cb_connection_sta_disconnected);
|
||||||
|
|||||||
Reference in New Issue
Block a user