--- libaitrpc/src/srv.c 2010/06/24 11:01:46 1.1.1.1.2.9 +++ libaitrpc/src/srv.c 2010/06/24 13:58:17 1.1.1.1.2.10 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: srv.c,v 1.1.1.1.2.9 2010/06/24 11:01:46 misho Exp $ +* $Id: srv.c,v 1.1.1.1.2.10 2010/06/24 13:58:17 misho Exp $ * *************************************************************************/ #include "global.h" @@ -191,7 +191,7 @@ rpc_srv_dispatchVars(void *arg) ret = -3; break; } - if (!ret) { // receive EOF + if (!ret || s->srv_blob.state == disable) { // receive EOF or disable service ret = 0; break; } @@ -366,6 +366,10 @@ rpc_srv_endBLOBServer(rpc_srv_t * __restrict srv) return; } else srv->srv_blob.state = disable; + + rpc_srv_unregisterCall(srv, NULL, CALL_BLOBSHUTDOWN); + rpc_srv_unregisterCall(srv, NULL, CALL_BLOBCLIENTS); + rpc_srv_unregisterCall(srv, NULL, CALL_BLOBVARS); for (i = 0, c = srv->srv_blob.clients; i < srv->srv_numcli && c; i++, c++) if (c->cli_sa.sa_family)