From 5f70899cc6425d590c707a2d237cec55644b8c0c Mon Sep 17 00:00:00 2001 From: Fabian Mauchle Date: Fri, 12 May 2017 17:57:46 +0200 Subject: [PATCH] do tcp timeout & cleanup same as tls --- tcp.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tcp.c b/tcp.c index a194055..4e1883c 100644 --- a/tcp.c +++ b/tcp.c @@ -223,8 +223,10 @@ void *tcpclientrd(void *arg) { for (;;) { /* yes, lastconnecttry is really necessary */ lastconnecttry = server->lastconnecttry; - buf = radtcpget(server->sock, 0); + buf = radtcpget(server->sock, server->dynamiclookuparg ? IDLE_TIMEOUT : 0); if (!buf) { + if (server->dynamiclookuparg) + break; tcpconnect(server, &lastconnecttry, 0, "tcpclientrd"); continue; } @@ -232,6 +234,9 @@ void *tcpclientrd(void *arg) { replyh(server, buf); } server->clientrdgone = 1; + pthread_mutex_lock(&server->newrq_mutex); + pthread_cond_signal(&server->newrq_cond); + pthread_mutex_unlock(&server->newrq_mutex); return NULL; }