diff options
-rw-r--r-- | dtls.c | 8 | ||||
-rw-r--r-- | radsecproxy.c | 22 | ||||
-rw-r--r-- | radsecproxy.h | 17 | ||||
-rw-r--r-- | tcp.c | 8 | ||||
-rw-r--r-- | tls.c | 8 |
5 files changed, 31 insertions, 32 deletions
@@ -556,8 +556,8 @@ int dtlsconnect(struct server *server, struct timeval *when, int timeout, char * return 0; } - if (server->state == SERVER_STATE_CONNECTED) { - server->state = SERVER_STATE_RECONNECTING; + if (server->state == RSP_SERVER_STATE_CONNECTED) { + server->state = RSP_SERVER_STATE_RECONNECTING; sleep(2); } else if (elapsed < 1) sleep(2); @@ -591,7 +591,7 @@ int dtlsconnect(struct server *server, struct timeval *when, int timeout, char * } X509_free(cert); debug(DBG_WARN, "dtlsconnect: DTLS connection to %s port %s up", hp->host, hp->port); - server->state = SERVER_STATE_CONNECTED; + server->state = RSP_SERVER_STATE_CONNECTED; gettimeofday(&server->lastconnecttry, NULL); pthread_mutex_unlock(&server->lock); return 1; @@ -603,7 +603,7 @@ int clientradputdtls(struct server *server, unsigned char *rad) { unsigned long error; struct clsrvconf *conf = server->conf; - if (!server->state == SERVER_STATE_CONNECTED) + if (server->state != RSP_SERVER_STATE_CONNECTED) return 0; len = RADLEN(rad); if ((cnt = SSL_write(server->ssl, rad, len)) <= 0) { diff --git a/radsecproxy.c b/radsecproxy.c index 2cdeae0..eb6942c 100644 --- a/radsecproxy.c +++ b/radsecproxy.c @@ -1258,11 +1258,11 @@ struct clsrvconf *choosesrvconf(struct list *srvconfs) { server = (struct clsrvconf *)entry->data; if (!server->servers) return server; - if (server->servers->state == SERVER_STATE_FAILING) + if (server->servers->state == RSP_SERVER_STATE_FAILING) continue; if (!first) first = server; - if (server->servers->state == SERVER_STATE_STARTUP || server->servers->state == SERVER_STATE_RECONNECTING) + if (server->servers->state == RSP_SERVER_STATE_STARTUP || server->servers->state == RSP_SERVER_STATE_RECONNECTING) continue; if (!server->servers->lostrqs) return server; @@ -1751,10 +1751,10 @@ void *clientwr(void *arg) { #define ZZZ 900 - server->state = SERVER_STATE_STARTUP; + server->state = RSP_SERVER_STATE_STARTUP; if (server->dynamiclookuparg && !dynamicconfig(server)) { dynconffail = 1; - server->state = SERVER_STATE_FAILING; + server->state = RSP_SERVER_STATE_FAILING; debug(DBG_WARN, "%s: dynamicconfig(%s: %s) failed, sleeping %ds", __func__, server->conf->name, server->dynamiclookuparg, ZZZ); sleep(ZZZ); @@ -1765,7 +1765,7 @@ void *clientwr(void *arg) { * dynamicconfig() above? */ if (!resolvehostports(conf->hostports, conf->hostaf, conf->pdef->socktype)) { debug(DBG_WARN, "%s: resolve failed, sleeping %ds", __func__, ZZZ); - server->state = SERVER_STATE_FAILING; + server->state = RSP_SERVER_STATE_FAILING; sleep(ZZZ); goto errexit; } @@ -1779,7 +1779,7 @@ void *clientwr(void *arg) { if (conf->pdef->connecter) { if (!conf->pdef->connecter(server, NULL, server->dynamiclookuparg ? 5 : 0, "clientwr")) { - server->state = SERVER_STATE_FAILING; + server->state = RSP_SERVER_STATE_FAILING; if (server->dynamiclookuparg) { debug(DBG_WARN, "%s: connect failed, sleeping %ds", __func__, ZZZ); @@ -1789,11 +1789,11 @@ void *clientwr(void *arg) { } if (pthread_create(&clientrdth, &pthread_attr, conf->pdef->clientconnreader, (void *)server)) { debugerrno(errno, DBG_ERR, "clientwr: pthread_create failed"); - server->state = SERVER_STATE_FAILING; + server->state = RSP_SERVER_STATE_FAILING; goto errexit; } } - server->state = SERVER_STATE_CONNECTED; + server->state = RSP_SERVER_STATE_CONNECTED; for (;;) { pthread_mutex_lock(&server->newrq_mutex); @@ -1831,7 +1831,7 @@ void *clientwr(void *arg) { for (i = 0; i < MAX_REQUESTS; i++) { if (server->clientrdgone) { - server->state = SERVER_STATE_FAILING; + server->state = RSP_SERVER_STATE_FAILING; pthread_join(clientrdth, NULL); goto errexit; } @@ -1882,7 +1882,7 @@ void *clientwr(void *arg) { conf->pdef->clientradput(server, rqout->rq->buf); pthread_mutex_unlock(rqout->lock); } - if (conf->statusserver && server->state == SERVER_STATE_CONNECTED) { + if (conf->statusserver && server->state == RSP_SERVER_STATE_CONNECTED) { secs = server->lastrcv.tv_sec > laststatsrv.tv_sec ? server->lastrcv.tv_sec : laststatsrv.tv_sec; gettimeofday(&now, NULL); if (now.tv_sec - secs > STATUS_SERVER_PERIOD) { @@ -2178,7 +2178,7 @@ struct list *createsubrealmservers(struct realm *realm, struct list *srvconfs) { * the srvconfs list. */ if (addserver(srvconf)) { srvconf->servers->dynamiclookuparg = stringcopy(realm->name, 0); - srvconf->servers->state = SERVER_STATE_STARTUP; + srvconf->servers->state = RSP_SERVER_STATE_STARTUP; debug(DBG_DBG, "%s: new client writer for %s", __func__, srvconf->servers->conf->name); if (pthread_create(&clientth, &pthread_attr, clientwr, (void *)(srvconf->servers))) { diff --git a/radsecproxy.h b/radsecproxy.h index 133b715..b362b1d 100644 --- a/radsecproxy.h +++ b/radsecproxy.h @@ -58,6 +58,13 @@ enum rsp_fticks_mac_type { RSP_FTICKS_MAC_FULLY_KEY_HASHED }; +enum rsp_server_state { + RSP_SERVER_STATE_STARTUP = 0, /* default */ + RSP_SERVER_STATE_CONNECTED, + RSP_SERVER_STATE_RECONNECTING, + RSP_SERVER_STATE_FAILING +}; + struct options { char *pidfile; char *logdestination; @@ -156,14 +163,6 @@ struct client { time_t expiry; /* for udp */ }; -enum server_state { - SERVER_STATE_STARTUP = 0, /* default */ - SERVER_STATE_CONNECTED, - SERVER_STATE_RECONNECTING, - SERVER_STATE_FAILING -}; - - struct server { struct clsrvconf *conf; int sock; @@ -173,7 +172,7 @@ struct server { uint8_t clientrdgone; struct timeval lastconnecttry; struct timeval lastreply; - enum server_state state; + enum rsp_server_state state; uint8_t lostrqs; char *dynamiclookuparg; int nextid; @@ -102,8 +102,8 @@ int tcpconnect(struct server *server, struct timeval *when, int timeout, char *t pthread_mutex_unlock(&server->lock); return 0; } - if (server->state == SERVER_STATE_CONNECTED) { - server->state = SERVER_STATE_RECONNECTING; + if (server->state == RSP_SERVER_STATE_CONNECTED) { + server->state = RSP_SERVER_STATE_RECONNECTING; sleep(2); } else if (elapsed < 1) sleep(2); @@ -121,7 +121,7 @@ int tcpconnect(struct server *server, struct timeval *when, int timeout, char *t if ((server->sock = connecttcphostlist(server->conf->hostports, srcres)) >= 0) break; } - server->state = SERVER_STATE_CONNECTED; + server->state = RSP_SERVER_STATE_CONNECTED; gettimeofday(&server->lastconnecttry, NULL); pthread_mutex_unlock(&server->lock); return 1; @@ -202,7 +202,7 @@ int clientradputtcp(struct server *server, unsigned char *rad) { size_t len; struct clsrvconf *conf = server->conf; - if (!server->state == SERVER_STATE_CONNECTED) + if (server->state != RSP_SERVER_STATE_CONNECTED) return 0; len = RADLEN(rad); if ((cnt = write(server->sock, rad, len)) <= 0) { @@ -111,8 +111,8 @@ int tlsconnect(struct server *server, struct timeval *when, int timeout, char *t pthread_mutex_unlock(&server->lock); return 0; } - if (server->state == SERVER_STATE_CONNECTED) { - server->state = SERVER_STATE_RECONNECTING; + if (server->state == RSP_SERVER_STATE_CONNECTED) { + server->state = RSP_SERVER_STATE_RECONNECTING; sleep(2); } else if (elapsed < 1) sleep(2); @@ -155,7 +155,7 @@ int tlsconnect(struct server *server, struct timeval *when, int timeout, char *t X509_free(cert); } debug(DBG_WARN, "tlsconnect: TLS connection to %s up", server->conf->name); - server->state = SERVER_STATE_CONNECTED; + server->state = RSP_SERVER_STATE_CONNECTED; gettimeofday(&server->lastconnecttry, NULL); pthread_mutex_unlock(&server->lock); return 1; @@ -251,7 +251,7 @@ int clientradputtls(struct server *server, unsigned char *rad) { unsigned long error; struct clsrvconf *conf = server->conf; - if (!server->state == SERVER_STATE_CONNECTED) + if (server->state != RSP_SERVER_STATE_CONNECTED) return 0; len = RADLEN(rad); if ((cnt = SSL_write(server->ssl, rad, len)) <= 0) { |