Browse Source

Minor: Add macros to map/unmap IPv6 mapped IPv4 addresses

STABLE-2_1_x
Dirk Ziegelmeier 10 years ago
parent
commit
c1eb6d8aa4
  1. 10
      src/include/lwip/ip_addr.h

10
src/include/lwip/ip_addr.h

@ -215,6 +215,16 @@ int ipaddr_aton(const char *cp, ip_addr_t *addr);
/** @ingroup ipaddr */
#define IPADDR_STRLEN_MAX IP6ADDR_STRLEN_MAX
#define ip4_2_ipv6_mapped_ipv4(ip6addr, ip4addr) do { \
(ip6addr)->addr[0] = 0; \
(ip6addr)->addr[1] = 0; \
(ip6addr)->addr[2] = PP_HTONL(0x0000FFFFUL); \
(ip6addr)->addr[3] = (ip4addr)->addr; } while(0);
#define unmap_ipv6_mapped_ipv4(target, source) do { \
(target)->u_addr.ip4.addr = (source)->u_addr.ip6.addr[3]; \
(target)->type = IPADDR_TYPE_V4; } while(0);
#else /* LWIP_IPV4 && LWIP_IPV6 */
#define IP_ADDR_PCB_VERSION_MATCH(addr, pcb) 1

Loading…
Cancel
Save