version 1.30.2.9, 2024/02/26 18:07:32
|
version 1.30.2.11, 2024/03/20 16:53:08
|
Line 147 _allocClient(rpc_srv_t * __restrict srv, sockaddr_t *
|
Line 147 _allocClient(rpc_srv_t * __restrict srv, sockaddr_t *
|
|
|
/* alloc empty buffer */ |
/* alloc empty buffer */ |
AIT_SET_BUFSIZ(&c->cli_buf, 0, srv->srv_netbuf); |
AIT_SET_BUFSIZ(&c->cli_buf, 0, srv->srv_netbuf); |
|
if (!AIT_GET_BUF(&c->cli_buf)) { |
|
array_Del(srv->srv_clients, n, 0); |
|
e_free(c); |
|
c = NULL; |
|
} |
} |
} |
|
|
return c; |
return c; |
Line 303 execCall(sched_task_t *task)
|
Line 308 execCall(sched_task_t *task)
|
taskExit(task, NULL); |
taskExit(task, NULL); |
} |
} |
|
|
int |
|
rpc_srv_Return(sched_root_task_t *root, rpc_cli_t *c) |
|
{ |
|
rpc_srv_t *s = c->cli_parent; |
|
u_char *buf = AIT_GET_BUF(&c->cli_buf); |
|
struct tagRPCCall *rpc = (struct tagRPCCall*) buf; |
|
|
|
if (!RPC_CHK_NOREPLY(rpc)) { |
|
rpc->call_argc = (u_char) array_Size(RPC_RETVARS(c)); |
|
schedWrite(root, cbProto[s->srv_proto][CB_TXPACKET], c, c->cli_sock, rpc, 0); |
|
} |
|
|
|
return rpc->call_argc; |
|
} |
|
|
|
static void * |
static void * |
rxPacket(sched_task_t *task) |
rxPacket(sched_task_t *task) |
{ |
{ |
rpc_cli_t *c = TASK_ARG(task); |
rpc_cli_t *c = TASK_ARG(task); |
rpc_srv_t *s = c->cli_parent; |
rpc_srv_t *s = c->cli_parent; |
int len, noreply = 0, rlen = AIT_LEN(&c->cli_buf); | int len, noreply = 0, rlen; |
#if 0 |
#if 0 |
u_short crc; |
u_short crc; |
#endif |
#endif |
Line 1013 rxEXTPacket(sched_task_t *task)
|
Line 1003 rxEXTPacket(sched_task_t *task)
|
{ |
{ |
rpc_srv_t *srv = TASK_ARG(task); |
rpc_srv_t *srv = TASK_ARG(task); |
rpc_cli_t *c = NULL; |
rpc_cli_t *c = NULL; |
int len, noreply = 0, rlen = AIT_LEN(&c->cli_buf); | int len, noreply = 0, rlen; |
struct tagRPCCall *rpc; |
struct tagRPCCall *rpc; |
struct timespec ts = { DEF_RPC_TIMEOUT, 0 }; |
struct timespec ts = { DEF_RPC_TIMEOUT, 0 }; |
sockaddr_t sa; |
sockaddr_t sa; |
Line 1981 rpc_srv_initServerExt(u_char InstID, int netBuf, int f
|
Line 1971 rpc_srv_initServerExt(u_char InstID, int netBuf, int f
|
rpc_register_srvPing(srv); |
rpc_register_srvPing(srv); |
|
|
return srv; |
return srv; |
|
} |
|
|
|
/* |
|
* rpc_srv_Return() - Prepare IPC return answer to RPC client |
|
* |
|
* @c = RPC client |
|
* return: number of arguments in response |
|
*/ |
|
int |
|
rpc_srv_Return(rpc_cli_t *c) |
|
{ |
|
rpc_srv_t *s = c->cli_parent; |
|
u_char *buf = AIT_GET_BUF(&c->cli_buf); |
|
struct tagRPCCall *rpc = (struct tagRPCCall*) buf; |
|
|
|
if (!RPC_CHK_NOREPLY(rpc)) { |
|
rpc->call_argc = (u_char) array_Size(RPC_RETVARS(c)); |
|
schedWrite(s->srv_root, cbProto[s->srv_proto][CB_TXPACKET], c, c->cli_sock, rpc, 0); |
|
} else |
|
rpc->call_argc ^= rpc->call_argc; |
|
|
|
return rpc->call_argc; |
} |
} |