--- libaitrpc/src/builtin.c 2010/06/18 01:48:06 1.1.1.1 +++ libaitrpc/src/builtin.c 2010/06/18 13:36:01 1.1.1.1.2.1 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: builtin.c,v 1.1.1.1 2010/06/18 01:48:06 misho Exp $ +* $Id: builtin.c,v 1.1.1.1.2.1 2010/06/18 13:36:01 misho Exp $ * *************************************************************************/ #include "global.h" @@ -22,10 +22,8 @@ rpcServerClients(rpc_srv_t * __restrict srv, rpc_func_ struct sockaddr_in *s; struct sockaddr_in6 *s6; - if (!srv || !call) { - rpc_SetErr(EINVAL, "Error:: invalid parameters ...\n"); - return -1; - } + RPC_CALLBACK_CHECK_INPUT(srv, call); + if (rpc_srv_declValsCall(call, srv->srv_numcli) == -1) return -1; else @@ -61,10 +59,7 @@ rpcServerCalls(rpc_srv_t * __restrict srv, rpc_func_t register int i; char str[MAXPATHLEN]; - if (!srv || !call) { - rpc_SetErr(EINVAL, "Error:: invalid parameters ...\n"); - return -1; - } + RPC_CALLBACK_CHECK_INPUT(srv, call); for (i = 0, f = srv->srv_funcs; f; i++, f = f->func_next); @@ -91,10 +86,7 @@ rpcServerSessions(rpc_srv_t * __restrict srv, rpc_func { rpc_val_t *vals = NULL; - if (!srv || !call) { - rpc_SetErr(EINVAL, "Error:: invalid parameters ...\n"); - return -1; - } + RPC_CALLBACK_CHECK_INPUT(srv, call); if (rpc_srv_declValsCall(call, 4) == -1) return -1; @@ -107,6 +99,18 @@ rpcServerSessions(rpc_srv_t * __restrict srv, rpc_func RPC_SET_U32(&vals[1], srv->srv_session.sess_program); RPC_SET_U32(&vals[2], srv->srv_session.sess_process); RPC_SET_I32(&vals[3], srv->srv_numcli); + + return 0; +} + +int +rpcServerShutdown(rpc_srv_t * __restrict srv, rpc_func_t *call, int ic, rpc_val_t *iv) +{ + RPC_CALLBACK_CHECK_INPUT(srv, call); + + pthread_mutex_lock(&rpc_mtx); + rpc_Kill = 1; + pthread_mutex_unlock(&rpc_mtx); return 0; }