: Send Reset upon Sync in state REQUEST
PATCH 5/5 : Send Reset upon Sync in state REQUEST
[DCCP]: Send Reset upon Sync in state REQUEST
This fixes the code to correspond to RFC 4340, 7.5.4, which states the exception that a Sync received in state REQUEST generates a Reset (not a SyncAck).
To achieve this, only a small change is required. Since dccp_rcv_request_sent_state_process() already uses the correct Reset Code number 4 ("Packet Error"), we only need to shift the if-statement a few lines further down.
(To test this case: replace DCCP_PKT_RESPONSE with DCCP_PKT_SYNC
in dccp_make_response.)
Signed-off-by Gerrit Renker <[email protected]>
--- net/dccp/input.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-)
net/dccp/input.c +3 -5
@@ -551,11 +551,6 @@ int dccp_rcv_state_process(struct sock *return 0 ; } -if (unlikely (dh->dccph_type =DCCP_PKT_SYNC )) { -dccp_send_sync (sk, dcb->dccpd_seq,DCCP_PKT_SYNCACK ); - goto discard; - } -switch (sk->sk_state) {case DCCP_CLOSED : dcb->dccpd_reset_code =DCCP_RESET_CODE_NO_CONNECTION ;
@@ -586,6 +581,9 @@ int dccp_rcv_state_process(struct sock *sk_wake_async (sk,0 ,POLL_OUT );break ; } + }else if (unlikely (dh->dccph_type =DCCP_PKT_SYNC )) { +dccp_send_sync (sk, dcb->dccpd_seq,DCCP_PKT_SYNCACK ); + goto discard; }if (!queued) {