diff options
author | Arnaldo Carvalho de Melo <acme@mandriva.com> | 2005-12-14 02:24:53 -0500 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2006-01-03 16:10:52 -0500 |
commit | 3df80d9320bcaea72b1b4761a319c79cb3fdaf5f (patch) | |
tree | 20ca32dc85b1ec211c6bb91acd325e039bdb496f /net/dccp/minisocks.c | |
parent | 399c07def62a77678d633f5b3005431423a424a8 (diff) |
[DCCP]: Introduce DCCPv6
Still needs mucho polishing, specially in the checksum code, but works
just fine, inet_diag/iproute2 and all 8)
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/dccp/minisocks.c')
-rw-r--r-- | net/dccp/minisocks.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/net/dccp/minisocks.c b/net/dccp/minisocks.c index 5c767b5e9a52..29261fc198e7 100644 --- a/net/dccp/minisocks.c +++ b/net/dccp/minisocks.c | |||
@@ -52,7 +52,18 @@ void dccp_time_wait(struct sock *sk, int state, int timeo) | |||
52 | if (tw != NULL) { | 52 | if (tw != NULL) { |
53 | const struct inet_connection_sock *icsk = inet_csk(sk); | 53 | const struct inet_connection_sock *icsk = inet_csk(sk); |
54 | const int rto = (icsk->icsk_rto << 2) - (icsk->icsk_rto >> 1); | 54 | const int rto = (icsk->icsk_rto << 2) - (icsk->icsk_rto >> 1); |
55 | 55 | #if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) | |
56 | if (tw->tw_family == PF_INET6) { | ||
57 | const struct ipv6_pinfo *np = inet6_sk(sk); | ||
58 | struct inet6_timewait_sock *tw6; | ||
59 | |||
60 | tw->tw_ipv6_offset = inet6_tw_offset(sk->sk_prot); | ||
61 | tw6 = inet6_twsk((struct sock *)tw); | ||
62 | ipv6_addr_copy(&tw6->tw_v6_daddr, &np->daddr); | ||
63 | ipv6_addr_copy(&tw6->tw_v6_rcv_saddr, &np->rcv_saddr); | ||
64 | tw->tw_ipv6only = np->ipv6only; | ||
65 | } | ||
66 | #endif | ||
56 | /* Linkage updates. */ | 67 | /* Linkage updates. */ |
57 | __inet_twsk_hashdance(tw, sk, &dccp_hashinfo); | 68 | __inet_twsk_hashdance(tw, sk, &dccp_hashinfo); |
58 | 69 | ||