|
|
| 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); |