From 74cf7f9f926b4a3f6c595c368871bd1a83e58971 Mon Sep 17 00:00:00 2001 From: yuanjm Date: Fri, 9 Jul 2021 15:19:27 +0800 Subject: [PATCH] napt: Fix disbale IPv6 and enable NAPT will build error Closes https://github.com/espressif/esp-idf/issues/7217 --- src/core/ipv4/ip4_napt.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/core/ipv4/ip4_napt.c b/src/core/ipv4/ip4_napt.c index 16229ac4..2d224fe5 100644 --- a/src/core/ipv4/ip4_napt.c +++ b/src/core/ipv4/ip4_napt.c @@ -176,7 +176,7 @@ ip_napt_enable(u32_t addr, int enable) for (netif = netif_list; netif; netif = netif->next) { if (netif->napt) napt_in_any_netif = 1; - if (netif_is_up(netif) && !ip_addr_isany(&netif->ip_addr) && netif->ip_addr.u_addr.ip4.addr == addr && enable) { + if (netif_is_up(netif) && !ip_addr_isany(&netif->ip_addr) && (ip_2_ip4(&netif->ip_addr)->addr) == addr && enable) { netif->napt = 1; ip_napt_init(IP_NAPT_MAX, IP_PORTMAP_MAX); break; @@ -698,7 +698,7 @@ ip_napt_forward(struct pbuf *p, struct ip_hdr *iphdr, struct netif *inp, struct /* register src addr and iecho->id and dest info */ ip_napt_add(IP_PROTO_ICMP, iphdr->src.addr, iecho->id, iphdr->dest.addr, iecho->id); - ip_napt_modify_addr(iphdr, &iphdr->src, outp->ip_addr.u_addr.ip4.addr); + ip_napt_modify_addr(iphdr, &iphdr->src, ip_2_ip4(&outp->ip_addr)->addr); } return ERR_OK; @@ -745,8 +745,8 @@ ip_napt_forward(struct pbuf *p, struct ip_hdr *iphdr, struct netif *inp, struct if (mport != tcphdr->src) ip_napt_modify_port_tcp(tcphdr, 0, mport); - ip_napt_modify_addr_tcp(tcphdr, &iphdr->src, outp->ip_addr.u_addr.ip4.addr); - ip_napt_modify_addr(iphdr, &iphdr->src, outp->ip_addr.u_addr.ip4.addr); + ip_napt_modify_addr_tcp(tcphdr, &iphdr->src, ip_2_ip4(&outp->ip_addr)->addr); + ip_napt_modify_addr(iphdr, &iphdr->src, ip_2_ip4(&outp->ip_addr)->addr); return ERR_OK; } @@ -786,8 +786,8 @@ ip_napt_forward(struct pbuf *p, struct ip_hdr *iphdr, struct netif *inp, struct if (mport != udphdr->src) ip_napt_modify_port_udp(udphdr, 0, mport); - ip_napt_modify_addr_udp(udphdr, &iphdr->src, outp->ip_addr.u_addr.ip4.addr); - ip_napt_modify_addr(iphdr, &iphdr->src, outp->ip_addr.u_addr.ip4.addr); + ip_napt_modify_addr_udp(udphdr, &iphdr->src, ip_2_ip4(&outp->ip_addr)->addr); + ip_napt_modify_addr(iphdr, &iphdr->src, ip_2_ip4(&outp->ip_addr)->addr); return ERR_OK; } #endif