Project homepage Mailing List  Warmcat.com  API Docs  Github Mirror 
{"schema":"libjg2-1", "vpath":"/git/", "avatar":"/git/avatar/", "alang":"", "gen_ut":1752657262, "reponame":"libwebsockets", "desc":"libwebsockets lightweight C networking library", "owner": { "name": "Andy Green", "email": "andy@warmcat.com", "md5": "c50933ca2aa61e0fe2c43d46bb6b59cb" },"url":"https://libwebsockets.org/repo/libwebsockets", "f":3, "items": [ {"schema":"libjg2-1", "cid":"c700c5f6bd4811f2f7bbd9f97c20886a", "commit": {"type":"commit", "time": 1517210253, "time_ofs": 480, "oid_tree": { "oid": "567403cffc3a85917eb94e7f4b8398401555280d", "alias": []}, "oid":{ "oid": "65a67d72f1a13b2d3dd3cc5629fc6993e13a26c9", "alias": []}, "msg": "esp32: adapt to esp-idf mdns changes", "sig_commit": { "git_time": { "time": 1517210253, "offset": 480 }, "name": "Andy Green", "email": "andy@warmcat.com", "md5": "c50933ca2aa61e0fe2c43d46bb6b59cb" }, "sig_author": { "git_time": { "time": 1517210253, "offset": 480 }, "name": "Andy Green", "email": "andy@warmcat.com", "md5": "c50933ca2aa61e0fe2c43d46bb6b59cb" }}, "body": "esp32: adapt to esp-idf mdns changes" , "diff": "diff --git a/lib/libwebsockets.h b/lib/libwebsockets.h\nindex 90bf652..fa7a6b4 100644\n--- a/lib/libwebsockets.h\n+++ b/lib/libwebsockets.h\n@@ -573,7 +573,6 @@ struct lws_esp32 {\n \tchar mac[20];\n \tchar le_dns[64];\n \tchar le_email[64];\n-\tmdns_server_t *mdns;\n \tchar region;\n \tchar inet;\n \tchar conn_ap;\ndiff --git a/lib/plat/lws-plat-esp32.c b/lib/plat/lws-plat-esp32.c\nindex 9a58686..4e96d5f 100644\n--- a/lib/plat/lws-plat-esp32.c\n+++ b/lib/plat/lws-plat-esp32.c\n@@ -715,6 +715,7 @@ static TimerHandle_t leds_timer, scan_timer, debounce_timer, association_timer\n #endif\n ;\n static enum lws_gapss gapss \u003d LWS_GAPSS_INITIAL;\n+static mdns_result_t *mdns_results_head;\n \n #define GPIO_SW 14\n \n@@ -853,27 +854,20 @@ void lws_group_member_event_call(int e, void *p)\n }\n \n static int\n-get_txt_param(const char *txt, const char *param, char *result, int len)\n+get_txt_param(const mdns_result_t *mr, const char *param, char *result, int len)\n {\n \tconst char *p;\n \n-again:\n-\tp \u003d strstr(txt, param);\n+\t*result \u003d '\u005c0';\n+\n+\tp \u003d strstr(mr-\u003etxt-\u003ekey, param);\n \tif (!p) {\n \t\t*result \u003d '\u005c0';\n \t\treturn 1;\n \t}\n \n-\tp +\u003d strlen(param);\n-\tif (*p !\u003d '\u003d') {\n-\t\ttxt \u003d p;\n-\t\tgoto again;\n-\t}\n-\tp++;\n-\twhile (*p \u0026\u0026 *p !\u003d '\u0026' \u0026\u0026 --len)\n-\t\t*result++ \u003d *p++;\n-\n-\t*result \u003d '\u005c0';\n+\tstrncpy(result, mr-\u003etxt-\u003evalue, len);\n+\tresult[len - 1] \u003d '\u005c0';\n \n \treturn 0;\n }\n@@ -882,28 +876,21 @@ static void lws_esp32_mdns_timer_cb(TimerHandle_t th)\n {\n \tuint64_t now \u003d time_in_microseconds(); \n \tstruct lws_group_member *p, **p1;\n-\tconst mdns_result_t *r;\n-\tint n, m;\n-\n-\tif (!lws_esp32.mdns)\n-\t\treturn;\n-\tn \u003d mdns_query_end(lws_esp32.mdns);\n+\tconst mdns_result_t *r \u003d mdns_results_head;\n \n-\tfor (m \u003d 0; m \u003c n; m++) {\n+\twhile (r) {\n \t\tchar ch \u003d 0, group[16];\n \n-\t\tr \u003d mdns_result_get(lws_esp32.mdns, m);\n-\n-\t\tget_txt_param(r-\u003etxt, \u0022group\u0022, group, sizeof(group));\n+\t\tget_txt_param(r, \u0022group\u0022, group, sizeof(group));\n \t\tif (strcmp(group, lws_esp32.group)) /* not our group */ {\n \t\t\tlwsl_notice(\u0022group %s vs %s %s\u005cn\u0022,\n-\t\t\t\t\tgroup, lws_esp32.group, r-\u003etxt);\n+\t\t\t\t\tgroup, lws_esp32.group, r-\u003etxt-\u003evalue);\n \t\t\tcontinue;\n \t\t}\n \n \t\tp \u003d lws_esp32.first;\n \t\twhile (p) {\n-\t\t\tif (strcmp(r-\u003ehost, p-\u003ehost))\n+\t\t\tif (strcmp(r-\u003ehostname, p-\u003ehost))\n \t\t\t\tgoto next;\n \t\t\tif (memcmp(\u0026r-\u003eaddr, \u0026p-\u003eaddr, sizeof(r-\u003eaddr)))\n \t\t\t\tgoto next;\n@@ -919,19 +906,19 @@ next:\n \t\t\tp \u003d lws_malloc(sizeof(*p), \u0022group\u0022);\n \t\t\tif (!p)\n \t\t\t\tcontinue;\n-\t\t\tstrncpy(p-\u003ehost, r-\u003ehost, sizeof(p-\u003ehost) - 1);\n+\t\t\tstrncpy(p-\u003ehost, r-\u003ehostname, sizeof(p-\u003ehost) - 1);\n \t\t\tp-\u003ehost[sizeof(p-\u003ehost) - 1] \u003d '\u005c0';\n \n-\t\t\tget_txt_param(r-\u003etxt, \u0022model\u0022, p-\u003emodel, sizeof(p-\u003emodel));\n-\t\t\tget_txt_param(r-\u003etxt, \u0022role\u0022, p-\u003erole, sizeof(p-\u003erole));\n-\t\t\tget_txt_param(r-\u003etxt, \u0022mac\u0022, p-\u003emac, sizeof(p-\u003emac));\n-\t\t\tget_txt_param(r-\u003etxt, \u0022width\u0022, temp, sizeof(temp));\n+\t\t\tget_txt_param(r, \u0022model\u0022, p-\u003emodel, sizeof(p-\u003emodel));\n+\t\t\tget_txt_param(r, \u0022role\u0022, p-\u003erole, sizeof(p-\u003erole));\n+\t\t\tget_txt_param(r, \u0022mac\u0022, p-\u003emac, sizeof(p-\u003emac));\n+\t\t\tget_txt_param(r, \u0022width\u0022, temp, sizeof(temp));\n \t\t\tp-\u003ewidth \u003d atoi(temp);\n-\t\t\tget_txt_param(r-\u003etxt, \u0022height\u0022, temp, sizeof(temp));\n+\t\t\tget_txt_param(r, \u0022height\u0022, temp, sizeof(temp));\n \t\t\tp-\u003eheight \u003d atoi(temp);\n \n \t\t\tmemcpy(\u0026p-\u003eaddr, \u0026r-\u003eaddr, sizeof(p-\u003eaddr));\n-\t\t\tmemcpy(\u0026p-\u003eaddrv6, \u0026r-\u003eaddrv6, sizeof(p-\u003eaddrv6));\n+//\t\t\tmemcpy(\u0026p-\u003eaddrv6, \u0026r-\u003eaddrv6, sizeof(p-\u003eaddrv6));\n \t\t\tp-\u003elast_seen \u003d now;\n \t\t\tp-\u003eflags \u003d 0;\n \t\t\tp-\u003enext \u003d lws_esp32.first;\n@@ -944,16 +931,16 @@ next:\n \t\t\t\tmemcpy(\u0026p-\u003eaddr, \u0026r-\u003eaddr, sizeof(p-\u003eaddr));\n \t\t\t\tch \u003d 1;\n \t\t\t}\n-\t\t\tif (memcmp(\u0026p-\u003eaddrv6, \u0026r-\u003eaddrv6, sizeof(p-\u003eaddrv6))) {\n+/*\t\t\tif (memcmp(\u0026p-\u003eaddrv6, \u0026r-\u003eaddrv6, sizeof(p-\u003eaddrv6))) {\n \t\t\t\tmemcpy(\u0026p-\u003eaddrv6, \u0026r-\u003eaddrv6, sizeof(p-\u003eaddrv6));\n \t\t\t\tch \u003d 1;\n-\t\t\t}\n+\t\t\t} */\n \t\t\tif (ch)\n \t\t\t\tlws_group_member_event_call(LWS_SYSTEM_GROUP_MEMBER_CHANGE, p);\n \t\t}\n \t}\n \n-\tmdns_result_free(lws_esp32.mdns);\n+\tmdns_query_results_free(mdns_results_head);\n \n \t/* garbage-collect group members not seen for too long */\n \tp1 \u003d \u0026lws_esp32.first;\n@@ -971,7 +958,8 @@ next:\n \t\tp1 \u003d \u0026(*p1)-\u003enext;\n \t}\n \n-\tmdns_query(lws_esp32.mdns, \u0022_lwsgrmem\u0022, \u0022_tcp\u0022, 0);\n+\tmdns_query_txt(lws_esp32.group, \u0022_lwsgrmem\u0022, \u0022_tcp\u0022, 0,\n+\t\t\t \u0026mdns_results_head);\n \txTimerStart(mdns_timer, 0);\n }\n #endif\n@@ -1189,10 +1177,7 @@ esp_err_t lws_esp32_event_passthru(void *ctx, system_event_t *event)\n \t\tlws_esp32.sta_mask[0] \u003d '\u005c0';\n \t\tlws_esp32.sta_gw[0] \u003d '\u005c0';\n \t\tlws_gapss_to(LWS_GAPSS_SCAN);\n-\t\tif (lws_esp32.mdns)\n-\t\t\tmdns_service_remove_all(lws_esp32.mdns);\n-\t\tmdns_free(lws_esp32.mdns);\n-\t\tlws_esp32.mdns \u003d NULL;\n+\t\tmdns_free();\n \t\tlws_set_genled(LWSESP32_GENLED__LOST_NETWORK);\n \t\tstart_scan();\n \t\tesp_wifi_connect();\n@@ -1228,35 +1213,37 @@ esp_err_t lws_esp32_event_passthru(void *ctx, system_event_t *event)\n \t\tlws_gapss_to(LWS_GAPSS_STAT_HAPPY);\n \n #if !defined(CONFIG_LWS_IS_FACTORY_APPLICATION)\n-\t\tn \u003d mdns_init(TCPIP_ADAPTER_IF_STA, \u0026lws_esp32.mdns);\n+\t\tn \u003d mdns_init();\n \t\tif (!n) {\n-\t\t\tstatic char *txta[6];\n+\t\t\tstatic mdns_txt_item_t txta[6];\n+\t\t\tstatic char wh[2][6];\n \t\t\tint w, h;\n \n-\t\t\tmdns_set_hostname(lws_esp32.mdns, lws_esp32.hostname);\n-\t\t\tmdns_set_instance(lws_esp32.mdns, lws_esp32.group);\n-\t\t\tmdns_service_add(lws_esp32.mdns, \u0022_lwsgrmem\u0022, \u0022_tcp\u0022, 443);\n-\t\t\tif (txta[0])\n-\t\t\t\tlws_free(txta[0]);\n-\t\t\ttxta[0] \u003d lws_malloc(32 * ARRAY_SIZE(txta), \u0022group\u0022);\n-\t\t\tif (!txta[0]) {\n-\t\t\t\tlwsl_notice(\u0022mdns OOM\u005cn\u0022);\n-\t\t\t\tbreak;\n-\t\t\t}\n-\t\t\ttxta[1] \u003d \u0026txta[0][32];\n-\t\t\ttxta[2] \u003d \u0026txta[1][32];\n-\t\t\ttxta[3] \u003d \u0026txta[2][32];\n-\t\t\ttxta[4] \u003d \u0026txta[3][32];\n-\t\t\ttxta[5] \u003d \u0026txta[4][32];\n+\t\t\tmdns_hostname_set(lws_esp32.hostname);\n+\t\t\tmdns_instance_name_set(lws_esp32.group);\n \n \t\t\tlws_get_iframe_size(\u0026w, \u0026h);\n \n-\t\t\tlws_snprintf(txta[0], 31, \u0022model\u003d%s\u0022, lws_esp32.model);\n-\t\t\tlws_snprintf(txta[1], 31, \u0022group\u003d%s\u0022, lws_esp32.group);\n-\t\t\tlws_snprintf(txta[2], 31, \u0022role\u003d%s\u0022, lws_esp32.role);\n-\t\t\tlws_snprintf(txta[3], 31, \u0022mac\u003d%s\u0022, lws_esp32.mac);\n-\t\t\tlws_snprintf(txta[4], 31, \u0022width\u003d%d\u0022, w);\n-\t\t\tlws_snprintf(txta[5], 31, \u0022height\u003d%d\u0022, h);\n+\t\t\ttxta[0].key \u003d \u0022model\u0022;\n+\t\t\ttxta[1].key \u003d \u0022group\u0022;\n+\t\t\ttxta[2].key \u003d \u0022role\u0022;\n+\t\t\ttxta[3].key \u003d \u0022mac\u0022;\n+\t\t\ttxta[4].key \u003d \u0022width\u0022;\n+\t\t\ttxta[5].key \u003d \u0022height\u0022;\n+\n+\t\t\ttxta[0].value \u003d lws_esp32.model;\n+\t\t\ttxta[1].value \u003d lws_esp32.group;\n+\t\t\ttxta[2].value \u003d lws_esp32.role;\n+\t\t\ttxta[3].value \u003d lws_esp32.mac;\n+\t\t\ttxta[4].value \u003d wh[0];\n+\t\t\ttxta[5].value \u003d wh[1];\n+\n+\t\t\tlws_snprintf(wh[0], 6, \u0022%d\u0022, w);\n+\t\t\tlws_snprintf(wh[1], 6, \u0022%d\u0022, h);\n+\n+\t\t\tmdns_service_add(lws_esp32.group,\n+\t\t\t\t\t \u0022_lwsgrmem\u0022, \u0022_tcp\u0022, 443, txta,\n+\t\t\t\t\t ARRAY_SIZE(txta));\n \n \t\t\tmem \u003d lws_esp32.first;\n \t\t\twhile (mem) {\n@@ -1301,15 +1288,11 @@ esp_err_t lws_esp32_event_passthru(void *ctx, system_event_t *event)\n \t\t\t\t\t LWS_SYSTEM_GROUP_MEMBER_CHANGE, mem);\n \t\t\t}\n \n-\n-\t\t\tif (mdns_service_txt_set(lws_esp32.mdns, \u0022_lwsgrmem\u0022,\n-\t\t\t\t\t\t \u0022_tcp\u0022, ARRAY_SIZE(txta),\n-\t\t\t\t\t\t (const char **)txta))\n-\t\t\t\tlwsl_notice(\u0022txt set failed\u005cn\u0022);\n \t\t} else\n \t\t\tlwsl_err(\u0022unable to init mdns on STA: %d\u005cn\u0022, n);\n \n-\t\tmdns_query(lws_esp32.mdns, \u0022_lwsgrmem\u0022, \u0022_tcp\u0022, 0);\n+\t\tmdns_query_txt(lws_esp32.group, \u0022_lwsgrmem\u0022, \u0022_tcp\u0022, 0,\n+\t\t\t \u0026mdns_results_head);\n \t\txTimerStart(mdns_timer, 0);\n #endif\n \n","s":{"c":1752657262,"u": 5646}} ],"g": 7075,"chitpc": 0,"ehitpc": 0,"indexed":0 , "ab": 0, "si": 0, "db":0, "di":0, "sat":0, "lfc": "0000"}