Undefine IPv6 compat defs to fix nat_version()

For Linux netfilter, IPV6_ORIGINAL_DST and SOL_IPV6 are defined to
SO_ORIGINAL_DST and SOL_IP respectively if they are not defined by the
system headers (they aren't defined on vanilla kernels).  Undefine these
compatibility definitions after use, in order not to mess up the
diagnostic output of nat_version().
pull/13/head
Daniel Roethlisberger 12 years ago
parent 419cb7d31f
commit f76077c00f

10
nat.c

@ -306,9 +306,11 @@ nat_ipfilter_lookup_cb(struct sockaddr *dst_addr, socklen_t *dst_addrlen,
*/
#ifndef IPV6_ORIGINAL_DST
#define IPV6_ORIGINAL_DST SO_ORIGINAL_DST
#define IPV6_ORIGINAL_DST_UNDEF
#endif /* !IPV6_ORIGINAL_DST */
#ifndef SOL_IPV6
#define SOL_IPV6 SOL_IP
#define SOL_IPV6_UNDEF
#endif /* !SOL_IPV6 */
static int
nat_netfilter_lookup_cb(struct sockaddr *dst_addr, socklen_t *dst_addrlen,
@ -335,6 +337,14 @@ nat_netfilter_lookup_cb(struct sockaddr *dst_addr, socklen_t *dst_addrlen,
}
return rv;
}
#ifdef IPV6_ORIGINAL_DST_UNDEF
#undef IPV6_ORIGINAL_DST
#undef IPV6_ORIGINAL_DST_UNDEF
#endif /* IPV6_ORIGINAL_DST_UNDEF */
#ifdef SOL_IPV6_UNDEF
#undef SOL_IPV6
#undef SOL_IPV6_UNDEF
#endif /* SOL_IPV6_UNDEF */
#ifdef IP_TRANSPARENT
/*

Loading…
Cancel
Save