diff --git a/components/wifi-manager/http_server.c b/components/wifi-manager/http_server.c index 39e2f617..4fd20b73 100644 --- a/components/wifi-manager/http_server.c +++ b/components/wifi-manager/http_server.c @@ -225,6 +225,8 @@ void http_server_netconn_serve(struct netconn *conn) { uint8_t autoexec_flag=0; int buflen=MAX_COMMAND_LINE_SIZE+strlen(template)+1; char * buff = malloc(buflen); + char *s = "\""; + char *r = "\\\""; if(!buff) { ESP_LOGE(TAG,"Unable to allocate buffer for config.json!"); @@ -242,7 +244,7 @@ void http_server_netconn_serve(struct netconn *conn) { do { snprintf(autoexec_name,sizeof(autoexec_name)-1,"autoexec%u",i); ESP_LOGD(TAG,"Getting command name %s", autoexec_name); - autoexec_value= wifi_manager_alloc_get_config(autoexec_name, &l); + autoexec_value = wifi_manager_alloc_get_config(autoexec_name, &l); if(autoexec_value!=NULL ){ if(i>1) { @@ -250,6 +252,7 @@ void http_server_netconn_serve(struct netconn *conn) { ESP_LOGD(TAG,"%s", array_separator); } ESP_LOGI(TAG,"found command %s = %s", autoexec_name, autoexec_value); + strreplace(autoexec_value, s, r); snprintf(buff, buflen-1, template, autoexec_name, autoexec_value); netconn_write(conn, buff, strlen(buff), NETCONN_NOCOPY); ESP_LOGD(TAG,"%s", buff); @@ -367,3 +370,23 @@ void http_server_netconn_serve(struct netconn *conn) { /* free the buffer */ netbuf_delete(inbuf); } + +void strreplace(char *src, char *str, char *rep) +{ + char *p = strstr(src, str); + if (p) + { + int len = strlen(src)+strlen(rep)-strlen(str); + char r[len]; + memset(r, 0, len); + if ( p >= src ){ + strncpy(r, src, p-src); + r[p-src]='\0'; + strncat(r, rep, strlen(rep)); + strncat(r, p+strlen(str), p+strlen(str)-src+strlen(src)); + strcpy(src, r); + strreplace(p+strlen(rep), str, rep); + } + } +} + diff --git a/components/wifi-manager/http_server.h b/components/wifi-manager/http_server.h index 3b4c2419..ec9afb97 100644 --- a/components/wifi-manager/http_server.h +++ b/components/wifi-manager/http_server.h @@ -88,6 +88,9 @@ void http_server_start(); */ char* http_server_get_header(char *request, char *header_name, int *len); +void strreplace(char *src, char *str, char *rep); + + #ifdef __cplusplus } #endif diff --git a/components/wifi-manager/index.html b/components/wifi-manager/index.html index 3161c8fa..0f2157d5 100644 --- a/components/wifi-manager/index.html +++ b/components/wifi-manager/index.html @@ -184,7 +184,7 @@ function handleClick(cb) {

Command to run

- +
diff --git a/components/wifi-manager/style.css b/components/wifi-manager/style.css index ad9a8e51..66e70a7e 100644 --- a/components/wifi-manager/style.css +++ b/components/wifi-manager/style.css @@ -265,6 +265,9 @@ h3 { position: absolute; cursor: pointer; top: 1.5em; + + left: 8px; + width: 4em; height: 2em; background-color: #c32e04; @@ -343,3 +346,8 @@ input#ota { #otadiv { margin-bottom: 15px; } + +textarea#autoexec1 { + width: 100%; +} + diff --git a/sdkconfig.defaults b/sdkconfig.defaults index be3817ac..f659affb 100644 --- a/sdkconfig.defaults +++ b/sdkconfig.defaults @@ -77,10 +77,9 @@ CONFIG_SPIRAM_SIZE=-1 CONFIG_SPIRAM_SPEED_80M=y CONFIG_SPIRAM_MEMTEST=y CONFIG_SPIRAM_CACHE_WORKAROUND=y -CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=256 -CONFIG_SPIRAM_MALLOC_RESERVE_INTERNAL=65536 +CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=512 +CONFIG_SPIRAM_MALLOC_RESERVE_INTERNAL=32768 CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY=y -CONFIG_SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY=y CONFIG_SPIRAM_OCCUPY_VSPI_HOST=y CONFIG_SPIRAM_BANKSWITCH_ENABLE=n CONFIG_D0WD_PSRAM_CLK_IO=17 @@ -114,7 +113,6 @@ CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER=20 CONFIG_ESP32_PHY_MAX_TX_POWER=20 CONFIG_FREERTOS_HZ=100 CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32 -CONFIG_LWIP_UDP_RECVMBOX_SIZE=32 CONFIG_LWIP_NETIF_LOOPBACK=y CONFIG_LWIP_TCP_MSL=60000 CONFIG_LWIP_TCP_SND_BUF_DEFAULT=8192