--- libaitrpc/inc/aitrpc.h 2011/09/07 08:56:32 1.4.2.1 +++ libaitrpc/inc/aitrpc.h 2011/11/03 13:51:19 1.4.2.5 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: aitrpc.h,v 1.4.2.1 2011/09/07 08:56:32 misho Exp $ +* $Id: aitrpc.h,v 1.4.2.5 2011/11/03 13:51:19 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -94,8 +94,8 @@ typedef enum { } while (0) #define RPC_CALLBACK_CHK_ARGS(_f, _n) do { \ RPC_CALLBACK_CHECK_INPUT((_f)); \ - if ((_f) && io_arraySize((_f)->func_vars) != _n) { \ - rpc_SetErr(22, "Error:: different number of arguments!\n"); \ + if ((_f) && io_arraySize((_f)->func_vars) < _n) { \ + rpc_SetErr(22, "Error:: not enough number of arguments!\n"); \ return -1; \ } \ } while (0) @@ -159,7 +159,7 @@ struct tagBLOBHdr { /* Network RPC client & server elements */ typedef struct { - struct sockaddr cli_sa; // host info + io_sockaddr_t cli_sa; // host info int cli_sock; // socket fd pthread_t cli_tid; // TID of thread @@ -258,10 +258,10 @@ rpc_srv_t *rpc_srv_initServer(u_int regProgID, u_int r int netBuf, u_short family, const char *csHost, u_short Port); /* * rpc_srv_endServer() Destroy RPC server, close all opened sockets and free resources - * @srv = RPC Server instance + * @psrv = RPC Server instance * return: none */ -void rpc_srv_endServer(rpc_srv_t * __restrict srv); +void rpc_srv_endServer(rpc_srv_t ** __restrict psrv); /* * rpc_srv_loopServer() Execute Main server loop and wait for clients requests * @srv = RPC Server instance @@ -352,10 +352,9 @@ int rpc_srv_execCall(rpc_func_t * __restrict call, str /* - * rpc_srv_allocVars() Allocate array for call variables, - if already allocated memory for RPC call reallocate used space + * rpc_srv_allocVars() Allocate array for call variables * @call = RPC function call - * @varnum = Number of variables, if ==0 free previous allocated variables + * @varnum = Number of variables, if ==0 return already allocated variables number * return: -1 error, !=-1 return varnum value */ inline int rpc_srv_allocVars(rpc_func_t * __restrict call, int varnum); @@ -366,11 +365,11 @@ inline int rpc_srv_allocVars(rpc_func_t * __restrict c */ inline int rpc_srv_destroyVars(rpc_func_t * __restrict call); /* - * rpc_srv_freeVals() Clean values from variables of array + * rpc_srv_freeVars() Clean values from variables of array * @call = RPC function call * return: -1 error, !=-1 Returned number of cleaned variables */ -inline int rpc_srv_freeVals(rpc_func_t * __restrict call); +inline int rpc_srv_freeVars(rpc_func_t * __restrict call); /* * rpc_srv_copyVars() Copy variables for RPC call to new variable array * @call = RPC function call @@ -520,17 +519,17 @@ void rpc_cli_closeClient(rpc_cli_t * __restrict cli); int rpc_cli_execCall(rpc_cli_t *cli, const char *csModule, const char *csFunc, array_t * __restrict in_vars, array_t ** __restrict out_vars); /* - * rpc_cli_freeVals() Free ait_val_t array returned from RPC call + * rpc_cli_freeVars() Free ait_val_t array returned from RPC call * @vars = Variable array * return: none */ -inline void rpc_cli_freeVals(array_t ** __restrict vars); +inline void rpc_cli_freeVars(array_t ** __restrict vars); /* - * rpc_cli_allocVals() Allocate ait_val_t array for RPC call + * rpc_cli_allocVars() Allocate ait_val_t array for RPC call * @args = Number of arguments * return: =NULL error or !=NULL allocated array */ -inline array_t *rpc_cli_allocVals(unsigned short args); +inline array_t *rpc_cli_allocVars(unsigned short args); /*