diff options
author | Arnaldo Carvalho de Melo <acme@mandriva.com> | 2006-03-20 22:25:24 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2006-03-20 22:25:24 -0500 |
commit | 017487d7d1e905a5bb529f6a2bc8cf8ea14e2307 (patch) | |
tree | 6a68904ea48ccae0c4c17f7dc248831fd46bd3e6 /net/dccp/ipv4.c | |
parent | e55d912f5b75723159348a7fc7692f869a86636a (diff) |
[DCCP]: Generalize dccp_v4_send_reset
Renaming it to dccp_send_reset and moving it from the ipv4 specific
code to the core dccp code.
This fixes some bugs in IPV6 where timers would send v4 resets, etc.
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/dccp/ipv4.c')
-rw-r--r-- | net/dccp/ipv4.c | 26 |
1 files changed, 0 insertions, 26 deletions
diff --git a/net/dccp/ipv4.c b/net/dccp/ipv4.c index f94286e46c42..3baf4c76a89d 100644 --- a/net/dccp/ipv4.c +++ b/net/dccp/ipv4.c | |||
@@ -457,32 +457,6 @@ void dccp_v4_send_check(struct sock *sk, int len, struct sk_buff *skb) | |||
457 | 457 | ||
458 | EXPORT_SYMBOL_GPL(dccp_v4_send_check); | 458 | EXPORT_SYMBOL_GPL(dccp_v4_send_check); |
459 | 459 | ||
460 | int dccp_v4_send_reset(struct sock *sk, enum dccp_reset_codes code) | ||
461 | { | ||
462 | struct sk_buff *skb; | ||
463 | /* | ||
464 | * FIXME: what if rebuild_header fails? | ||
465 | * Should we be doing a rebuild_header here? | ||
466 | */ | ||
467 | int err = inet_sk_rebuild_header(sk); | ||
468 | |||
469 | if (err != 0) | ||
470 | return err; | ||
471 | |||
472 | skb = dccp_make_reset(sk, sk->sk_dst_cache, code); | ||
473 | if (skb != NULL) { | ||
474 | const struct inet_sock *inet = inet_sk(sk); | ||
475 | |||
476 | memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt)); | ||
477 | err = ip_build_and_send_pkt(skb, sk, | ||
478 | inet->saddr, inet->daddr, NULL); | ||
479 | if (err == NET_XMIT_CN) | ||
480 | err = 0; | ||
481 | } | ||
482 | |||
483 | return err; | ||
484 | } | ||
485 | |||
486 | static inline u64 dccp_v4_init_sequence(const struct sock *sk, | 460 | static inline u64 dccp_v4_init_sequence(const struct sock *sk, |
487 | const struct sk_buff *skb) | 461 | const struct sk_buff *skb) |
488 | { | 462 | { |