diff --git a/lib/libwebsockets.h b/lib/libwebsockets.h index 47163e50..e130f50c 100644 --- a/lib/libwebsockets.h +++ b/lib/libwebsockets.h @@ -586,6 +586,7 @@ struct lws_esp32 { int extant_group_members; char acme; + char upload; volatile char button_is_down; }; diff --git a/plugins/protocol_esp32_lws_ota.c b/plugins/protocol_esp32_lws_ota.c index 1fd80af5..e91144cc 100644 --- a/plugins/protocol_esp32_lws_ota.c +++ b/plugins/protocol_esp32_lws_ota.c @@ -208,6 +208,7 @@ callback_esplws_ota(struct lws *wsi, enum lws_callback_reasons reason, pss->filename[0] = '\0'; pss->file_length = 0; } + lws_esp32.upload = 1; /* let it parse the POST data */ if (lws_spa_process(pss->spa, in, len)) @@ -264,6 +265,7 @@ callback_esplws_ota(struct lws *wsi, enum lws_callback_reasons reason, lws_spa_destroy(pss->spa); pss->spa = NULL; } + lws_esp32.upload = 0; break; default: diff --git a/plugins/protocol_esp32_lws_scan.c b/plugins/protocol_esp32_lws_scan.c index 1ec66253..cad1a360 100644 --- a/plugins/protocol_esp32_lws_scan.c +++ b/plugins/protocol_esp32_lws_scan.c @@ -174,6 +174,9 @@ scan_start(struct per_vhost_data__esplws_scan *vhd) if (lws_esp32.acme) return; + if (lws_esp32.upload) + return; + vhd->scan_ongoing = 1; lws_esp32.scan_consumer = scan_finished; lws_esp32.scan_consumer_arg = vhd;