summaryrefslogtreecommitdiffstats
path: root/sys/netinet6
diff options
context:
space:
mode:
authoritojun <itojun@FreeBSD.org>2000-06-22 16:48:59 +0000
committeritojun <itojun@FreeBSD.org>2000-06-22 16:48:59 +0000
commit91ac8e99a3d839c7abc32acd383807779b2ab56d (patch)
tree60b7fd3ef07c5c1f452047af3a9413ea71c70888 /sys/netinet6
parent77729ceb43ab5503e7ad253493cf45995d695c40 (diff)
downloadFreeBSD-src-91ac8e99a3d839c7abc32acd383807779b2ab56d.zip
FreeBSD-src-91ac8e99a3d839c7abc32acd383807779b2ab56d.tar.gz
correct bad TTL with packets generated by v4 mapped udp. from kame
Diffstat (limited to 'sys/netinet6')
-rw-r--r--sys/netinet6/udp6_usrreq.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/sys/netinet6/udp6_usrreq.c b/sys/netinet6/udp6_usrreq.c
index abcac27..b42bc18 100644
--- a/sys/netinet6/udp6_usrreq.c
+++ b/sys/netinet6/udp6_usrreq.c
@@ -647,6 +647,13 @@ udp6_attach(struct socket *so, int proto, struct proc *p)
inp->inp_vflag |= INP_IPV6;
inp->in6p_hops = -1; /* use kernel default */
inp->in6p_cksum = -1; /* just to be sure */
+ /*
+ * XXX: ugly!!
+ * IPv4 TTL initialization is necessary for an IPv6 socket as well,
+ * because the socket may be bound to an IPv6 wildcard address,
+ * which may match an IPv4-mapped IPv6 address.
+ */
+ inp->inp_ip_ttl = ip_defttl;
#ifdef IPSEC
error = ipsec_init_policy(so, &inp->in6p_sp);
if (error != 0) {
OpenPOWER on IntegriCloud