aboutsummaryrefslogtreecommitdiffstats
path: root/net/dccp/output.c
diff options
context:
space:
mode:
authorGerrit Renker <gerrit@erg.abdn.ac.uk>2006-11-13 10:34:38 -0500
committerDavid S. Miller <davem@sunset.davemloft.net>2006-12-03 00:22:22 -0500
commitd7f7365f5776723da6df73540d855069c2daaa5c (patch)
treecc63c8a85c4d6a768cee8da00577900215e786a8 /net/dccp/output.c
parent865e9022d88ceedd89fa1079a6e1f9266ccd3711 (diff)
[DCCPv6]: Choose a genuine initial sequence number
This * resolves a FIXME - DCCPv6 connections started all with an initial sequence number of 1; * provides a redirection `secure_dccpv6_sequence_number' in case the init_sequence_v6 code should be updated later; * concentrates the update of S.GAR into dccp_connect_init(); * removes a duplicate dccp_update_gss() in ipv4.c; * uses inet->dport instead of usin->sin_port, due to the following assignment in dccp_v4_connect(): inet->dport = usin->sin_port; Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk> Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
Diffstat (limited to 'net/dccp/output.c')
-rw-r--r--net/dccp/output.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/net/dccp/output.c b/net/dccp/output.c
index 08ee5547a2f2..0994b13f0f15 100644
--- a/net/dccp/output.c
+++ b/net/dccp/output.c
@@ -448,7 +448,6 @@ static inline void dccp_connect_init(struct sock *sk)
448 448
449 dccp_sync_mss(sk, dst_mtu(dst)); 449 dccp_sync_mss(sk, dst_mtu(dst));
450 450
451 dccp_update_gss(sk, dp->dccps_iss);
452 /* 451 /*
453 * SWL and AWL are initially adjusted so that they are not less than 452 * SWL and AWL are initially adjusted so that they are not less than
454 * the initial Sequence Numbers received and sent, respectively: 453 * the initial Sequence Numbers received and sent, respectively:
@@ -457,8 +456,13 @@ static inline void dccp_connect_init(struct sock *sk)
457 * These adjustments MUST be applied only at the beginning of the 456 * These adjustments MUST be applied only at the beginning of the
458 * connection. 457 * connection.
459 */ 458 */
459 dccp_update_gss(sk, dp->dccps_iss);
460 dccp_set_seqno(&dp->dccps_awl, max48(dp->dccps_awl, dp->dccps_iss)); 460 dccp_set_seqno(&dp->dccps_awl, max48(dp->dccps_awl, dp->dccps_iss));
461 461
462 /* S.GAR - greatest valid acknowledgement number received on a non-Sync;
463 * initialized to S.ISS (sec. 8.5) */
464 dp->dccps_gar = dp->dccps_iss;
465
462 icsk->icsk_retransmits = 0; 466 icsk->icsk_retransmits = 0;
463 init_timer(&dp->dccps_xmit_timer); 467 init_timer(&dp->dccps_xmit_timer);
464 dp->dccps_xmit_timer.data = (unsigned long)sk; 468 dp->dccps_xmit_timer.data = (unsigned long)sk;