version 1.7.2.3, 2012/03/29 00:40:59
|
version 1.7.2.4, 2012/03/29 01:23:59
|
Line 87 txPacket(sched_task_t *task)
|
Line 87 txPacket(sched_task_t *task)
|
|
|
/* calculate CRC */ |
/* calculate CRC */ |
rpc->call_crc ^= rpc->call_crc; |
rpc->call_crc ^= rpc->call_crc; |
rpc->call_crc = htons(crcFletcher16((u_short*) buf, io_align(wlen, 1) / 2)); | rpc->call_crc = htons(crcFletcher16((u_short*) buf, wlen / 2)); |
|
|
/* send reply */ |
/* send reply */ |
ret = send(TASK_FD(task), buf, wlen, 0); |
ret = send(TASK_FD(task), buf, wlen, 0); |
Line 200 rxPacket(sched_task_t *task)
|
Line 200 rxPacket(sched_task_t *task)
|
/* check integrity of packet */ |
/* check integrity of packet */ |
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 + off), | if (crc != crcFletcher16((u_short*) (buf + off), ntohs(rpc->call_len) / 2)) { |
io_align(ntohs(rpc->call_len), 1) / 2)) { | |
rpc_SetErr(ERPCMISMATCH, "Bad CRC RPC packet"); |
rpc_SetErr(ERPCMISMATCH, "Bad CRC RPC packet"); |
|
|
off += ntohs(rpc->call_len); |
off += ntohs(rpc->call_len); |
Line 302 txBLOB(sched_task_t *task)
|
Line 301 txBLOB(sched_task_t *task)
|
|
|
/* calculate CRC */ |
/* calculate CRC */ |
blob->hdr_crc ^= blob->hdr_crc; |
blob->hdr_crc ^= blob->hdr_crc; |
blob->hdr_crc = htons(crcFletcher16((u_short*) buf, io_align(wlen, 1) / 2)); | blob->hdr_crc = htons(crcFletcher16((u_short*) buf, wlen / 2)); |
|
|
/* send reply */ |
/* send reply */ |
wlen = send(TASK_FD(task), buf, wlen, 0); |
wlen = send(TASK_FD(task), buf, wlen, 0); |
Line 364 rxBLOB(sched_task_t *task)
|
Line 363 rxBLOB(sched_task_t *task)
|
/* check integrity of packet */ |
/* check integrity of packet */ |
crc = ntohs(blob->hdr_crc); |
crc = ntohs(blob->hdr_crc); |
blob->hdr_crc ^= blob->hdr_crc; |
blob->hdr_crc ^= blob->hdr_crc; |
if (crc != crcFletcher16((u_short*) buf, io_align(rlen, 1) / 2)) { | if (crc != crcFletcher16((u_short*) buf, rlen / 2)) { |
rpc_SetErr(ERPCMISMATCH, "Bad CRC BLOB packet"); |
rpc_SetErr(ERPCMISMATCH, "Bad CRC BLOB packet"); |
schedRead(TASK_ROOT(task), rxBLOB, TASK_ARG(task), TASK_FD(task), |
schedRead(TASK_ROOT(task), rxBLOB, TASK_ARG(task), TASK_FD(task), |
TASK_DATA(task), TASK_DATLEN(task)); |
TASK_DATA(task), TASK_DATLEN(task)); |