diff options
author | Andrea Bittau <a.bittau@cs.ucl.ac.uk> | 2006-01-04 01:26:15 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2006-01-04 01:26:15 +0300 |
commit | e84a9f5e9cd2b229dda24002334bc3cd36c1109d (patch) | |
tree | 4b4f51efb168618f507ce89645e4cb7d443e3742 /net | |
parent | 9e377202d2c968dde8efd6121d94c7f0a77787aa (diff) | |
download | linux-e84a9f5e9cd2b229dda24002334bc3cd36c1109d.tar.xz |
[DCCP]: Notify CCID only after ACK vectors have been processed.
The CCID should be notified of packet reception only when a packet is
valid. Therefore, the ACK vector needs to be processed before
notifying the CCID. Also, the CCID might need information provided by
the ACK vector.
Signed-off-by: Andrea Bittau <a.bittau@cs.ucl.ac.uk>
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r-- | net/dccp/input.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/net/dccp/input.c b/net/dccp/input.c index cb0f5c9af1ba..b6cba72b44e8 100644 --- a/net/dccp/input.c +++ b/net/dccp/input.c @@ -492,14 +492,14 @@ int dccp_rcv_state_process(struct sock *sk, struct sk_buff *skb, if (dcb->dccpd_ack_seq != DCCP_PKT_WITHOUT_ACK_SEQ) dccp_event_ack_recv(sk, skb); - ccid_hc_rx_packet_recv(dp->dccps_hc_rx_ccid, sk, skb); - ccid_hc_tx_packet_recv(dp->dccps_hc_tx_ccid, sk, skb); - if (dp->dccps_options.dccpo_send_ack_vector && dccp_ackvec_add(dp->dccps_hc_rx_ackvec, sk, DCCP_SKB_CB(skb)->dccpd_seq, DCCP_ACKVEC_STATE_RECEIVED)) goto discard; + + ccid_hc_rx_packet_recv(dp->dccps_hc_rx_ccid, sk, skb); + ccid_hc_tx_packet_recv(dp->dccps_hc_tx_ccid, sk, skb); } /* |