version 1.16.8.3, 2013/08/22 11:52:20
|
version 1.16.8.4, 2013/08/22 11:55:45
|
Line 390 rpc_pkt_Receive(int sock, int type, sockaddr_t * __res
|
Line 390 rpc_pkt_Receive(int sock, int type, sockaddr_t * __res
|
|
|
/* calc estimated length */ |
/* calc estimated length */ |
rpc = (struct tagRPCCall*) buf; |
rpc = (struct tagRPCCall*) buf; |
estlen = ntohs(rpc->call_len) + blen; | estlen = ntohl(rpc->call_len) + blen; |
printf("ret = %d len=%d\n", ret, estlen); |
printf("ret = %d len=%d\n", ret, estlen); |
if (estlen > AIT_LEN(pkt)) |
if (estlen > AIT_LEN(pkt)) |
AIT_RE_BUF(pkt, estlen); |
AIT_RE_BUF(pkt, estlen); |
Line 462 rpc_pkt_Request(ait_val_t * __restrict pkt, rpc_sess_t
|
Line 462 rpc_pkt_Request(ait_val_t * __restrict pkt, rpc_sess_t
|
} |
} |
|
|
/* total packet length */ |
/* total packet length */ |
rpc->call_len = htons(len); | rpc->call_len = htonl(len); |
|
|
if (!nocrc) { |
if (!nocrc) { |
/* calculate CRC */ |
/* calculate CRC */ |
Line 503 rpc_pkt_Replay(ait_val_t * __restrict pkt, rpc_sess_t
|
Line 503 rpc_pkt_Replay(ait_val_t * __restrict pkt, rpc_sess_t
|
/* calculate CRC */ |
/* calculate CRC */ |
crc = ntohs(rpc->call_crc); |
crc = ntohs(rpc->call_crc); |
rpc->call_crc ^= rpc->call_crc; |
rpc->call_crc ^= rpc->call_crc; |
if (crc != crcFletcher16((u_short*) buf, ntohs(rpc->call_len) / 2)) { | if (crc != crcFletcher16((u_short*) buf, ntohl(rpc->call_len) / 2)) { |
rpc_SetErr(ERPCMISMATCH, "Bad CRC RPC packet"); |
rpc_SetErr(ERPCMISMATCH, "Bad CRC RPC packet"); |
return -1; |
return -1; |
} |
} |
Line 529 rpc_pkt_Replay(ait_val_t * __restrict pkt, rpc_sess_t
|
Line 529 rpc_pkt_Replay(ait_val_t * __restrict pkt, rpc_sess_t
|
rpc_SetErr(EMSGSIZE, "Reply RPC packet not enough buffer space ..."); |
rpc_SetErr(EMSGSIZE, "Reply RPC packet not enough buffer space ..."); |
return -1; |
return -1; |
} |
} |
if (len > ntohs(rpc->call_len) - sizeof(struct tagRPCCall)) { | if (len > ntohl(rpc->call_len) - sizeof(struct tagRPCCall)) { |
rpc_SetErr(EMSGSIZE, "Reply RPC packet is too short ..."); |
rpc_SetErr(EMSGSIZE, "Reply RPC packet is too short ..."); |
return -1; |
return -1; |
} |
} |