[DCCP] ccid3: Fix warning message about illegal ACK
authorGerrit Renker <gerrit@erg.abdn.ac.uk>
Sun, 3 Dec 2006 16:51:14 +0000 (14:51 -0200)
committerArnaldo Carvalho de Melo <acme@mandriva.com>
Sun, 3 Dec 2006 16:51:14 +0000 (14:51 -0200)
This avoids a (harmless) warning message being printed at the DCCP server
(the receiver of a DCCP half connection).

Incoming packets are both directed to

 * ccid_hc_rx_packet_recv() for the server half
 * ccid_hc_tx_packet_recv() for the client half

The message gets printed since on a server the client half is currently not
sending data packets.
This is resolved for the moment by checking the DCCP-role first. In future
times (bidirectional DCCP connections), this test may have to be more
sophisticated.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Acked-by: Ian McDonald <ian.mcdonald@jandi.co.nz>
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
net/dccp/ccids/ccid3.c

index bd353044c547d8c1b797114c14d9a7eadf19448d..721efc7ed319557ac8fe0c7927354200a1aff5c8 100644 (file)
@@ -555,7 +555,8 @@ static void ccid3_hc_tx_packet_recv(struct sock *sk, struct sk_buff *skb)
                hctx->ccid3hctx_idle = 1;   
                break;
        case TFRC_SSTATE_NO_SENT:
-               DCCP_WARN("Illegal ACK received - no packet has been sent\n");
+               if (dccp_sk(sk)->dccps_role == DCCP_ROLE_CLIENT)
+                       DCCP_WARN("Illegal ACK received - no packet sent\n");
                /* fall through */
        case TFRC_SSTATE_TERM:          /* ignore feedback when closing */
                break;