summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabian Mauchle <fabian.mauchle@switch.ch>2017-03-03 11:04:56 +0100
committerFabian Mauchle <fabian.mauchle@switch.ch>2017-03-16 11:17:48 +0100
commit85d3999d58aafa0127f45070c49fd23be2d03423 (patch)
tree3bfff60e07402e9f0ac16f2f8f157a8d1d17ad3b
parentec469f65cdda1a668d105763a7d788fb23b42261 (diff)
- fix wrong comparison of server->state
- move enum to top - prefix enum with rsp_ / RSP_ Conflicts: radsecproxy.c
-rw-r--r--dtls.c8
-rw-r--r--radsecproxy.c22
-rw-r--r--radsecproxy.h17
-rw-r--r--tcp.c8
-rw-r--r--tls.c8
5 files changed, 31 insertions, 32 deletions
diff --git a/dtls.c b/dtls.c
index 4b65313..f718d39 100644
--- a/dtls.c
+++ b/dtls.c
@@ -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;
diff --git a/tcp.c b/tcp.c
index c213594..c6b2f52 100644
--- a/tcp.c
+++ b/tcp.c
@@ -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) {
diff --git a/tls.c b/tls.c
index cd98791..a691be5 100644
--- a/tls.c
+++ b/tls.c
@@ -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) {