|
|
| version 1.6.2.4, 2012/03/13 17:10:13 | version 1.6.2.6, 2012/03/13 17:21:52 |
|---|---|
| Line 249 rpc_srv_dispatchCall(void *arg) | Line 249 rpc_srv_dispatchCall(void *arg) |
| schedRead(root, rxPacket, c, c->cli_sock, buf, s->srv_netbuf); | schedRead(root, rxPacket, c, c->cli_sock, buf, s->srv_netbuf); |
| schedRun(root, (intptr_t*) &s->srv_kill); | schedRun(root, (void*) &s->srv_kill); |
| schedEnd(&root); | schedEnd(&root); |
| shutdown(c->cli_sock, SHUT_RDWR); | shutdown(c->cli_sock, SHUT_RDWR); |
| 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++) |
| Line 920 rpc_srv_execCall(rpc_func_t * __restrict call, struct | Line 919 rpc_srv_execCall(rpc_func_t * __restrict call, struct |
| return -1; | return -1; |
| } | } |
| func = dlsym(dl, AIT_GET_STR(&call->func_name)); | func = dlsym(dl, (const char*) AIT_GET_STR(&call->func_name)); |
| if (func) | if (func) |
| ret = func(call, ntohs(rpc->call_argc), args); | ret = func(call, ntohs(rpc->call_argc), args); |
| else { | else { |