summaryrefslogtreecommitdiff
path: root/accel-pppd/radius/serv.c
diff options
context:
space:
mode:
Diffstat (limited to 'accel-pppd/radius/serv.c')
-rw-r--r--accel-pppd/radius/serv.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/accel-pppd/radius/serv.c b/accel-pppd/radius/serv.c
index 46d064a0..3d01057a 100644
--- a/accel-pppd/radius/serv.c
+++ b/accel-pppd/radius/serv.c
@@ -6,6 +6,7 @@
#include <unistd.h>
#include <sched.h>
#include <time.h>
+#include <assert.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
@@ -151,6 +152,7 @@ void rad_server_req_exit(struct rad_req_t *req)
pthread_mutex_lock(&req->serv->lock);
req->serv->req_cnt--;
+ assert(req->serv->req_cnt >= 0);
if (req->serv->req_cnt < req->serv->req_limit && !list_empty(&req->serv->req_queue)) {
r = list_entry(req->serv->req_queue.next, typeof(*r), entry);
list_del(&r->entry);
@@ -200,8 +202,8 @@ void rad_server_fail(struct rad_server_t *s)
pthread_mutex_lock(&s->lock);
- if (ts.tv_sec > s->fail_time) {
- s->fail_time = ts.tv_sec + s->conf_fail_time;
+ if (ts.tv_sec >= s->fail_time) {
+ s->fail_time = ts.tv_sec + s->conf_fail_time + 1;
log_ppp_warn("radius: server(%i) not responding\n", s->id);
log_warn("radius: server(%i) not responding\n", s->id);
}