--- libaitrpc/src/blob.c 2012/05/16 08:18:00 1.7.2.2 +++ libaitrpc/src/blob.c 2012/05/16 13:32:47 1.7.2.5 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: blob.c,v 1.7.2.2 2012/05/16 08:18:00 misho Exp $ +* $Id: blob.c,v 1.7.2.5 2012/05/16 13:32:47 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -61,13 +61,6 @@ rpc_srv_blobCreate(rpc_srv_t * __restrict srv, int len int f; u_int rnd; -#ifdef HAVE_SRANDOMDEV - srandomdev(); -#else - time_t tim; - - srandom((time(&tim) ^ getpid())); -#endif again: rnd = random() % UINT_MAX; @@ -165,7 +158,7 @@ rpc_srv_blobMap(rpc_srv_t * __restrict srv, rpc_blob_t inline void rpc_srv_blobUnmap(rpc_blob_t * __restrict blob) { - if (blob && blob->blob_data) + if (blob && blob->blob_data) { munmap(blob->blob_data, blob->blob_len); blob->blob_data = NULL; } @@ -301,14 +294,14 @@ rpc_cli_sendBLOB(rpc_cli_t * __restrict cli, ait_val_t hdr.hdr_crc = htons(crcFletcher16((u_short*) &hdr, sizeof hdr / 2)); /* send SET request */ - if (send(cli->cli_sock, &hdr, sizeof hdr, 0) == -1) { + if (send(cli->cli_sock, &hdr, sizeof hdr, MSG_NOSIGNAL) == -1) { LOGERR; return -1; } /* send BLOB to server */ for (ret = AIT_LEN(var), pos = data; ret > 0; ret -= len, pos += len) - if ((len = send(cli->cli_sock, pos, ret, 0)) == -1) { + if ((len = send(cli->cli_sock, pos, ret, MSG_NOSIGNAL)) == -1) { LOGERR; return -1; } @@ -316,7 +309,7 @@ rpc_cli_sendBLOB(rpc_cli_t * __restrict cli, ait_val_t /* wait for reply */ pfd.fd = cli->cli_sock; pfd.events = POLLIN | POLLPRI; - if ((ret = poll(&pfd, 1, ((rpc_sess_t*) cli->cli_parent)->sess_timeout * 1000)) < 1 || + if ((ret = poll(&pfd, 1, DEF_RPC_TIMEOUT * 1000)) < 1 || pfd.revents & (POLLERR | POLLHUP | POLLNVAL)) { if (ret) LOGERR; @@ -342,7 +335,7 @@ rpc_cli_sendBLOB(rpc_cli_t * __restrict cli, ait_val_t return 1; } - var->val.blob = ntohl(hdr.hdr_var); + AIT_SET_BLOB(var, ntohl(hdr.hdr_var), ntohl(hdr.hdr_len)); } return hdr.hdr_cmd == error; @@ -397,7 +390,7 @@ rpc_cli_recvBLOB(rpc_cli_t * __restrict cli, ait_val_t pfd.fd = cli->cli_sock; pfd.events = POLLIN | POLLPRI; for (ret = AIT_LEN(var), pos = *data; ret > 0; ret -= len, pos += len) { - if ((len = poll(&pfd, 1, ((rpc_sess_t*) cli->cli_parent)->sess_timeout * 1000)) < 1 || + if ((len = poll(&pfd, 1, DEF_RPC_TIMEOUT * 1000)) < 1 || pfd.revents & (POLLERR | POLLHUP | POLLNVAL)) { LOGERR; free(*data); @@ -414,7 +407,7 @@ rpc_cli_recvBLOB(rpc_cli_t * __restrict cli, ait_val_t } /* wait for reply */ - if ((len = poll(&pfd, 1, ((rpc_sess_t*) cli->cli_parent)->sess_timeout * 1000)) < 1 || + if ((len = poll(&pfd, 1, DEF_RPC_TIMEOUT * 1000)) < 1 || pfd.revents & (POLLERR | POLLHUP | POLLNVAL)) { if (len) LOGERR; @@ -480,7 +473,7 @@ rpc_cli_delBLOB(rpc_cli_t * __restrict cli, ait_val_t hdr.hdr_crc = htons(crcFletcher16((u_short*) &hdr, sizeof hdr / 2)); /* send UNSET request */ - if (send(cli->cli_sock, &hdr, sizeof hdr, 0) == -1) { + if (send(cli->cli_sock, &hdr, sizeof hdr, MSG_NOSIGNAL) == -1) { LOGERR; return -1; } @@ -488,7 +481,7 @@ rpc_cli_delBLOB(rpc_cli_t * __restrict cli, ait_val_t /* wait for reply */ pfd.fd = cli->cli_sock; pfd.events = POLLIN | POLLPRI; - if ((ret = poll(&pfd, 1, ((rpc_sess_t*) cli->cli_parent)->sess_timeout * 1000)) < 1 || + if ((ret = poll(&pfd, 1, DEF_RPC_TIMEOUT * 1000)) < 1 || pfd.revents & (POLLERR | POLLHUP | POLLNVAL)) { if (ret) LOGERR;