aboutsummaryrefslogtreecommitdiffstats
path: root/net/dccp
diff options
context:
space:
mode:
authorYOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>2006-11-14 22:07:45 -0500
committerDavid S. Miller <davem@sunset.davemloft.net>2006-12-03 00:22:39 -0500
commitcfb6eeb4c860592edd123fdea908d23c6ad1c7dc (patch)
tree361c073622faa540ef6602ef1b0a6e8c0a17fc60 /net/dccp
parentbf6bce71eae386dbc37f93af7e5ad173450d9945 (diff)
[TCP]: MD5 Signature Option (RFC2385) support.
Based on implementation by Rick Payne. Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/dccp')
-rw-r--r--net/dccp/ipv4.c6
-rw-r--r--net/dccp/ipv6.c6
-rw-r--r--net/dccp/minisocks.c2
3 files changed, 7 insertions, 7 deletions
diff --git a/net/dccp/ipv4.c b/net/dccp/ipv4.c
index 34d6d197c3b2..35985334daee 100644
--- a/net/dccp/ipv4.c
+++ b/net/dccp/ipv4.c
@@ -509,7 +509,7 @@ out:
509 return err; 509 return err;
510} 510}
511 511
512static void dccp_v4_ctl_send_reset(struct sk_buff *rxskb) 512static void dccp_v4_ctl_send_reset(struct sock *sk, struct sk_buff *rxskb)
513{ 513{
514 int err; 514 int err;
515 struct dccp_hdr *rxdh = dccp_hdr(rxskb), *dh; 515 struct dccp_hdr *rxdh = dccp_hdr(rxskb), *dh;
@@ -724,7 +724,7 @@ int dccp_v4_do_rcv(struct sock *sk, struct sk_buff *skb)
724 return 0; 724 return 0;
725 725
726reset: 726reset:
727 dccp_v4_ctl_send_reset(skb); 727 dccp_v4_ctl_send_reset(sk, skb);
728discard: 728discard:
729 kfree_skb(skb); 729 kfree_skb(skb);
730 return 0; 730 return 0;
@@ -913,7 +913,7 @@ no_dccp_socket:
913 if (dh->dccph_type != DCCP_PKT_RESET) { 913 if (dh->dccph_type != DCCP_PKT_RESET) {
914 DCCP_SKB_CB(skb)->dccpd_reset_code = 914 DCCP_SKB_CB(skb)->dccpd_reset_code =
915 DCCP_RESET_CODE_NO_CONNECTION; 915 DCCP_RESET_CODE_NO_CONNECTION;
916 dccp_v4_ctl_send_reset(skb); 916 dccp_v4_ctl_send_reset(sk, skb);
917 } 917 }
918 918
919discard_it: 919discard_it:
diff --git a/net/dccp/ipv6.c b/net/dccp/ipv6.c
index fc326173c215..e0a0607862ef 100644
--- a/net/dccp/ipv6.c
+++ b/net/dccp/ipv6.c
@@ -310,7 +310,7 @@ static void dccp_v6_reqsk_destructor(struct request_sock *req)
310 kfree_skb(inet6_rsk(req)->pktopts); 310 kfree_skb(inet6_rsk(req)->pktopts);
311} 311}
312 312
313static void dccp_v6_ctl_send_reset(struct sk_buff *rxskb) 313static void dccp_v6_ctl_send_reset(struct sock *sk, struct sk_buff *rxskb)
314{ 314{
315 struct dccp_hdr *rxdh = dccp_hdr(rxskb), *dh; 315 struct dccp_hdr *rxdh = dccp_hdr(rxskb), *dh;
316 const u32 dccp_hdr_reset_len = sizeof(struct dccp_hdr) + 316 const u32 dccp_hdr_reset_len = sizeof(struct dccp_hdr) +
@@ -805,7 +805,7 @@ static int dccp_v6_do_rcv(struct sock *sk, struct sk_buff *skb)
805 return 0; 805 return 0;
806 806
807reset: 807reset:
808 dccp_v6_ctl_send_reset(skb); 808 dccp_v6_ctl_send_reset(sk, skb);
809discard: 809discard:
810 if (opt_skb != NULL) 810 if (opt_skb != NULL)
811 __kfree_skb(opt_skb); 811 __kfree_skb(opt_skb);
@@ -902,7 +902,7 @@ no_dccp_socket:
902 if (dh->dccph_type != DCCP_PKT_RESET) { 902 if (dh->dccph_type != DCCP_PKT_RESET) {
903 DCCP_SKB_CB(skb)->dccpd_reset_code = 903 DCCP_SKB_CB(skb)->dccpd_reset_code =
904 DCCP_RESET_CODE_NO_CONNECTION; 904 DCCP_RESET_CODE_NO_CONNECTION;
905 dccp_v6_ctl_send_reset(skb); 905 dccp_v6_ctl_send_reset(sk, skb);
906 } 906 }
907 907
908discard_it: 908discard_it:
diff --git a/net/dccp/minisocks.c b/net/dccp/minisocks.c
index 0c49733f5be1..3975048d8094 100644
--- a/net/dccp/minisocks.c
+++ b/net/dccp/minisocks.c
@@ -246,7 +246,7 @@ listen_overflow:
246 DCCP_SKB_CB(skb)->dccpd_reset_code = DCCP_RESET_CODE_TOO_BUSY; 246 DCCP_SKB_CB(skb)->dccpd_reset_code = DCCP_RESET_CODE_TOO_BUSY;
247drop: 247drop:
248 if (dccp_hdr(skb)->dccph_type != DCCP_PKT_RESET) 248 if (dccp_hdr(skb)->dccph_type != DCCP_PKT_RESET)
249 req->rsk_ops->send_reset(skb); 249 req->rsk_ops->send_reset(sk, skb);
250 250
251 inet_csk_reqsk_queue_drop(sk, req, prev); 251 inet_csk_reqsk_queue_drop(sk, req, prev);
252 goto out; 252 goto out;