Diff for /libaitrpc/src/blob.c between versions 1.4.4.4 and 1.6.2.1

version 1.4.4.4, 2012/03/15 01:22:55 version 1.6.2.1, 2012/05/11 09:18:13
Line 195  rpc_srv_blobFree(rpc_srv_t * __restrict srv, rpc_blob_ Line 195  rpc_srv_blobFree(rpc_srv_t * __restrict srv, rpc_blob_
                 rpc_srv_blobUnmap(blob);                  rpc_srv_blobUnmap(blob);
   
         memset(szFName, 0, sizeof szFName);          memset(szFName, 0, sizeof szFName);
         LOGGER("dir=%s", AIT_GET_LIKE(&srv->srv_blob.dir, char*));  
         snprintf(szFName, sizeof szFName, BLOB_FILE, AIT_GET_STR(&srv->srv_blob.dir), blob->blob_var);          snprintf(szFName, sizeof szFName, BLOB_FILE, AIT_GET_STR(&srv->srv_blob.dir), blob->blob_var);
         if (unlink(szFName) == -1) {          if (unlink(szFName) == -1) {
                 LOGERR;                  LOGERR;
Line 248  rpc_srv_recvBLOB(rpc_cli_t * __restrict cli, rpc_blob_ Line 247  rpc_srv_recvBLOB(rpc_cli_t * __restrict cli, rpc_blob_
 {  {
         int ret, len;          int ret, len;
         uint8_t *pos;          uint8_t *pos;
        fd_set fds;        struct pollfd pfd;
        struct timeval tv = { DEF_RPC_TIMEOUT, 0 }; 
   
         if (!cli || !blob || !blob->blob_data) {          if (!cli || !blob || !blob->blob_data) {
                 rpc_SetErr(EINVAL, "Invalid arguments");                  rpc_SetErr(EINVAL, "Invalid arguments");
                 return -1;                  return -1;
        } else        }
                tv.tv_sec = ((rpc_sess_t*) cli->cli_parent)->sess_timeout; 
   
           pfd.fd = cli->cli_sock;
           pfd.events = POLLIN | POLLPRI;
         for (ret = blob->blob_len, pos = blob->blob_data; ret > 0; ret -= len, pos += len) {          for (ret = blob->blob_len, pos = blob->blob_data; ret > 0; ret -= len, pos += len) {
                FD_ZERO(&fds);                if ((len = poll(&pfd, 1, ((rpc_sess_t*) cli->cli_parent)->sess_timeout * 1000)) == -1 || 
                FD_SET(cli->cli_sock, &fds);                                pfd.revents & (POLLERR | POLLHUP | POLLNVAL)) {
                len = select(cli->cli_sock + 1, &fds, NULL, NULL, &tv); 
                if (len < 1) { 
                         LOGERR;                          LOGERR;
                         return -1;                          return -1;
                 }                  }
Line 308  rpc_cli_sendBLOB(rpc_cli_t * __restrict cli, ait_val_t Line 305  rpc_cli_sendBLOB(rpc_cli_t * __restrict cli, ait_val_t
         hdr.hdr_len = htonl(AIT_LEN(var));          hdr.hdr_len = htonl(AIT_LEN(var));
         /* calculate CRC */          /* calculate CRC */
         hdr.hdr_crc ^= hdr.hdr_crc;          hdr.hdr_crc ^= hdr.hdr_crc;
        hdr.hdr_crc = htons(crcFletcher16((u_short*) &hdr, io_align(sizeof hdr, 1) / 2));        hdr.hdr_crc = htons(crcFletcher16((u_short*) &hdr, sizeof hdr / 2));
   
         /* send SET request */          /* send SET request */
         if (send(cli->cli_sock, &hdr, sizeof hdr, 0) == -1) {          if (send(cli->cli_sock, &hdr, sizeof hdr, 0) == -1) {
Line 341  rpc_cli_sendBLOB(rpc_cli_t * __restrict cli, ait_val_t Line 338  rpc_cli_sendBLOB(rpc_cli_t * __restrict cli, ait_val_t
         /* check CRC */          /* check CRC */
         ret = ntohs(hdr.hdr_crc);          ret = ntohs(hdr.hdr_crc);
         hdr.hdr_crc ^= hdr.hdr_crc;          hdr.hdr_crc ^= hdr.hdr_crc;
        if (ret != crcFletcher16((u_short*) &hdr, io_align(sizeof hdr, 1) / 2)) {        if (ret != crcFletcher16((u_short*) &hdr, sizeof hdr / 2)) {
                 rpc_SetErr(ERPCMISMATCH, "Bad CRC BLOB packet");                  rpc_SetErr(ERPCMISMATCH, "Bad CRC BLOB packet");
                 return 1;                  return 1;
         }          }
Line 395  rpc_cli_recvBLOB(rpc_cli_t * __restrict cli, ait_val_t Line 392  rpc_cli_recvBLOB(rpc_cli_t * __restrict cli, ait_val_t
         hdr.hdr_len = 0;          hdr.hdr_len = 0;
         /* calculate CRC */          /* calculate CRC */
         hdr.hdr_crc ^= hdr.hdr_crc;          hdr.hdr_crc ^= hdr.hdr_crc;
        hdr.hdr_crc = htons(crcFletcher16((u_short*) &hdr, io_align(sizeof hdr, 1) / 2));        hdr.hdr_crc = htons(crcFletcher16((u_short*) &hdr, sizeof hdr / 2));
   
         /* send GET request */          /* send GET request */
         if (send(cli->cli_sock, &hdr, sizeof hdr, 0) == -1) {          if (send(cli->cli_sock, &hdr, sizeof hdr, 0) == -1) {
Line 449  rpc_cli_recvBLOB(rpc_cli_t * __restrict cli, ait_val_t Line 446  rpc_cli_recvBLOB(rpc_cli_t * __restrict cli, ait_val_t
         /* check CRC */          /* check CRC */
         ret = ntohs(hdr.hdr_crc);          ret = ntohs(hdr.hdr_crc);
         hdr.hdr_crc ^= hdr.hdr_crc;          hdr.hdr_crc ^= hdr.hdr_crc;
        if (ret != crcFletcher16((u_short*) &hdr, io_align(sizeof hdr, 1) / 2)) {        if (ret != crcFletcher16((u_short*) &hdr, sizeof hdr / 2)) {
                 rpc_SetErr(ERPCMISMATCH, "Bad CRC BLOB packet");                  rpc_SetErr(ERPCMISMATCH, "Bad CRC BLOB packet");
                 free(*data);                  free(*data);
                 *data = NULL;                  *data = NULL;
Line 495  rpc_cli_delBLOB(rpc_cli_t * __restrict cli, ait_val_t  Line 492  rpc_cli_delBLOB(rpc_cli_t * __restrict cli, ait_val_t 
         hdr.hdr_len = 0;          hdr.hdr_len = 0;
         /* calculate CRC */          /* calculate CRC */
         hdr.hdr_crc ^= hdr.hdr_crc;          hdr.hdr_crc ^= hdr.hdr_crc;
        hdr.hdr_crc = htons(crcFletcher16((u_short*) &hdr, io_align(sizeof hdr, 1) / 2));        hdr.hdr_crc = htons(crcFletcher16((u_short*) &hdr, sizeof hdr / 2));
   
         /* send UNSET request */          /* send UNSET request */
         if (send(cli->cli_sock, &hdr, sizeof hdr, 0) == -1) {          if (send(cli->cli_sock, &hdr, sizeof hdr, 0) == -1) {
Line 521  rpc_cli_delBLOB(rpc_cli_t * __restrict cli, ait_val_t  Line 518  rpc_cli_delBLOB(rpc_cli_t * __restrict cli, ait_val_t 
         /* check CRC */          /* check CRC */
         ret = ntohs(hdr.hdr_crc);          ret = ntohs(hdr.hdr_crc);
         hdr.hdr_crc ^= hdr.hdr_crc;          hdr.hdr_crc ^= hdr.hdr_crc;
        if (ret != crcFletcher16((u_short*) &hdr, io_align(sizeof hdr, 1) / 2)) {        if (ret != crcFletcher16((u_short*) &hdr, sizeof hdr / 2)) {
                 rpc_SetErr(ERPCMISMATCH, "Bad CRC BLOB packet");                  rpc_SetErr(ERPCMISMATCH, "Bad CRC BLOB packet");
                 return 1;                  return 1;
         }          }

Removed from v.1.4.4.4  
changed lines
  Added in v.1.6.2.1


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