aboutsummaryrefslogtreecommitdiffstats
path: root/net/dccp/ipv4.c
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <acme@mandriva.com>2006-03-20 22:25:24 -0500
committerDavid S. Miller <davem@davemloft.net>2006-03-20 22:25:24 -0500
commit017487d7d1e905a5bb529f6a2bc8cf8ea14e2307 (patch)
tree6a68904ea48ccae0c4c17f7dc248831fd46bd3e6 /net/dccp/ipv4.c
parente55d912f5b75723159348a7fc7692f869a86636a (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.c26
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
458EXPORT_SYMBOL_GPL(dccp_v4_send_check); 458EXPORT_SYMBOL_GPL(dccp_v4_send_check);
459 459
460int 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
486static inline u64 dccp_v4_init_sequence(const struct sock *sk, 460static inline u64 dccp_v4_init_sequence(const struct sock *sk,
487 const struct sk_buff *skb) 461 const struct sk_buff *skb)
488{ 462{