git-svn-id: https://svn.testnett.uninett.no/radsecproxy/trunk@286
e88ac4ed-0b26-0410-9574-
a7f39faa03bf
if (server->sock >= 0)
close(server->sock);
SSL_free(server->ssl);
if (server->sock >= 0)
close(server->sock);
SSL_free(server->ssl);
pthread_mutex_unlock(&server->lock);
return 0;
}
pthread_mutex_unlock(&server->lock);
return 0;
}
while ((cnt = SSL_write(server->ssl, rad, len)) <= 0) {
while ((error = ERR_get_error()))
debug(DBG_ERR, "clientradputtls: TLS: %s", ERR_error_string(error, NULL));
while ((cnt = SSL_write(server->ssl, rad, len)) <= 0) {
while ((error = ERR_get_error()))
debug(DBG_ERR, "clientradputtls: TLS: %s", ERR_error_string(error, NULL));
+ if (server->dynamiclookuparg)
+ return 0;
tlsconnect(server, &lastconnecttry, 0, "clientradputtls");
lastconnecttry = server->lastconnecttry;
}
tlsconnect(server, &lastconnecttry, 0, "clientradputtls");
lastconnecttry = server->lastconnecttry;
}
lastconnecttry = server->lastconnecttry;
buf = radtlsget(server->ssl);
if (!buf) {
lastconnecttry = server->lastconnecttry;
buf = radtlsget(server->ssl);
if (!buf) {
+ if (server->dynamiclookuparg) {
+ server->clientrdgone = 1;
+ return NULL;
+ }
tlsconnect(server, &lastconnecttry, 0, "clientrd");
continue;
}
tlsconnect(server, &lastconnecttry, 0, "clientrd");
continue;
}
pthread_mutex_lock(&server->newrq_mutex);
if (!server->newrq) {
gettimeofday(&now, NULL);
pthread_mutex_lock(&server->newrq_mutex);
if (!server->newrq) {
gettimeofday(&now, NULL);
- if (conf->statusserver) {
+ if (conf->statusserver || server->dynamiclookuparg) {
/* random 0-7 seconds */
RAND_bytes(&rnd, 1);
rnd /= 32;
/* random 0-7 seconds */
RAND_bytes(&rnd, 1);
rnd /= 32;
pthread_mutex_unlock(&server->newrq_mutex);
for (i = 0; i < MAX_REQUESTS; i++) {
pthread_mutex_unlock(&server->newrq_mutex);
for (i = 0; i < MAX_REQUESTS; i++) {
+ if (server->clientrdgone) {
+ pthread_join(tlsclientrdth, NULL);
+ goto errexit;
+ }
pthread_mutex_lock(&server->newrq_mutex);
while (i < MAX_REQUESTS && !server->requests[i].buf)
i++;
pthread_mutex_lock(&server->newrq_mutex);
while (i < MAX_REQUESTS && !server->requests[i].buf)
i++;
SSL *ssl;
pthread_mutex_t lock;
pthread_t clientth;
SSL *ssl;
pthread_mutex_t lock;
pthread_t clientth;
struct timeval lastconnecttry;
uint8_t connectionok;
uint8_t loststatsrv;
struct timeval lastconnecttry;
uint8_t connectionok;
uint8_t loststatsrv;