version 1.9.2.10, 2012/05/16 07:37:37
|
version 1.9.2.11, 2012/05/16 07:54:49
|
Line 500 rpc_srv_initBLOBServer(rpc_srv_t * __restrict srv, u_s
|
Line 500 rpc_srv_initBLOBServer(rpc_srv_t * __restrict srv, u_s
|
} else |
} else |
AIT_SET_STR(&srv->srv_blob.dir, diskDir); |
AIT_SET_STR(&srv->srv_blob.dir, diskDir); |
|
|
|
/* init blob list */ |
|
TAILQ_INIT(&srv->srv_blob.blobs); |
|
|
srv->srv_blob.server.cli_parent = srv; |
srv->srv_blob.server.cli_parent = srv; |
|
|
memcpy(&srv->srv_blob.server.cli_sa, &srv->srv_server.cli_sa, sizeof(io_sockaddr_t)); |
memcpy(&srv->srv_blob.server.cli_sa, &srv->srv_server.cli_sa, sizeof(io_sockaddr_t)); |
Line 565 rpc_srv_initBLOBServer(rpc_srv_t * __restrict srv, u_s
|
Line 568 rpc_srv_initBLOBServer(rpc_srv_t * __restrict srv, u_s
|
return 0; |
return 0; |
} |
} |
|
|
#if 0 |
|
/* |
/* |
* rpc_srv_endBLOBServer() - Destroy BLOB server, close all opened sockets and free resources |
* rpc_srv_endBLOBServer() - Destroy BLOB server, close all opened sockets and free resources |
* |
* |
Line 577 rpc_srv_endBLOBServer(rpc_srv_t * __restrict srv)
|
Line 579 rpc_srv_endBLOBServer(rpc_srv_t * __restrict srv)
|
{ |
{ |
rpc_cli_t *c; |
rpc_cli_t *c; |
register int i; |
register int i; |
rpc_blob_t *f; | rpc_blob_t *b, *tmp; |
|
|
if (!srv || srv->srv_blob.state == disable) |
if (!srv || srv->srv_blob.state == disable) |
return; |
return; |
else |
else |
srv->srv_blob.state = kill; |
srv->srv_blob.state = kill; |
|
|
rpc_srv_unregisterCall(srv, NULL, CALL_BLOBSHUTDOWN); |
|
rpc_srv_unregisterCall(srv, NULL, CALL_BLOBCLIENTS); |
|
rpc_srv_unregisterCall(srv, NULL, CALL_BLOBVARS); |
|
rpc_srv_unregisterCall(srv, NULL, CALL_BLOBSTATE); |
|
|
|
/* close all clients connections & server socket */ |
/* close all clients connections & server socket */ |
for (i = 0, c = srv->srv_blob.clients; i < srv->srv_numcli && c; i++, c++) | for (i = 0; i < io_arraySize(srv->srv_blob.clients); i++) { |
if (c->cli_sa.sa.sa_family) | c = io_array(srv->srv_blob.clients, i, rpc_cli_t*); |
| if (c) { |
shutdown(c->cli_sock, SHUT_RDWR); |
shutdown(c->cli_sock, SHUT_RDWR); |
close(srv->srv_blob.server.cli_sock); | close(c->cli_sock); |
|
|
if (srv->srv_blob.clients) { | io_arrayDel(srv->srv_blob.clients, i, 42); |
free(srv->srv_blob.clients); | } |
srv->srv_blob.clients = NULL; | |
} |
} |
|
io_arrayDestroy(&srv->srv_blob.clients); |
|
|
|
close(srv->srv_blob.server.cli_sock); |
|
|
/* detach blobs */ |
/* detach blobs */ |
while ((f = srv->srv_blob.blobs)) { | TAILQ_FOREACH_SAFE(b, &srv->srv_blob.blobs, blob_node, tmp) { |
srv->srv_blob.blobs = f->blob_next; | TAILQ_REMOVE(&srv->srv_blob.blobs, b, blob_node); |
rpc_srv_blobFree(srv, f); | |
free(f); | rpc_srv_blobFree(srv, b); |
| free(b); |
} |
} |
|
|
AIT_FREE_VAL(&srv->srv_blob.dir); |
AIT_FREE_VAL(&srv->srv_blob.dir); |
Line 613 rpc_srv_endBLOBServer(rpc_srv_t * __restrict srv)
|
Line 614 rpc_srv_endBLOBServer(rpc_srv_t * __restrict srv)
|
srv->srv_blob.state = disable; |
srv->srv_blob.state = disable; |
} |
} |
|
|
|
#if 0 |
/* |
/* |
* rpc_srv_loopBLOB() - Execute Main BLOB server loop and wait for clients requests |
* rpc_srv_loopBLOB() - Execute Main BLOB server loop and wait for clients requests |
* |
* |
Line 819 rpc_srv_endServer(rpc_srv_t ** __restrict psrv)
|
Line 821 rpc_srv_endServer(rpc_srv_t ** __restrict psrv)
|
shutdown(c->cli_sock, SHUT_RDWR); |
shutdown(c->cli_sock, SHUT_RDWR); |
close(c->cli_sock); |
close(c->cli_sock); |
|
|
free(c); | io_arrayDel((*psrv)->srv_clients, i, 42); |
io_arrayDel((*psrv)->srv_clients, i, 0); | |
} |
} |
} |
} |
io_arrayDestroy(&(*psrv)->srv_clients); |
io_arrayDestroy(&(*psrv)->srv_clients); |
Line 829 rpc_srv_endServer(rpc_srv_t ** __restrict psrv)
|
Line 830 rpc_srv_endServer(rpc_srv_t ** __restrict psrv)
|
|
|
/* detach exported calls */ |
/* detach exported calls */ |
TAILQ_FOREACH_SAFE(f, &(*psrv)->srv_funcs, func_node, tmp) { |
TAILQ_FOREACH_SAFE(f, &(*psrv)->srv_funcs, func_node, tmp) { |
|
TAILQ_REMOVE(&(*psrv)->srv_funcs, f, func_node); |
|
|
io_freeVars(&f->func_vars); |
io_freeVars(&f->func_vars); |
AIT_FREE_VAL(&f->func_name); |
AIT_FREE_VAL(&f->func_name); |
free(f); |
free(f); |