|
|
| version 1.6.2.5, 2012/03/13 17:15:31 | version 1.6.2.6, 2012/03/13 17:21:52 |
|---|---|
| Line 421 rpc_srv_initBLOBServer(rpc_srv_t * __restrict srv, u_s | Line 421 rpc_srv_initBLOBServer(rpc_srv_t * __restrict srv, u_s |
| LOGERR; | LOGERR; |
| return -1; | return -1; |
| } else | } else |
| srv->srv_blob.dir = strdup(diskDir); | AIT_SET_STR(&srv->srv_blob.dir, diskDir); |
| srv->srv_blob.server.cli_tid = pthread_self(); | srv->srv_blob.server.cli_tid = pthread_self(); |
| srv->srv_blob.server.cli_parent = srv; | srv->srv_blob.server.cli_parent = srv; |
| Line 438 rpc_srv_initBLOBServer(rpc_srv_t * __restrict srv, u_s | Line 438 rpc_srv_initBLOBServer(rpc_srv_t * __restrict srv, u_s |
| strlcat(sa.sun.sun_path, ".blob", sizeof sa.sun.sun_path); | strlcat(sa.sun.sun_path, ".blob", sizeof sa.sun.sun_path); |
| break; | break; |
| default: | default: |
| free(srv->srv_blob.dir); | AIT_FREE_VAL(&srv->srv_blob.dir); |
| return -1; | return -1; |
| } | } |
| memcpy(&srv->srv_blob.server.cli_sa, &sa, sizeof sa); | memcpy(&srv->srv_blob.server.cli_sa, &sa, sizeof sa); |
| Line 447 rpc_srv_initBLOBServer(rpc_srv_t * __restrict srv, u_s | Line 447 rpc_srv_initBLOBServer(rpc_srv_t * __restrict srv, u_s |
| srv->srv_blob.server.cli_sock = socket(srv->srv_server.cli_sa.sa.sa_family, SOCK_STREAM, 0); | srv->srv_blob.server.cli_sock = socket(srv->srv_server.cli_sa.sa.sa_family, SOCK_STREAM, 0); |
| if (srv->srv_blob.server.cli_sock == -1) { | if (srv->srv_blob.server.cli_sock == -1) { |
| LOGERR; | LOGERR; |
| free(srv->srv_blob.dir); | AIT_FREE_VAL(&srv->srv_blob.dir); |
| return -1; | return -1; |
| } | } |
| if (setsockopt(srv->srv_blob.server.cli_sock, SOL_SOCKET, SO_REUSEADDR, &n, sizeof n) == -1) { | if (setsockopt(srv->srv_blob.server.cli_sock, SOL_SOCKET, SO_REUSEADDR, &n, sizeof n) == -1) { |
| LOGERR; | LOGERR; |
| close(srv->srv_blob.server.cli_sock); | close(srv->srv_blob.server.cli_sock); |
| free(srv->srv_blob.dir); | AIT_FREE_VAL(&srv->srv_blob.dir); |
| return -1; | return -1; |
| } | } |
| n = srv->srv_netbuf; | n = srv->srv_netbuf; |
| if (setsockopt(srv->srv_blob.server.cli_sock, SOL_SOCKET, SO_SNDBUF, &n, sizeof n) == -1) { | if (setsockopt(srv->srv_blob.server.cli_sock, SOL_SOCKET, SO_SNDBUF, &n, sizeof n) == -1) { |
| LOGERR; | LOGERR; |
| close(srv->srv_blob.server.cli_sock); | close(srv->srv_blob.server.cli_sock); |
| free(srv->srv_blob.dir); | AIT_FREE_VAL(&srv->srv_blob.dir); |
| return -1; | return -1; |
| } | } |
| if (setsockopt(srv->srv_blob.server.cli_sock, SOL_SOCKET, SO_RCVBUF, &n, sizeof n) == -1) { | if (setsockopt(srv->srv_blob.server.cli_sock, SOL_SOCKET, SO_RCVBUF, &n, sizeof n) == -1) { |
| LOGERR; | LOGERR; |
| close(srv->srv_blob.server.cli_sock); | close(srv->srv_blob.server.cli_sock); |
| free(srv->srv_blob.dir); | AIT_FREE_VAL(&srv->srv_blob.dir); |
| return -1; | return -1; |
| } | } |
| if (bind(srv->srv_blob.server.cli_sock, &srv->srv_blob.server.cli_sa.sa, | if (bind(srv->srv_blob.server.cli_sock, &srv->srv_blob.server.cli_sa.sa, |
| srv->srv_blob.server.cli_sa.sa.sa_len) == -1) { | srv->srv_blob.server.cli_sa.sa.sa_len) == -1) { |
| LOGERR; | LOGERR; |
| close(srv->srv_blob.server.cli_sock); | close(srv->srv_blob.server.cli_sock); |
| free(srv->srv_blob.dir); | AIT_FREE_VAL(&srv->srv_blob.dir); |
| return -1; | return -1; |
| } | } |
| Line 482 rpc_srv_initBLOBServer(rpc_srv_t * __restrict srv, u_s | Line 482 rpc_srv_initBLOBServer(rpc_srv_t * __restrict srv, u_s |
| if (!srv->srv_blob.clients) { | if (!srv->srv_blob.clients) { |
| LOGERR; | LOGERR; |
| close(srv->srv_blob.server.cli_sock); | close(srv->srv_blob.server.cli_sock); |
| free(srv->srv_blob.dir); | AIT_FREE_VAL(&srv->srv_blob.dir); |
| return -1; | return -1; |
| } else | } else |
| memset(srv->srv_blob.clients, 0, srv->srv_numcli * sizeof(rpc_cli_t)); | memset(srv->srv_blob.clients, 0, srv->srv_numcli * sizeof(rpc_cli_t)); |
| Line 522 rpc_srv_endBLOBServer(rpc_srv_t * __restrict srv) | Line 522 rpc_srv_endBLOBServer(rpc_srv_t * __restrict srv) |
| rpc_srv_unregisterCall(srv, NULL, CALL_BLOBVARS); | rpc_srv_unregisterCall(srv, NULL, CALL_BLOBVARS); |
| rpc_srv_unregisterCall(srv, NULL, CALL_BLOBSTATE); | rpc_srv_unregisterCall(srv, NULL, CALL_BLOBSTATE); |
| if (srv->srv_blob.dir) | AIT_FREE_VAL(&srv->srv_blob.dir); |
| free(srv->srv_blob.dir); | |
| /* 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, c = srv->srv_blob.clients; i < srv->srv_numcli && c; i++, c++) |