version 1.1.1.1.2.10, 2010/06/24 13:58:17
|
version 1.1.1.1.2.11, 2010/06/24 15:01:19
|
Line 86 rpc_srv_dispatchCall(void *arg)
|
Line 86 rpc_srv_dispatchCall(void *arg)
|
rpc_SetErr(EINVAL, "Error:: call not found into RPC server ...\n"); |
rpc_SetErr(EINVAL, "Error:: call not found into RPC server ...\n"); |
ret = -6; |
ret = -6; |
} else |
} else |
if ((ret = rpc_srv_execCall(s, f, rpc, v)) == -1) | if ((ret = rpc_srv_execCall(f, rpc, v)) == -1) |
ret = -6; |
ret = -6; |
else |
else |
argc = rpc_srv_getValsCall(f, &vals); |
argc = rpc_srv_getValsCall(f, &vals); |
Line 414 rpc_srv_execBLOBServer(rpc_srv_t * __restrict srv)
|
Line 414 rpc_srv_execBLOBServer(rpc_srv_t * __restrict srv)
|
return -1; |
return -1; |
} |
} |
|
|
while (!rpc_Kill) { | while (!blob_Kill && !rpc_Kill) { |
for (c = srv->srv_blob.clients, i = 0; i < srv->srv_numcli && c; i++, c++) |
for (c = srv->srv_blob.clients, i = 0; i < srv->srv_numcli && c; i++, c++) |
if (!c->cli_sa.sa_family) |
if (!c->cli_sa.sa_family) |
break; |
break; |
Line 447 rpc_srv_execBLOBServer(rpc_srv_t * __restrict srv)
|
Line 447 rpc_srv_execBLOBServer(rpc_srv_t * __restrict srv)
|
} |
} |
} |
} |
|
|
|
srv->srv_blob.state = disable; |
|
|
return 0; |
return 0; |
} |
} |
|
|
Line 668 rpc_srv_execServer(rpc_srv_t * __restrict srv)
|
Line 670 rpc_srv_execServer(rpc_srv_t * __restrict srv)
|
|
|
/* |
/* |
* rpc_srv_execCall() Execute registered call from RPC server |
* rpc_srv_execCall() Execute registered call from RPC server |
* @data = RPC const data |
|
* @call = Register RPC call |
* @call = Register RPC call |
* @rpc = IN RPC call structure |
* @rpc = IN RPC call structure |
* @args = IN RPC call array of rpc values |
* @args = IN RPC call array of rpc values |
* return: -1 error, !=-1 ok |
* return: -1 error, !=-1 ok |
*/ |
*/ |
int |
int |
rpc_srv_execCall(void * const data, rpc_func_t * __restrict call, | rpc_srv_execCall(rpc_func_t * __restrict call, struct tagRPCCall * __restrict rpc, |
struct tagRPCCall * __restrict rpc, rpc_val_t * __restrict args) | rpc_val_t * __restrict args) |
{ |
{ |
void *dl; |
void *dl; |
rpc_callback_t func; |
rpc_callback_t func; |
int ret; |
int ret; |
|
|
if (!data || !call || !rpc) { | if (!call || !rpc || !call->func_parent) { |
rpc_SetErr(EINVAL, "Error:: Invalid parameter can`t exec call from RPC server ...\n"); |
rpc_SetErr(EINVAL, "Error:: Invalid parameter can`t exec call from RPC server ...\n"); |
return -1; |
return -1; |
} |
} |
Line 695 rpc_srv_execCall(void * const data, rpc_func_t * __res
|
Line 696 rpc_srv_execCall(void * const data, rpc_func_t * __res
|
|
|
func = dlsym(dl, (char*) call->func_name); |
func = dlsym(dl, (char*) call->func_name); |
if (func) |
if (func) |
ret = func(data, call, rpc->call_argc, args); | ret = func(call, rpc->call_argc, args); |
else { |
else { |
rpc_SetErr(ENOEXEC, "Error:: Can`t find function %s!\n", dlerror()); |
rpc_SetErr(ENOEXEC, "Error:: Can`t find function %s!\n", dlerror()); |
ret = -1; |
ret = -1; |