mdns: Fix wrong mdns source address if lwIP IPv6 zones disabled

The struct definition of ip6_addr_t in lwip and esp_ip6_addr_t
differs since zone could be possibly disabled in lwip. Using memcpy to copy the
address will cause wrong source address. Copy the entries manually
instead.

Merges https://github.com/espressif/esp-idf/pull/6055
pull/6192/head
David Cermak 2020-11-06 10:32:00 +01:00 zatwierdzone przez bot
rodzic e2716690bc
commit 7ac97616c1
1 zmienionych plików z 2 dodań i 1 usunięć

Wyświetl plik

@ -127,7 +127,8 @@ static void _udp_recv(void *arg, struct udp_pcb *upcb, struct pbuf *pb, const ip
packet->tcpip_if = MDNS_IF_MAX; packet->tcpip_if = MDNS_IF_MAX;
packet->pb = this_pb; packet->pb = this_pb;
packet->src_port = rport; packet->src_port = rport;
memcpy(&packet->src, raddr, sizeof(ip_addr_t)); packet->src.type = raddr->type;
memcpy(&packet->src.u_addr, &raddr->u_addr, sizeof(raddr->u_addr));
packet->dest.type = packet->src.type; packet->dest.type = packet->src.type;
if (packet->src.type == IPADDR_TYPE_V4) { if (packet->src.type == IPADDR_TYPE_V4) {