diff options
| author | Linus Torvalds <torvalds@g5.osdl.org> | 2005-10-12 19:07:59 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-10-12 19:07:59 -0700 |
| commit | 02d31ed258434b29eb0e3a10f5ede6eecd46b6ba (patch) | |
| tree | e901ed8af00756086e2da1a5e0c52602d2b01603 /net/dccp/input.c | |
| parent | 1b66e9fe8523cc239b6bea8443a860f50aeb2a83 (diff) | |
| parent | 9ff5c59ce278c37bca22fbf98076d199bcaf9845 (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 | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/net/dccp/input.c b/net/dccp/input.c index 1b6b2cb1237..3454d594190 100644 --- a/net/dccp/input.c +++ b/net/dccp/input.c @@ -375,6 +375,9 @@ static int dccp_rcv_respond_partopen_state_process(struct sock *sk, case DCCP_PKT_RESET: inet_csk_clear_xmit_timer(sk, ICSK_TIME_DACK); break; + case DCCP_PKT_DATA: + if (sk->sk_state == DCCP_RESPOND) + break; case DCCP_PKT_DATAACK: case DCCP_PKT_ACK: /* @@ -393,7 +396,8 @@ static int dccp_rcv_respond_partopen_state_process(struct sock *sk, dccp_sk(sk)->dccps_osr = DCCP_SKB_CB(skb)->dccpd_seq; dccp_set_state(sk, DCCP_OPEN); - if (dh->dccph_type == DCCP_PKT_DATAACK) { + if (dh->dccph_type == DCCP_PKT_DATAACK || + dh->dccph_type == DCCP_PKT_DATA) { dccp_rcv_established(sk, skb, dh, len); queued = 1; /* packet was queued (by dccp_rcv_established) */ |
