version 1.3, 2011/08/29 22:37:06
|
version 1.4, 2011/09/07 07:24:21
|
Line 127 rpc_srv_blobMap(rpc_srv_t * __restrict srv, rpc_blob_t
|
Line 127 rpc_srv_blobMap(rpc_srv_t * __restrict srv, rpc_blob_t
|
rpc_SetErr(EINVAL, "Error:: invalid arguments ...\n"); |
rpc_SetErr(EINVAL, "Error:: invalid arguments ...\n"); |
return -1; |
return -1; |
} |
} |
|
if (blob->blob_data) { |
|
rpc_SetErr(EPERM, "Error:: already mmapped object found!\n"); |
|
return -1; |
|
} |
|
|
memset(szFName, 0, sizeof szFName); |
memset(szFName, 0, sizeof szFName); |
snprintf(szFName, sizeof szFName, BLOB_FILE, srv->srv_blob.dir, blob->blob_var); |
snprintf(szFName, sizeof szFName, BLOB_FILE, srv->srv_blob.dir, blob->blob_var); |
Line 274 rpc_srv_recvBLOB(rpc_cli_t * __restrict cli, rpc_blob_
|
Line 278 rpc_srv_recvBLOB(rpc_cli_t * __restrict cli, rpc_blob_
|
* return: -1 error, 0 ok, 1 remote error |
* return: -1 error, 0 ok, 1 remote error |
*/ |
*/ |
int |
int |
rpc_cli_sendBLOB(rpc_cli_t * __restrict cli, rpc_val_t * __restrict var, void * __restrict data) | rpc_cli_sendBLOB(rpc_cli_t * __restrict cli, ait_val_t * __restrict var, void * __restrict data) |
{ |
{ |
int ret, len; |
int ret, len; |
uint8_t *pos; |
uint8_t *pos; |
Line 291 rpc_cli_sendBLOB(rpc_cli_t * __restrict cli, rpc_val_t
|
Line 295 rpc_cli_sendBLOB(rpc_cli_t * __restrict cli, rpc_val_t
|
hdr.hdr_cmd = set; |
hdr.hdr_cmd = set; |
hdr.hdr_var = 0; |
hdr.hdr_var = 0; |
hdr.hdr_ret = 0; |
hdr.hdr_ret = 0; |
hdr.hdr_len = var->val_len; | hdr.hdr_len = AIT_LEN(var); |
if (send(cli->cli_sock, &hdr, sizeof hdr, 0) == -1) { |
if (send(cli->cli_sock, &hdr, sizeof hdr, 0) == -1) { |
LOGERR; |
LOGERR; |
return -1; |
return -1; |
} |
} |
|
|
for (ret = var->val_len, pos = data; ret > 0; ret -= len, pos += len) | /* 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, 0)) == -1) { |
LOGERR; |
LOGERR; |
return -1; |
return -1; |
Line 318 rpc_cli_sendBLOB(rpc_cli_t * __restrict cli, rpc_val_t
|
Line 323 rpc_cli_sendBLOB(rpc_cli_t * __restrict cli, rpc_val_t
|
return -1; |
return -1; |
} |
} |
if (hdr.hdr_cmd != error) { |
if (hdr.hdr_cmd != error) { |
if (hdr.hdr_len != var->val_len) { | if (hdr.hdr_len != AIT_LEN(var)) { |
rpc_SetErr(ECANCELED, "Error:: Bad return length packet ...\n"); |
rpc_SetErr(ECANCELED, "Error:: Bad return length packet ...\n"); |
return -1; |
return -1; |
} |
} |
Line 337 rpc_cli_sendBLOB(rpc_cli_t * __restrict cli, rpc_val_t
|
Line 342 rpc_cli_sendBLOB(rpc_cli_t * __restrict cli, rpc_val_t
|
* return: -1 error, 0 ok, 1 remote error |
* return: -1 error, 0 ok, 1 remote error |
*/ |
*/ |
int |
int |
rpc_cli_recvBLOB(rpc_cli_t * __restrict cli, rpc_val_t * __restrict var, void ** data) | rpc_cli_recvBLOB(rpc_cli_t * __restrict cli, ait_val_t * __restrict var, void ** __restrict data) |
{ |
{ |
int ret, len; |
int ret, len; |
uint8_t *pos; |
uint8_t *pos; |
Line 350 rpc_cli_recvBLOB(rpc_cli_t * __restrict cli, rpc_val_t
|
Line 355 rpc_cli_recvBLOB(rpc_cli_t * __restrict cli, rpc_val_t
|
return -1; |
return -1; |
} |
} |
|
|
*data = malloc(var->val_len); | *data = malloc(AIT_LEN(var)); |
if (!*data) { |
if (!*data) { |
LOGERR; |
LOGERR; |
return -1; |
return -1; |
} else |
} else |
memset(*data, 0, var->val_len); | memset(*data, 0, AIT_LEN(var)); |
|
|
memcpy(&hdr.hdr_session, cli->cli_parent, sizeof(rpc_sess_t)); |
memcpy(&hdr.hdr_session, cli->cli_parent, sizeof(rpc_sess_t)); |
hdr.hdr_cmd = get; |
hdr.hdr_cmd = get; |
hdr.hdr_var = (uint32_t) RPC_GET_BLOB(var); | hdr.hdr_var = (uint32_t) AIT_GET_BLOB(var); |
hdr.hdr_ret = 0; |
hdr.hdr_ret = 0; |
hdr.hdr_len = 0; |
hdr.hdr_len = 0; |
if (send(cli->cli_sock, &hdr, sizeof hdr, 0) == -1) { |
if (send(cli->cli_sock, &hdr, sizeof hdr, 0) == -1) { |
Line 369 rpc_cli_recvBLOB(rpc_cli_t * __restrict cli, rpc_val_t
|
Line 374 rpc_cli_recvBLOB(rpc_cli_t * __restrict cli, rpc_val_t
|
return -1; |
return -1; |
} |
} |
|
|
for (ret = var->val_len, pos = *data; ret > 0; ret -= len, pos += len) { | /* receive BLOB from server */ |
| for (ret = AIT_LEN(var), pos = *data; ret > 0; ret -= len, pos += len) { |
FD_ZERO(&fds); |
FD_ZERO(&fds); |
FD_SET(cli->cli_sock, &fds); |
FD_SET(cli->cli_sock, &fds); |
len = select(cli->cli_sock + 1, &fds, NULL, NULL, &tv); |
len = select(cli->cli_sock + 1, &fds, NULL, NULL, &tv); |
Line 409 rpc_cli_recvBLOB(rpc_cli_t * __restrict cli, rpc_val_t
|
Line 415 rpc_cli_recvBLOB(rpc_cli_t * __restrict cli, rpc_val_t
|
return -1; |
return -1; |
} |
} |
if (hdr.hdr_cmd != error) { |
if (hdr.hdr_cmd != error) { |
if (hdr.hdr_len != var->val_len) { | if (hdr.hdr_len != AIT_LEN(var)) { |
rpc_SetErr(ECANCELED, "Error:: Bad return length packet ...\n"); |
rpc_SetErr(ECANCELED, "Error:: Bad return length packet ...\n"); |
free(*data); |
free(*data); |
*data = NULL; |
*data = NULL; |
Line 427 rpc_cli_recvBLOB(rpc_cli_t * __restrict cli, rpc_val_t
|
Line 433 rpc_cli_recvBLOB(rpc_cli_t * __restrict cli, rpc_val_t
|
* return: -1 error, 0 ok, 1 remote error |
* return: -1 error, 0 ok, 1 remote error |
*/ |
*/ |
int |
int |
rpc_cli_delBLOB(rpc_cli_t * __restrict cli, rpc_val_t * __restrict var) | rpc_cli_delBLOB(rpc_cli_t * __restrict cli, ait_val_t * __restrict var) |
{ |
{ |
struct tagBLOBHdr hdr; |
struct tagBLOBHdr hdr; |
fd_set fds; |
fd_set fds; |
Line 440 rpc_cli_delBLOB(rpc_cli_t * __restrict cli, rpc_val_t
|
Line 446 rpc_cli_delBLOB(rpc_cli_t * __restrict cli, rpc_val_t
|
|
|
memcpy(&hdr.hdr_session, cli->cli_parent, sizeof(rpc_sess_t)); |
memcpy(&hdr.hdr_session, cli->cli_parent, sizeof(rpc_sess_t)); |
hdr.hdr_cmd = unset; |
hdr.hdr_cmd = unset; |
hdr.hdr_var = (uint32_t) RPC_GET_BLOB(var); | hdr.hdr_var = (uint32_t) AIT_GET_BLOB(var); |
hdr.hdr_ret = 0; |
hdr.hdr_ret = 0; |
hdr.hdr_len = 0; |
hdr.hdr_len = 0; |
if (send(cli->cli_sock, &hdr, sizeof hdr, 0) == -1) { |
if (send(cli->cli_sock, &hdr, sizeof hdr, 0) == -1) { |
Line 474 rpc_cli_delBLOB(rpc_cli_t * __restrict cli, rpc_val_t
|
Line 480 rpc_cli_delBLOB(rpc_cli_t * __restrict cli, rpc_val_t
|
* return: -1 error, 0 ok, 1 remote error |
* return: -1 error, 0 ok, 1 remote error |
*/ |
*/ |
inline int |
inline int |
rpc_cli_getBLOB(rpc_cli_t * __restrict cli, rpc_val_t * __restrict var, void ** data) | rpc_cli_getBLOB(rpc_cli_t * __restrict cli, ait_val_t * __restrict var, void ** __restrict data) |
{ |
{ |
int ret; |
int ret; |
|
|