Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=08831700cc65f85a497d6b32b1c83ca84d71de4a
Commit:     08831700cc65f85a497d6b32b1c83ca84d71de4a
Parent:     53465eb4ab16660eab0a7be168a087a97172e650
Author:     Gerrit Renker <[EMAIL PROTECTED]>
AuthorDate: Wed Sep 26 10:30:05 2007 -0300
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Wed Oct 10 16:52:40 2007 -0700

    [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]>
    Signed-off-by: Ian McDonald <[EMAIL PROTECTED]>
    Signed-off-by: Arnaldo Carvalho de Melo <[EMAIL PROTECTED]>
---
 net/dccp/input.c |    8 +++-----
 1 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/net/dccp/input.c b/net/dccp/input.c
index cde0e70..86ad3ba 100644
--- a/net/dccp/input.c
+++ b/net/dccp/input.c
@@ -540,11 +540,6 @@ int dccp_rcv_state_process(struct sock *sk, struct sk_buff 
*skb,
                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;
@@ -575,6 +570,9 @@ int dccp_rcv_state_process(struct sock *sk, struct sk_buff 
*skb,
                        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) {
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to