version 1.4.2.7, 2011/09/01 14:55:42
|
version 1.5, 2011/09/07 07:24:21
|
Line 117 rpc_srv_dispatchCall(void *arg)
|
Line 117 rpc_srv_dispatchCall(void *arg)
|
ret = -5; |
ret = -5; |
goto makeReply; |
goto makeReply; |
} |
} |
} | } else |
| arr = NULL; |
|
|
/* execute call */ |
/* execute call */ |
argc = 0; |
argc = 0; |
Line 310 makeReply:
|
Line 311 makeReply:
|
shutdown(c->cli_sock, SHUT_RDWR); |
shutdown(c->cli_sock, SHUT_RDWR); |
close(c->cli_sock); |
close(c->cli_sock); |
memset(c, 0, sizeof(rpc_cli_t)); |
memset(c, 0, sizeof(rpc_cli_t)); |
return (void*) (long)ret; | return (void*) ((long)ret); |
} |
} |
|
|
// ------------------------------------------------- |
// ------------------------------------------------- |
Line 448 rpc_srv_endBLOBServer(rpc_srv_t * __restrict srv)
|
Line 449 rpc_srv_endBLOBServer(rpc_srv_t * __restrict srv)
|
shutdown(c->cli_sock, SHUT_RDWR); |
shutdown(c->cli_sock, SHUT_RDWR); |
close(srv->srv_blob.server.cli_sock); |
close(srv->srv_blob.server.cli_sock); |
|
|
|
pthread_mutex_lock(&srv->srv_blob.mtx); |
if (srv->srv_blob.clients) { |
if (srv->srv_blob.clients) { |
free(srv->srv_blob.clients); |
free(srv->srv_blob.clients); |
srv->srv_blob.clients = NULL; |
srv->srv_blob.clients = NULL; |
} |
} |
|
|
/* detach blobs */ |
/* detach blobs */ |
pthread_mutex_lock(&srv->srv_blob.mtx); |
|
while ((f = srv->srv_blob.blobs)) { |
while ((f = srv->srv_blob.blobs)) { |
srv->srv_blob.blobs = f->blob_next; |
srv->srv_blob.blobs = f->blob_next; |
rpc_srv_blobFree(srv, f); |
rpc_srv_blobFree(srv, f); |
Line 467 rpc_srv_endBLOBServer(rpc_srv_t * __restrict srv)
|
Line 468 rpc_srv_endBLOBServer(rpc_srv_t * __restrict srv)
|
} |
} |
|
|
/* |
/* |
* rpc_srv_execBLOBServer() Execute Main BLOB server loop and wait for clients requests | * rpc_srv_loopBLOB() Execute Main BLOB server loop and wait for clients requests |
* @srv = RPC Server instance |
* @srv = RPC Server instance |
* return: -1 error or 0 ok, infinite loop ... |
* return: -1 error or 0 ok, infinite loop ... |
*/ |
*/ |
int |
int |
rpc_srv_execBLOBServer(rpc_srv_t * __restrict srv) | rpc_srv_loopBLOB(rpc_srv_t * __restrict srv) |
{ |
{ |
socklen_t salen = sizeof(struct sockaddr); |
socklen_t salen = sizeof(struct sockaddr); |
register int i; |
register int i; |
Line 496 rpc_srv_execBLOBServer(rpc_srv_t * __restrict srv)
|
Line 497 rpc_srv_execBLOBServer(rpc_srv_t * __restrict srv)
|
if (!c->cli_sa.sa_family) |
if (!c->cli_sa.sa_family) |
break; |
break; |
if (i >= srv->srv_numcli) { |
if (i >= srv->srv_numcli) { |
usleep(1000000); |
|
#ifdef HAVE_PTHREAD_YIELD |
#ifdef HAVE_PTHREAD_YIELD |
pthread_yield(); |
pthread_yield(); |
|
#else |
|
usleep(1000000); |
#endif |
#endif |
continue; |
continue; |
} |
} |
Line 528 rpc_srv_execBLOBServer(rpc_srv_t * __restrict srv)
|
Line 530 rpc_srv_execBLOBServer(rpc_srv_t * __restrict srv)
|
pthread_detach(c->cli_tid); |
pthread_detach(c->cli_tid); |
} |
} |
|
|
srv->srv_blob.state = disable; | srv->srv_blob.state = kill; |
|
|
return 0; |
return 0; |
} |
} |
Line 727 rpc_srv_endServer(rpc_srv_t * __restrict srv)
|
Line 729 rpc_srv_endServer(rpc_srv_t * __restrict srv)
|
} |
} |
|
|
/* |
/* |
* rpc_srv_execServer() Execute Main server loop and wait for clients requests | * rpc_srv_loopServer() Execute Main server loop and wait for clients requests |
* @srv = RPC Server instance |
* @srv = RPC Server instance |
* return: -1 error or 0 ok, infinite loop ... |
* return: -1 error or 0 ok, infinite loop ... |
*/ |
*/ |
int |
int |
rpc_srv_execServer(rpc_srv_t * __restrict srv) | rpc_srv_loopServer(rpc_srv_t * __restrict srv) |
{ |
{ |
socklen_t salen = sizeof(struct sockaddr); |
socklen_t salen = sizeof(struct sockaddr); |
register int i; |
register int i; |
Line 746 rpc_srv_execServer(rpc_srv_t * __restrict srv)
|
Line 748 rpc_srv_execServer(rpc_srv_t * __restrict srv)
|
return -1; |
return -1; |
} |
} |
|
|
|
/* activate BLOB server worker if srv->srv_blob.state == enable */ |
|
rpc_srv_execBLOBServer(srv); |
|
|
if (listen(srv->srv_server.cli_sock, SOMAXCONN) == -1) { |
if (listen(srv->srv_server.cli_sock, SOMAXCONN) == -1) { |
LOGERR; |
LOGERR; |
return -1; |
return -1; |
Line 756 rpc_srv_execServer(rpc_srv_t * __restrict srv)
|
Line 761 rpc_srv_execServer(rpc_srv_t * __restrict srv)
|
if (!c->cli_sa.sa_family) |
if (!c->cli_sa.sa_family) |
break; |
break; |
if (i >= srv->srv_numcli) { |
if (i >= srv->srv_numcli) { |
usleep(1000000); |
|
#ifdef HAVE_PTHREAD_YIELD |
#ifdef HAVE_PTHREAD_YIELD |
pthread_yield(); |
pthread_yield(); |
|
#else |
|
usleep(1000000); |
#endif |
#endif |
continue; |
continue; |
} |
} |