--- libaitrpc/src/srv.c 2011/10/31 14:45:26 1.5.2.6 +++ libaitrpc/src/srv.c 2011/11/03 14:57:56 1.5.2.10 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: srv.c,v 1.5.2.6 2011/10/31 14:45:26 misho Exp $ +* $Id: srv.c,v 1.5.2.10 2011/11/03 14:57:56 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -117,7 +117,7 @@ rpc_srv_dispatchCall(void *arg) /* RPC is OK! Go decapsulate variables ... */ if (ntohs(rpc->call_argc)) { - arr = io_buffer2vals(buf + Limit, s->srv_netbuf - Limit, + arr = io_buffer2vars(buf + Limit, s->srv_netbuf - Limit, ntohs(rpc->call_argc), 1); if (!arr) { ret = -5; @@ -160,8 +160,8 @@ makeReply: if (argc && arr) { /* Go Encapsulate variables ... */ - if ((i = io_vals2buffer(buf + Limit, s->srv_netbuf - Limit, arr)) == -1) { - rpc_srv_freeVals(f); + if ((i = io_vars2buffer(buf + Limit, s->srv_netbuf - Limit, arr)) == -1) { + rpc_srv_freeVars(f); argc = 0; ret = -7; rpc_SetErr(EBADRPC, "Error:: in prepare RPC packet values (-7) ...\n"); @@ -169,7 +169,7 @@ makeReply: } else { Limit += i; - rpc_srv_freeVals(f); + rpc_srv_freeVars(f); } } @@ -397,7 +397,7 @@ rpc_srv_initBLOBServer(rpc_srv_t * __restrict srv, u_s return -1; } if (bind(srv->srv_blob.server.cli_sock, &srv->srv_blob.server.cli_sa.sa, - sizeof srv->srv_blob.server.cli_sa) == -1) { + srv->srv_blob.server.cli_sa.sa.sa_len) == -1) { LOGERR; close(srv->srv_blob.server.cli_sock); return -1; @@ -644,7 +644,8 @@ rpc_srv_initServer(u_int regProgID, u_int regProcID, i free(srv); return NULL; } - if (bind(srv->srv_server.cli_sock, &srv->srv_server.cli_sa.sa, sizeof srv->srv_server.cli_sa) == -1) { + if (bind(srv->srv_server.cli_sock, &srv->srv_server.cli_sa.sa, + srv->srv_server.cli_sa.sa.sa_len) == -1) { LOGERR; close(srv->srv_server.cli_sock); free(srv); @@ -707,7 +708,7 @@ rpc_srv_endServer(rpc_srv_t ** __restrict psrv) pthread_mutex_lock(&(*psrv)->srv_mtx); while ((f = (*psrv)->srv_funcs)) { (*psrv)->srv_funcs = f->func_next; - rpc_srv_destroyVars(f); + io_freeVars(&f->func_vars); free(f); } pthread_mutex_unlock(&(*psrv)->srv_mtx);