diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2005-09-13 20:07:20 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-09-13 20:07:20 -0400 |
commit | d8ac10639b6a1ed900efbee38c18baaca31e64dc (patch) | |
tree | 511a3a60a0828df91658c50a4bffce481ced2454 /net/dccp/input.c | |
parent | b24fd48a0b9afe9a16bec94ab10d7e83c1b57ce6 (diff) | |
parent | 033d974405276c22609c45d50167dd11df20aa82 (diff) |
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Diffstat (limited to 'net/dccp/input.c')
-rw-r--r-- | net/dccp/input.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/net/dccp/input.c b/net/dccp/input.c index c60bc3433f5e..c74034cf7ede 100644 --- a/net/dccp/input.c +++ b/net/dccp/input.c | |||
@@ -50,7 +50,8 @@ static void dccp_rcv_closereq(struct sock *sk, struct sk_buff *skb) | |||
50 | return; | 50 | return; |
51 | } | 51 | } |
52 | 52 | ||
53 | dccp_set_state(sk, DCCP_CLOSING); | 53 | if (sk->sk_state != DCCP_CLOSING) |
54 | dccp_set_state(sk, DCCP_CLOSING); | ||
54 | dccp_send_close(sk, 0); | 55 | dccp_send_close(sk, 0); |
55 | } | 56 | } |
56 | 57 | ||
@@ -561,6 +562,12 @@ int dccp_rcv_state_process(struct sock *sk, struct sk_buff *skb, | |||
561 | return 0; | 562 | return 0; |
562 | } | 563 | } |
563 | 564 | ||
565 | if (unlikely(dh->dccph_type == DCCP_PKT_SYNC)) { | ||
566 | dccp_send_sync(sk, DCCP_SKB_CB(skb)->dccpd_seq, | ||
567 | DCCP_PKT_SYNCACK); | ||
568 | goto discard; | ||
569 | } | ||
570 | |||
564 | switch (sk->sk_state) { | 571 | switch (sk->sk_state) { |
565 | case DCCP_CLOSED: | 572 | case DCCP_CLOSED: |
566 | return 1; | 573 | return 1; |