Diff for /libaitrpc/src/srv.c between versions 1.7.2.3 and 1.7.2.4

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));

Removed from v.1.7.2.3  
changed lines
  Added in v.1.7.2.4


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>