--- libaitrpc/src/cli.c 2013/11/14 22:53:12 1.19.6.1 +++ libaitrpc/src/cli.c 2013/11/15 09:18:38 1.19.6.2 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: cli.c,v 1.19.6.1 2013/11/14 22:53:12 misho Exp $ +* $Id: cli.c,v 1.19.6.2 2013/11/15 09:18:38 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -304,10 +304,8 @@ rpc_pkt_Receive(int sock, int type, sockaddr_t * __res ret = rpc_Read(sock, type, !estlen ? MSG_PEEK : 0, NULL, buf, blen); else ret = rpc_Read(sock, type, !estlen ? MSG_PEEK : 0, sa, buf, blen); - if (ret < 1) { - LOGERR; + if (ret < 1) return -1; - } /* check for response from known address */ if (!estlen) { @@ -332,8 +330,9 @@ rpc_pkt_Receive(int sock, int type, sockaddr_t * __res break; } while (42); - if (ret < sizeof(struct tagRPCCall)) { - rpc_SetErr(ERPCMISMATCH, "Short RPC packet %d bytes", ret); + if (ret < sizeof(struct tagRPCCall) || estlen != ret) { + rpc_SetErr(ERPCMISMATCH, "RPC packet mismatch estimate %d bytes, but received %d\n", + estlen, ret); return -1; }