mirror of
https://git.savannah.nongnu.org/git/lwip.git
synced 2026-05-29 19:46:19 +08:00
Dual-stack fixes in raw/udp/tcp
bind() may change IP type when previous type is IPADDR_TYPE_ANY connect() IP type must exactly match bind IP type Use correct IPADDRx_ANY type when calling ip_route()
This commit is contained in:
@@ -226,6 +226,8 @@ int ipaddr_aton(const char *cp, ip_addr_t *addr);
|
||||
#define unmap_ipv6_mapped_ipv4(ip4addr, ip6addr) \
|
||||
(ip4addr)->addr = (ip6addr)->addr[3];
|
||||
|
||||
#define IP46_ADDR_ANY(type) (((type) == IPADDR_TYPE_V6)? IP6_ADDR_ANY : IP4_ADDR_ANY)
|
||||
|
||||
#else /* LWIP_IPV4 && LWIP_IPV6 */
|
||||
|
||||
#define IP_ADDR_PCB_VERSION_MATCH(addr, pcb) 1
|
||||
@@ -274,6 +276,8 @@ typedef ip4_addr_t ip_addr_t;
|
||||
|
||||
#define IPADDR_STRLEN_MAX IP4ADDR_STRLEN_MAX
|
||||
|
||||
#define IP46_ADDR_ANY(type) (IP4_ADDR_ANY)
|
||||
|
||||
#else /* LWIP_IPV4 */
|
||||
|
||||
typedef ip6_addr_t ip_addr_t;
|
||||
@@ -315,6 +319,8 @@ typedef ip6_addr_t ip_addr_t;
|
||||
|
||||
#define IPADDR_STRLEN_MAX IP6ADDR_STRLEN_MAX
|
||||
|
||||
#define IP46_ADDR_ANY(type) (IP6_ADDR_ANY)
|
||||
|
||||
#endif /* LWIP_IPV4 */
|
||||
#endif /* LWIP_IPV4 && LWIP_IPV6 */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user