]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - net/dccp/feat.c
dccp: Implement both feature-local and feature-remote Sequence Window feature
[net-next-2.6.git] / net / dccp / feat.c
index 67ffac9905f87d4ce1359e2b56759aa42167ec59..7303f79705d26b6b80c744a23197ca5ad962f3a2 100644 (file)
@@ -51,8 +51,17 @@ static int dccp_hdlr_ccid(struct sock *sk, u64 ccid, bool rx)
 
 static int dccp_hdlr_seq_win(struct sock *sk, u64 seq_win, bool rx)
 {
-       if (!rx)
-               dccp_msk(sk)->dccpms_sequence_window = seq_win;
+       struct dccp_sock *dp = dccp_sk(sk);
+
+       if (rx) {
+               dp->dccps_r_seq_win = seq_win;
+               /* propagate changes to update SWL/SWH */
+               dccp_update_gsr(sk, dp->dccps_gsr);
+       } else {
+               dp->dccps_l_seq_win = seq_win;
+               /* propagate changes to update AWL */
+               dccp_update_gss(sk, dp->dccps_gss);
+       }
        return 0;
 }