diff options
Diffstat (limited to 'net/dccp/input.c')
| -rw-r--r-- | net/dccp/input.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/net/dccp/input.c b/net/dccp/input.c index 8cde009e8b8..4222e7a654b 100644 --- a/net/dccp/input.c +++ b/net/dccp/input.c | |||
| @@ -614,6 +614,9 @@ int dccp_rcv_state_process(struct sock *sk, struct sk_buff *skb, | |||
| 614 | /* Caller (dccp_v4_do_rcv) will send Reset */ | 614 | /* Caller (dccp_v4_do_rcv) will send Reset */ |
| 615 | dcb->dccpd_reset_code = DCCP_RESET_CODE_NO_CONNECTION; | 615 | dcb->dccpd_reset_code = DCCP_RESET_CODE_NO_CONNECTION; |
| 616 | return 1; | 616 | return 1; |
| 617 | } else if (sk->sk_state == DCCP_CLOSED) { | ||
| 618 | dcb->dccpd_reset_code = DCCP_RESET_CODE_NO_CONNECTION; | ||
| 619 | return 1; | ||
| 617 | } | 620 | } |
| 618 | 621 | ||
| 619 | if (sk->sk_state != DCCP_REQUESTING && sk->sk_state != DCCP_RESPOND) { | 622 | if (sk->sk_state != DCCP_REQUESTING && sk->sk_state != DCCP_RESPOND) { |
| @@ -668,10 +671,6 @@ int dccp_rcv_state_process(struct sock *sk, struct sk_buff *skb, | |||
| 668 | } | 671 | } |
| 669 | 672 | ||
| 670 | switch (sk->sk_state) { | 673 | switch (sk->sk_state) { |
| 671 | case DCCP_CLOSED: | ||
| 672 | dcb->dccpd_reset_code = DCCP_RESET_CODE_NO_CONNECTION; | ||
| 673 | return 1; | ||
| 674 | |||
| 675 | case DCCP_REQUESTING: | 674 | case DCCP_REQUESTING: |
| 676 | queued = dccp_rcv_request_sent_state_process(sk, skb, dh, len); | 675 | queued = dccp_rcv_request_sent_state_process(sk, skb, dh, len); |
| 677 | if (queued >= 0) | 676 | if (queued >= 0) |
