Skip to content

Commit fbd296f

Browse files
authored
Merge pull request #661 from gytxxsy/feat/monitor_interface_status_for_browsing
[mdns]: send PTR query for mdns browse when interface is ready (IDFGH-13841)
2 parents a5b0b9d + 010a404 commit fbd296f

File tree

1 file changed

+12
-9
lines changed

1 file changed

+12
-9
lines changed

components/mdns/mdns.c

+12-9
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ static esp_err_t _mdns_sync_browse_action(mdns_action_type_t type, mdns_browse_s
2525
static void _mdns_browse_sync(mdns_browse_sync_t *browse_sync);
2626
static void _mdns_browse_finish(mdns_browse_t *browse);
2727
static void _mdns_browse_add(mdns_browse_t *browse);
28-
static void _mdns_browse_send(mdns_browse_t *browse);
28+
static void _mdns_browse_send(mdns_browse_t *browse, mdns_if_t interface);
2929

3030
#if CONFIG_ETH_ENABLED && CONFIG_MDNS_PREDEF_NETIF_ETH
3131
#include "esp_eth.h"
@@ -4476,7 +4476,11 @@ void mdns_preset_if_handle_system_event(void *arg, esp_event_base_t event_base,
44764476
post_mdns_enable_pcb(mdns_if, MDNS_IP_PROTOCOL_V6);
44774477
post_mdns_announce_pcb(mdns_if, MDNS_IP_PROTOCOL_V4);
44784478
}
4479-
4479+
mdns_browse_t *browse = _mdns_server->browse;
4480+
while (browse) {
4481+
_mdns_browse_send(browse, mdns_if);
4482+
browse = browse->next;
4483+
}
44804484
}
44814485
break;
44824486
default:
@@ -7119,7 +7123,9 @@ static void _mdns_browse_add(mdns_browse_t *browse)
71197123
browse->next = _mdns_server->browse;
71207124
_mdns_server->browse = browse;
71217125
}
7122-
_mdns_browse_send(browse);
7126+
for (uint8_t interface_idx = 0; interface_idx < MDNS_MAX_INTERFACES; interface_idx++) {
7127+
_mdns_browse_send(browse, (mdns_if_t)interface_idx);
7128+
}
71237129
if (found) {
71247130
_mdns_browse_item_free(browse);
71257131
}
@@ -7128,7 +7134,7 @@ static void _mdns_browse_add(mdns_browse_t *browse)
71287134
/**
71297135
* @brief Send PTR query packet to all available interfaces for browsing.
71307136
*/
7131-
static void _mdns_browse_send(mdns_browse_t *browse)
7137+
static void _mdns_browse_send(mdns_browse_t *browse, mdns_if_t interface)
71327138
{
71337139
// Using search once for sending the PTR query
71347140
mdns_search_once_t search = {0};
@@ -7141,11 +7147,8 @@ static void _mdns_browse_send(mdns_browse_t *browse)
71417147
search.result = NULL;
71427148
search.next = NULL;
71437149

7144-
uint8_t i, j;
7145-
for (i = 0; i < MDNS_MAX_INTERFACES; i++) {
7146-
for (j = 0; j < MDNS_IP_PROTOCOL_MAX; j++) {
7147-
_mdns_search_send_pcb(&search, (mdns_if_t)i, (mdns_ip_protocol_t)j);
7148-
}
7150+
for (uint8_t protocol_idx = 0; protocol_idx < MDNS_IP_PROTOCOL_MAX; protocol_idx++) {
7151+
_mdns_search_send_pcb(&search, interface, (mdns_ip_protocol_t)protocol_idx);
71497152
}
71507153
}
71517154

0 commit comments

Comments
 (0)