diff options
author | Andrea Bittau <a.bittau@cs.ucl.ac.uk> | 2006-03-20 20:43:56 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2006-03-20 20:43:56 -0500 |
commit | afe00251dd9b53d51de91ff0099961f42bbf3754 (patch) | |
tree | a56aa987140662cf3e6e65be402b8591298c5ced /net/dccp/minisocks.c | |
parent | 2a91aa3967398fb94eccc8da67c82bce9f67afdf (diff) |
[DCCP]: Initial feature negotiation implementation
Still needs more work, but boots and doesn't crashes, even
does some negotiation!
18:38:52.174934 127.0.0.1.43458 > 127.0.0.1.5001: request <change_l ack_ratio 2, change_r ccid 2, change_l ccid 2>
18:38:52.218526 127.0.0.1.5001 > 127.0.0.1.43458: response <nop, nop, change_l ack_ratio 2, confirm_r ccid 2 2, confirm_l ccid 2 2, confirm_r ack_ratio 2>
18:38:52.185398 127.0.0.1.43458 > 127.0.0.1.5001: <nop, confirm_r ack_ratio 2, ack_vector0 0x00, elapsed_time 212>
:-)
Signed-off-by: Andrea Bittau <a.bittau@cs.ucl.ac.uk>
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 | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/net/dccp/minisocks.c b/net/dccp/minisocks.c index a60a3e948c36..9e1de5919ee5 100644 --- a/net/dccp/minisocks.c +++ b/net/dccp/minisocks.c | |||
@@ -22,6 +22,7 @@ | |||
22 | #include "ackvec.h" | 22 | #include "ackvec.h" |
23 | #include "ccid.h" | 23 | #include "ccid.h" |
24 | #include "dccp.h" | 24 | #include "dccp.h" |
25 | #include "feat.h" | ||
25 | 26 | ||
26 | struct inet_timewait_death_row dccp_death_row = { | 27 | struct inet_timewait_death_row dccp_death_row = { |
27 | .sysctl_max_tw_buckets = NR_FILE * 2, | 28 | .sysctl_max_tw_buckets = NR_FILE * 2, |
@@ -114,6 +115,9 @@ struct sock *dccp_create_openreq_child(struct sock *sk, | |||
114 | newicsk->icsk_rto = DCCP_TIMEOUT_INIT; | 115 | newicsk->icsk_rto = DCCP_TIMEOUT_INIT; |
115 | do_gettimeofday(&newdp->dccps_epoch); | 116 | do_gettimeofday(&newdp->dccps_epoch); |
116 | 117 | ||
118 | if (dccp_feat_clone(sk, newsk)) | ||
119 | goto out_free; | ||
120 | |||
117 | if (newdp->dccps_options.dccpo_send_ack_vector) { | 121 | if (newdp->dccps_options.dccpo_send_ack_vector) { |
118 | newdp->dccps_hc_rx_ackvec = | 122 | newdp->dccps_hc_rx_ackvec = |
119 | dccp_ackvec_alloc(GFP_ATOMIC); | 123 | dccp_ackvec_alloc(GFP_ATOMIC); |