From d7dad7a8834d6c52f590031221bb42f51ab095f7 Mon Sep 17 00:00:00 2001 From: gemu2015 Date: Tue, 16 Nov 2021 07:41:02 +0100 Subject: [PATCH] get number of open sockets for debugging --- tasmota/homekit.c | 39 +++++++++++++++++++++++++++++++++------ 1 file changed, 33 insertions(+), 6 deletions(-) diff --git a/tasmota/homekit.c b/tasmota/homekit.c index 92e19543c..55d71c239 100755 --- a/tasmota/homekit.c +++ b/tasmota/homekit.c @@ -38,7 +38,7 @@ #include #include #include - +#include #include @@ -703,9 +703,9 @@ nextline: #define HK_PASSCODE "111-11-111" int hap_loop_stop(void); +int32_t homekit_pars(uint32_t sel); - -void homekit_main(char *desc, uint32_t flag ) { +int32_t homekit_main(char *desc, uint32_t flag ) { if (desc) { char *cp = desc; cp += 2; @@ -724,7 +724,7 @@ void homekit_main(char *desc, uint32_t flag ) { } if (*cp != '\n') { printf("init error\n"); - return; + return -1; } cp++; hk_desc = cp; @@ -736,17 +736,44 @@ void homekit_main(char *desc, uint32_t flag ) { hap_loop_stop(); // is just the folder in wrapper hap_platfrom_keystore_erase_partition(hap_platform_keystore_get_nvs_partition_name()); + } else if (flag < 3) { + return homekit_pars(flag); } else { hap_loop_stop(); } - return; + + return 0; } - if (!hk_desc) return; + if (!hk_desc) return -2; /* Create the application thread */ xTaskCreate(smart_outlet_thread_entry, SMART_OUTLET_TASK_NAME, SMART_OUTLET_TASK_STACKSIZE, NULL, SMART_OUTLET_TASK_PRIORITY, NULL); + return 0; +} + +#include + +int32_t homekit_pars(uint32_t sel) { + + if (sel == 0) { + // return CONFIG_LWIP_MAX_SOCKETS; + return MEMP_NUM_NETCONN; + } else if (sel == 1) { + return LWIP_SOCKET_OFFSET; + } else { + struct sockaddr name; + socklen_t len = sizeof(name); + uint8_t open_socs = 0; + for (uint32_t cnt = 0; cnt < CONFIG_LWIP_MAX_SOCKETS; cnt++) { + //if (!getsockname(cnt, &name, &len)) { + if (!getpeername(LWIP_SOCKET_OFFSET + cnt, &name, &len)) { + open_socs++; + } + } + return open_socs; + } } #endif // ESP32