--- libaitrpc/src/srv.c 2013/08/20 23:49:54 1.17.4.2 +++ libaitrpc/src/srv.c 2013/08/22 11:55:45 1.17.6.1 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: srv.c,v 1.17.4.2 2013/08/20 23:49:54 misho Exp $ +* $Id: srv.c,v 1.17.6.1 2013/08/22 11:55:45 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -74,8 +74,8 @@ rpc_freeCli(rpc_cli_t * __restrict c) schedCancelby(s->srv_root, taskMAX, CRITERIA_ARG, c, NULL); - /* free buffer(s) */ - ait_freeVars(&c->cli_buf); + /* free buffer */ + AIT_FREE_VAL(&c->cli_buf); array_Del(s->srv_clients, c->cli_id, 0); if (c) @@ -126,14 +126,8 @@ _allocClient(rpc_srv_t * __restrict srv, sockaddr_t * c->cli_parent = srv; } - /* init buffer(s) */ - c->cli_buf = ait_allocVars(1); - if (!c->cli_buf) { - rpc_SetErr(elwix_GetErrno(), "%s", elwix_GetError()); - array_Del(srv->srv_clients, n, 42); - return NULL; - } else - AIT_SET_BUFSIZ(array(c->cli_buf, 0, ait_val_t*), 0, srv->srv_netbuf); + /* alloc empty buffer */ + AIT_SET_BUFSIZ(&c->cli_buf, 0, srv->srv_netbuf); } return c; @@ -197,7 +191,7 @@ txPacket(sched_task_t *task) } } - rpc->call_len = htons(wlen); + rpc->call_len = htonl(wlen); #if 0 /* calculate CRC */ @@ -309,7 +303,7 @@ rxPacket(sched_task_t *task) } else rpc = (struct tagRPCCall*) (buf + off); - len = ntohs(rpc->call_len); + len = ntohl(rpc->call_len); rlen -= len; /* check RPC packet lengths */ @@ -373,7 +367,7 @@ acceptClients(sched_task_t *task) c->cli_sock = accept(TASK_FD(task), &c->cli_sa.sa, &salen); if (c->cli_sock == -1) { LOGERR; - ait_freeVars(&c->cli_buf); + AIT_FREE_VAL(&c->cli_buf); array_Del(srv->srv_clients, c->cli_id, 42); goto end; } else @@ -428,7 +422,7 @@ txUDPPacket(sched_task_t *task) } } - rpc->call_len = htons(wlen); + rpc->call_len = htonl(wlen); /* calculate CRC */ rpc->call_crc ^= rpc->call_crc; @@ -486,7 +480,7 @@ rxUDPPacket(sched_task_t *task) } else rpc = (struct tagRPCCall*) (AIT_GET_BUF(&c->cli_buf) + off); - len = ntohs(rpc->call_len); + len = ntohl(rpc->call_len); rlen -= len; /* check RPC packet lengths */ @@ -542,8 +536,8 @@ rpc_freeBLOBCli(rpc_cli_t * __restrict c) schedCancelby(s->srv_blob.root, taskMAX, CRITERIA_ARG, c, NULL); - /* free buffer(s) */ - ait_freeVars(&c->cli_buf); + /* free buffer */ + AIT_FREE_VAL(&c->cli_buf); array_Del(s->srv_blob.clients, c->cli_id, 0); if (c) @@ -711,20 +705,14 @@ acceptBLOBClients(sched_task_t *task) c->cli_parent = srv; } - /* init buffer(s) */ - c->cli_buf = ait_allocVars(1); - if (!c->cli_buf) { - rpc_SetErr(elwix_GetErrno(), "%s", elwix_GetError()); - array_Del(srv->srv_blob.clients, i, 42); - goto end; - } else - AIT_SET_BUFSIZ(array(c->cli_buf, 0, ait_val_t*), 0, srv->srv_netbuf); + /* alloc empty buffer */ + AIT_SET_BUFSIZ(&c->cli_buf, 0, srv->srv_netbuf); /* accept client */ c->cli_sock = accept(TASK_FD(task), &c->cli_sa.sa, &salen); if (c->cli_sock == -1) { LOGERR; - ait_freeVars(&c->cli_buf); + AIT_FREE_VAL(&c->cli_buf); array_Del(srv->srv_blob.clients, i, 42); goto end; } else { @@ -918,7 +906,7 @@ rpc_srv_loopBLOBServer(rpc_srv_t * __restrict srv) close(c->cli_sock); schedCancelby(srv->srv_blob.root, taskMAX, CRITERIA_ARG, c, NULL); - ait_freeVars(&c->cli_buf); + AIT_FREE_VAL(&c->cli_buf); } array_Del(srv->srv_blob.clients, i, 42); } @@ -1124,7 +1112,7 @@ rpc_srv_loopServer(rpc_srv_t * __restrict srv) schedCancelby(srv->srv_root, taskMAX, CRITERIA_ARG, c, NULL); ait_freeVars(&RPC_RETVARS(c)); - ait_freeVars(&c->cli_buf); + AIT_FREE_VAL(&c->cli_buf); } array_Del(srv->srv_clients, i, 42); }