diff --git a/src/core/dhcp.c b/src/core/dhcp.c index 1881b930..bf110acd 100644 --- a/src/core/dhcp.c +++ b/src/core/dhcp.c @@ -1215,7 +1215,7 @@ dhcp_release(struct netif *netif) /* idle DHCP client */ dhcp_set_state(dhcp, DHCP_STATE_OFF); /* clean old DHCP offer */ - ip_addr_set_zero(&dhcp->server_ip_addr); + ip_addr_set_zero_ip4(&dhcp->server_ip_addr); ip4_addr_set_zero(&dhcp->offered_ip_addr); ip4_addr_set_zero(&dhcp->offered_sn_mask); ip4_addr_set_zero(&dhcp->offered_gw_addr); diff --git a/src/include/lwip/ip_addr.h b/src/include/lwip/ip_addr.h index eab3171e..e7875889 100644 --- a/src/include/lwip/ip_addr.h +++ b/src/include/lwip/ip_addr.h @@ -113,6 +113,8 @@ static const ip4_addr_t* ip_2_ip4_c(const ip_addr_t *ipaddr) ip4_addr_set(ip_2_ip4(dest), ip_2_ip4_c(src)); IP_SET_TYPE(dest, IPADDR_TYPE_V4); }}while(0) #define ip_addr_set_zero(ipaddr) do{ \ ip6_addr_set_zero(ip_2_ip6(ipaddr)); IP_SET_TYPE(ipaddr, 0); }while(0) +#define ip_addr_set_zero_ip4(ipaddr) do{ \ + ip6_addr_set_zero(ip_2_ip6(ipaddr)); IP_SET_TYPE(ipaddr, IPADDR_TYPE_V4); }while(0) #define ip_addr_set_zero_ip6(ipaddr) do{ \ ip6_addr_set_zero(ip_2_ip6(ipaddr)); IP_SET_TYPE(ipaddr, IPADDR_TYPE_V6); }while(0) #define ip_addr_set_any(is_ipv6, ipaddr) do{if(is_ipv6){ \ @@ -187,6 +189,7 @@ typedef ip4_addr_t ip_addr_t; #define ip_addr_set(dest, src) ip4_addr_set(dest, src) #define ip_addr_set_ipaddr(dest, src) ip4_addr_set(dest, src) #define ip_addr_set_zero(ipaddr) ip4_addr_set_zero(ipaddr) +#define ip_addr_set_zero_ip4(ipaddr) ip4_addr_set_zero(ipaddr) #define ip_addr_set_any(is_ipv6, ipaddr) ip4_addr_set_any(ipaddr) #define ip_addr_set_loopback(is_ipv6, ipaddr) ip4_addr_set_loopback(ipaddr) #define ip_addr_set_hton(dest, src) ip4_addr_set_hton(dest, src)