Przeglądaj źródła

mdns: always send A/AAAA records in announcements

Jiacheng Guo 4 lat temu
rodzic
commit
456f80b754
1 zmienionych plików z 6 dodań i 1 usunięć
  1. 6 1
      components/mdns/mdns.c

+ 6 - 1
components/mdns/mdns.c

@@ -1837,7 +1837,6 @@ static mdns_tx_packet_t * _mdns_create_announce_packet(mdns_if_t tcpip_if, mdns_
  */
  */
 static mdns_tx_packet_t * _mdns_create_announce_from_probe(mdns_tx_packet_t * probe)
 static mdns_tx_packet_t * _mdns_create_announce_from_probe(mdns_tx_packet_t * probe)
 {
 {
-
     mdns_tx_packet_t * packet = _mdns_alloc_packet_default(probe->tcpip_if, probe->ip_protocol);
     mdns_tx_packet_t * packet = _mdns_alloc_packet_default(probe->tcpip_if, probe->ip_protocol);
     if (!packet) {
     if (!packet) {
         return NULL;
         return NULL;
@@ -1854,6 +1853,12 @@ static mdns_tx_packet_t * _mdns_create_announce_from_probe(mdns_tx_packet_t * pr
                 _mdns_free_tx_packet(packet);
                 _mdns_free_tx_packet(packet);
                 return NULL;
                 return NULL;
             }
             }
+            mdns_host_item_t *host = mdns_get_host_item(s->service->hostname);
+            if (!_mdns_alloc_answer(&packet->answers, MDNS_TYPE_A, NULL, host, true, false)
+                    || !_mdns_alloc_answer(&packet->answers, MDNS_TYPE_AAAA, NULL, host, true, false)) {
+                _mdns_free_tx_packet(packet);
+                return NULL;
+            }
 
 
         } else if (s->type == MDNS_TYPE_A || s->type == MDNS_TYPE_AAAA) {
         } else if (s->type == MDNS_TYPE_A || s->type == MDNS_TYPE_AAAA) {
             if (!_mdns_alloc_answer(&packet->answers, s->type, NULL, s->host, true, false)) {
             if (!_mdns_alloc_answer(&packet->answers, s->type, NULL, s->host, true, false)) {