version 1.5.2.2, 2011/09/07 09:10:55
|
version 1.5.2.3, 2011/09/07 09:22:15
|
Line 60 rpc_srv_dispatchCall(void *arg)
|
Line 60 rpc_srv_dispatchCall(void *arg)
|
u_char *buf; |
u_char *buf; |
int ret, argc = 0, Limit = 0; |
int ret, argc = 0, Limit = 0; |
register int i; |
register int i; |
|
uint16_t tag = 0; |
|
uint32_t hash = 0; |
|
|
if (!arg) { |
if (!arg) { |
rpc_SetErr(EINVAL, "Error:: Invalid parameter can`t procced RPC client ...\n"); |
rpc_SetErr(EINVAL, "Error:: Invalid parameter can`t procced RPC client ...\n"); |
Line 110 rpc_srv_dispatchCall(void *arg)
|
Line 112 rpc_srv_dispatchCall(void *arg)
|
} else |
} else |
Limit = sizeof(struct tagRPCCall); |
Limit = sizeof(struct tagRPCCall); |
|
|
|
tag = rpc->call_tag; |
|
hash = rpc->call_hash; |
|
|
/* RPC is OK! Go decapsulate variables ... */ |
/* RPC is OK! Go decapsulate variables ... */ |
if (ntohs(rpc->call_argc)) { |
if (ntohs(rpc->call_argc)) { |
arr = io_buffer2vals(buf + Limit, s->srv_netbuf - Limit, |
arr = io_buffer2vals(buf + Limit, s->srv_netbuf - Limit, |
Line 124 rpc_srv_dispatchCall(void *arg)
|
Line 129 rpc_srv_dispatchCall(void *arg)
|
/* execute call */ |
/* execute call */ |
argc = 0; |
argc = 0; |
memcpy(&ses, &rpc->call_session, sizeof ses); |
memcpy(&ses, &rpc->call_session, sizeof ses); |
if (!(f = rpc_srv_getCall(s, ntohs(rpc->call_tag), ntohl(rpc->call_hash)))) { | if (!(f = rpc_srv_getCall(s, ntohs(tag), ntohl(hash)))) { |
rpc_SetErr(EPROGUNAVAIL, "Error:: call not found into RPC server ...\n"); |
rpc_SetErr(EPROGUNAVAIL, "Error:: call not found into RPC server ...\n"); |
ret = -6; |
ret = -6; |
} else |
} else |
Line 147 makeReply:
|
Line 152 makeReply:
|
Limit = sizeof(struct tagRPCRet); |
Limit = sizeof(struct tagRPCRet); |
|
|
memcpy(&rrpc->ret_session, &ses, sizeof(rpc_sess_t)); |
memcpy(&rrpc->ret_session, &ses, sizeof(rpc_sess_t)); |
rrpc->ret_tag = rpc->call_tag; | rrpc->ret_tag = tag; |
rrpc->ret_hash = rpc->call_hash; | rrpc->ret_hash = hash; |
rrpc->ret_errno = htonl(rpc_Errno); |
rrpc->ret_errno = htonl(rpc_Errno); |
rrpc->ret_retcode = htonl(ret); |
rrpc->ret_retcode = htonl(ret); |
rrpc->ret_argc = htons(argc); |
rrpc->ret_argc = htons(argc); |