]> granicus.if.org Git - esp-idf/commitdiff
mdns: sending search packets also in probing and announcing state
authorDavid Cermak <cermak@espressif.com>
Fri, 12 Oct 2018 06:13:55 +0000 (08:13 +0200)
committerbot <bot@espressif.com>
Fri, 16 Nov 2018 07:22:29 +0000 (07:22 +0000)
mdns queries did not work properly when send imeadiately after set_hostname, which cuased reinit of pcb and therefore restarted probing, so search packets were blocked until probing finished
closes #2507, closes #2593

components/mdns/mdns.c

index 443b39846a66aea15fc6a5e9e08c4995832ca21e..f5d337a32ce23df1dda4d337ca47740af8109056 100644 (file)
@@ -3465,7 +3465,7 @@ static mdns_tx_packet_t * _mdns_create_search_packet(mdns_search_once_t * search
 static void _mdns_search_send_pcb(mdns_search_once_t * search, tcpip_adapter_if_t tcpip_if, mdns_ip_protocol_t ip_protocol)
 {
     mdns_tx_packet_t * packet = NULL;
-    if (_mdns_server->interfaces[tcpip_if].pcbs[ip_protocol].pcb && _mdns_server->interfaces[tcpip_if].pcbs[ip_protocol].state == PCB_RUNNING) {
+    if (_mdns_server->interfaces[tcpip_if].pcbs[ip_protocol].pcb && _mdns_server->interfaces[tcpip_if].pcbs[ip_protocol].state > PCB_INIT) {
         packet = _mdns_create_search_packet(search, tcpip_if, ip_protocol);
         if (!packet) {
             return;