diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..f52e1c9 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,15 @@ +set(COMPONENT_SRCDIRS + "src" +) + +set(COMPONENT_ADD_INCLUDEDIRS + "src" +) + +set(COMPONENT_REQUIRES + "arduino-esp32" +) + +register_component() + +target_compile_options(${COMPONENT_TARGET} PRIVATE -fno-rtti) diff --git a/src/AsyncTCP.cpp b/src/AsyncTCP.cpp index 2d0917b..5259400 100644 --- a/src/AsyncTCP.cpp +++ b/src/AsyncTCP.cpp @@ -78,7 +78,7 @@ typedef struct { static xQueueHandle _async_queue; static TaskHandle_t _async_service_task_handle = NULL; -const int _number_of_closed_slots = 16; +const int _number_of_closed_slots = CONFIG_LWIP_MAX_ACTIVE_TCP; static int _closed_index = 0; static int _closed_slots[_number_of_closed_slots]; @@ -1278,7 +1278,9 @@ void AsyncServer::end(){ if(_pcb){ tcp_arg(_pcb, NULL); tcp_accept(_pcb, NULL); - _tcp_abort(_pcb, -1); + if(tcp_close(_pcb) != ERR_OK){ + _tcp_abort(_pcb, -1); + } _pcb = NULL; } }