version 1.1.2.2, 2010/06/23 16:23:31
|
version 1.1.2.3, 2010/06/23 17:29:07
|
Line 94 rpc_srv_blobFree(rpc_srv_t * __restrict srv, rpc_blob_
|
Line 94 rpc_srv_blobFree(rpc_srv_t * __restrict srv, rpc_blob_
|
|
|
// ------------------------------------------------------------ |
// ------------------------------------------------------------ |
|
|
|
/* |
|
* rpc_srv_sendBLOB() Send mapped BLOB to client |
|
* @cli = Client instance |
|
* @blob = Mapped BLOB element |
|
* return: -1 error, 0 ok |
|
*/ |
int |
int |
rpc_srv_sendBLOB(rpc_cli_t * __restrict cli, rpc_blob_t *blob) | rpc_srv_sendBLOB(rpc_cli_t * __restrict cli, rpc_blob_t * __restrict blob) |
{ |
{ |
int ret = 0; | int ret, len; |
uint8_t buf[BLOBSIZ]; | uint8_t *pos; |
|
|
if (!cli || !blob) { | if (!cli || !blob || !blob->blob_data) { |
rpc_SetErr(EINVAL, "Error:: invalid arguments ...\n"); |
rpc_SetErr(EINVAL, "Error:: invalid arguments ...\n"); |
return -1; |
return -1; |
} |
} |
|
|
do { | for (ret = blob->blob_len, pos = blob->blob_data; ret > 0; ret -= len, pos += len) |
} while (ret); | if ((len = send(cli->cli_sock, pos, ret > BLOBSIZ ? BLOBSIZ : ret, 0)) == -1) { |
| LOGERR; |
| return -1; |
| } |
|
|
return blob->blob_len; | return ret; |
| } |
| |
| /* |
| * rpc_srv_recvBLOB() Receive BLOB from client |
| * @cli = Client instance |
| * return: -1 error, 0 ok |
| */ |
| int |
| rpc_srv_recvBLOB(rpc_cli_t * __restrict cli) |
| { |
| int ret, len; |
| uint8_t *pos; |
| rpc_srv_t *s; |
| |
| if (!cli || !cli->cli_parent) { |
| rpc_SetErr(EINVAL, "Error:: invalid arguments ...\n"); |
| return -1; |
| } else |
| s = cli->cli_parent; |
| |
| |
| return ret; |
} |
} |