From: Arran Cudbard-Bell Date: Fri, 24 May 2019 02:11:18 +0000 (-0400) Subject: Fix FR_TIME_DELTA_BOUND_CHECK to take NSEC, so we can easily pass other fr_time_delta... X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=19f2d2ee5ef6225a9a4a24c52e9f27cdca89cf68;p=thirdparty%2Ffreeradius-server.git Fix FR_TIME_DELTA_BOUND_CHECK to take NSEC, so we can easily pass other fr_time_delta_t values in as the _bound --- diff --git a/src/lib/server/cf_parse.h b/src/lib/server/cf_parse.h index 38be7a54836..8262c9aedbd 100644 --- a/src/lib/server/cf_parse.h +++ b/src/lib/server/cf_parse.h @@ -353,13 +353,12 @@ do {\ }\ } while (0) -#define FR_TIME_DELTA_BOUND_CHECK(_name, _var, _op, _bound_sec, _bound_usec)\ +#define FR_TIME_DELTA_BOUND_CHECK(_name, _var, _op, _bound)\ do {\ - fr_time_delta_t _bound = ((fr_time_delta_t) _bound_sec) * NSEC + ((fr_time_delta_t) _bound_usec) * 1000;\ if (!(_var _op _bound)) { \ - WARN("Ignoring \"" _name " = %d.%.06d\", forcing to \"" _name " = %d.%06d\"",\ - (int)(_var / NSEC), ((int)(_var % NSEC)) / 1000,\ - (int)_bound_sec, (int)_bound_usec);\ + WARN("Ignoring \"" _name " = %pV\", forcing to \"" _name " = %pV\"",\ + fr_box_time_delta(_var),\ + fr_box_time_delta(_bound));\ _var = _bound;\ }\ } while (0) diff --git a/src/modules/proto_control/proto_control.c b/src/modules/proto_control/proto_control.c index 8d15e4fff1f..37bf4cd4c43 100644 --- a/src/modules/proto_control/proto_control.c +++ b/src/modules/proto_control/proto_control.c @@ -501,11 +501,11 @@ static int mod_bootstrap(void *instance, CONF_SECTION *conf) /* * These timers are usually protocol specific. */ - FR_TIME_DELTA_BOUND_CHECK("idle_timeout", inst->io.idle_timeout, >=, 1, 0); - FR_TIME_DELTA_BOUND_CHECK("idle_timeout", inst->io.idle_timeout, <=, 600, 0); + FR_TIME_DELTA_BOUND_CHECK("idle_timeout", inst->io.idle_timeout, >=, fr_time_delta_from_sec(1)); + FR_TIME_DELTA_BOUND_CHECK("idle_timeout", inst->io.idle_timeout, <=, fr_time_delta_from_sec(600)); - FR_TIME_DELTA_BOUND_CHECK("nak_lifetime", inst->io.nak_lifetime, >=, 1, 0); - FR_TIME_DELTA_BOUND_CHECK("nak_lifetime", inst->io.nak_lifetime, <=, 600, 0); + FR_TIME_DELTA_BOUND_CHECK("nak_lifetime", inst->io.nak_lifetime, >=, fr_time_delta_from_sec(1)); + FR_TIME_DELTA_BOUND_CHECK("nak_lifetime", inst->io.nak_lifetime, <=, fr_time_delta_from_sec(600)); /* * Tell the master handler about the main protocol instance. diff --git a/src/modules/proto_dhcpv4/proto_dhcpv4.c b/src/modules/proto_dhcpv4/proto_dhcpv4.c index d96b5ac11d3..a7ca03f7d20 100644 --- a/src/modules/proto_dhcpv4/proto_dhcpv4.c +++ b/src/modules/proto_dhcpv4/proto_dhcpv4.c @@ -576,11 +576,11 @@ static int mod_bootstrap(void *instance, CONF_SECTION *conf) /* * These timers are usually protocol specific. */ - FR_TIME_DELTA_BOUND_CHECK("idle_timeout", inst->io.idle_timeout, >=, 1, 0); - FR_TIME_DELTA_BOUND_CHECK("idle_timeout", inst->io.idle_timeout, <=, 600, 0); + FR_TIME_DELTA_BOUND_CHECK("idle_timeout", inst->io.idle_timeout, >=, fr_time_delta_from_sec(1)); + FR_TIME_DELTA_BOUND_CHECK("idle_timeout", inst->io.idle_timeout, <=, fr_time_delta_from_sec(600)); - FR_TIME_DELTA_BOUND_CHECK("nak_lifetime", inst->io.nak_lifetime, >=, 1, 0); - FR_TIME_DELTA_BOUND_CHECK("nak_lifetime", inst->io.nak_lifetime, <=, 600, 0); + FR_TIME_DELTA_BOUND_CHECK("nak_lifetime", inst->io.nak_lifetime, >=, fr_time_delta_from_sec(1)); + FR_TIME_DELTA_BOUND_CHECK("nak_lifetime", inst->io.nak_lifetime, <=, fr_time_delta_from_sec(600)); /* * Tell the master handler about the main protocol instance. diff --git a/src/modules/proto_radius/proto_radius.c b/src/modules/proto_radius/proto_radius.c index 341cf7d29da..7cce1819074 100644 --- a/src/modules/proto_radius/proto_radius.c +++ b/src/modules/proto_radius/proto_radius.c @@ -687,13 +687,13 @@ static int mod_bootstrap(void *instance, CONF_SECTION *conf) /* * These timers are usually protocol specific. */ - FR_TIME_DELTA_BOUND_CHECK("idle_timeout", inst->io.idle_timeout, >=, 1, 0); - FR_TIME_DELTA_BOUND_CHECK("idle_timeout", inst->io.idle_timeout, <=, 600, 0); + FR_TIME_DELTA_BOUND_CHECK("idle_timeout", inst->io.idle_timeout, >=, fr_time_delta_from_sec(1)); + FR_TIME_DELTA_BOUND_CHECK("idle_timeout", inst->io.idle_timeout, <=, fr_time_delta_from_sec(600)); - FR_TIME_DELTA_BOUND_CHECK("nak_lifetime", inst->io.nak_lifetime, >=, 1, 0); - FR_TIME_DELTA_BOUND_CHECK("nak_lifetime", inst->io.nak_lifetime, <=, 600, 0); + FR_TIME_DELTA_BOUND_CHECK("nak_lifetime", inst->io.nak_lifetime, >=, fr_time_delta_from_sec(1)); + FR_TIME_DELTA_BOUND_CHECK("nak_lifetime", inst->io.nak_lifetime, <=, fr_time_delta_from_sec(600)); - FR_TIME_DELTA_BOUND_CHECK("cleanup_delay", inst->io.cleanup_delay, <=, 30, 0); + FR_TIME_DELTA_BOUND_CHECK("cleanup_delay", inst->io.cleanup_delay, <=, fr_time_delta_from_sec(30)); /* * No Access-Request packets, then no cleanup delay. diff --git a/src/modules/proto_vmps/proto_vmps.c b/src/modules/proto_vmps/proto_vmps.c index f3dd14d2d4b..d0f1d1bca24 100644 --- a/src/modules/proto_vmps/proto_vmps.c +++ b/src/modules/proto_vmps/proto_vmps.c @@ -544,11 +544,11 @@ static int mod_bootstrap(void *instance, CONF_SECTION *conf) /* * These timers are usually protocol specific. */ - FR_TIME_DELTA_BOUND_CHECK("idle_timeout", inst->io.idle_timeout, >=, 1, 0); - FR_TIME_DELTA_BOUND_CHECK("idle_timeout", inst->io.idle_timeout, <=, 600, 0); + FR_TIME_DELTA_BOUND_CHECK("idle_timeout", inst->io.idle_timeout, >=, fr_time_delta_from_sec(1)); + FR_TIME_DELTA_BOUND_CHECK("idle_timeout", inst->io.idle_timeout, <=, fr_time_delta_from_sec(600)); - FR_TIME_DELTA_BOUND_CHECK("nak_lifetime", inst->io.nak_lifetime, >=, 1, 0); - FR_TIME_DELTA_BOUND_CHECK("nak_lifetime", inst->io.nak_lifetime, <=, 600, 0); + FR_TIME_DELTA_BOUND_CHECK("nak_lifetime", inst->io.nak_lifetime, >=, fr_time_delta_from_sec(1)); + FR_TIME_DELTA_BOUND_CHECK("nak_lifetime", inst->io.nak_lifetime, <=, fr_time_delta_from_sec(600)); /* * Tell the master handler about the main protocol instance. diff --git a/src/modules/rlm_radius/rlm_radius.c b/src/modules/rlm_radius/rlm_radius.c index 2dbb860319b..4b4ad0b6d87 100644 --- a/src/modules/rlm_radius/rlm_radius.c +++ b/src/modules/rlm_radius/rlm_radius.c @@ -549,17 +549,17 @@ static int mod_bootstrap(void *instance, CONF_SECTION *conf) inst->name = cf_section_name2(conf); if (!inst->name) inst->name = cf_section_name1(conf); - FR_TIME_DELTA_BOUND_CHECK("connection.connect_timeout", inst->connection_timeout, >=, 1, 0); - FR_TIME_DELTA_BOUND_CHECK("connection.connect_timeout", inst->connection_timeout, <=, 30, 0); + FR_TIME_DELTA_BOUND_CHECK("connection.connect_timeout", inst->connection_timeout, >=, fr_time_delta_from_sec(1)); + FR_TIME_DELTA_BOUND_CHECK("connection.connect_timeout", inst->connection_timeout, <=, fr_time_delta_from_sec(30)); - FR_TIME_DELTA_BOUND_CHECK("connection.reconnect_delay", inst->reconnection_delay, >=, 5, 0); - FR_TIME_DELTA_BOUND_CHECK("connection.reconnect_delay", inst->reconnection_delay, <=, 300, 0); + FR_TIME_DELTA_BOUND_CHECK("connection.reconnect_delay", inst->reconnection_delay, >=, fr_time_delta_from_sec(5)); + FR_TIME_DELTA_BOUND_CHECK("connection.reconnect_delay", inst->reconnection_delay, <=, fr_time_delta_from_sec(300)); - FR_TIME_DELTA_BOUND_CHECK("connection.idle_timeout", inst->idle_timeout, >=, 5, 0); - FR_TIME_DELTA_BOUND_CHECK("connection.idle_timeout", inst->idle_timeout, <=, 600, 0); + FR_TIME_DELTA_BOUND_CHECK("connection.idle_timeout", inst->idle_timeout, >=, fr_time_delta_from_sec(5)); + FR_TIME_DELTA_BOUND_CHECK("connection.idle_timeout", inst->idle_timeout, <=, fr_time_delta_from_sec(600)); - FR_TIME_DELTA_BOUND_CHECK("connection.zombie_period", inst->zombie_period, >=, 1, 0); - FR_TIME_DELTA_BOUND_CHECK("connection.zombie_period", inst->zombie_period, <=, 120, 0); + FR_TIME_DELTA_BOUND_CHECK("connection.zombie_period", inst->zombie_period, >=, fr_time_delta_from_sec(1)); + FR_TIME_DELTA_BOUND_CHECK("connection.zombie_period", inst->zombie_period, <=, fr_time_delta_from_sec(120)); num_types = talloc_array_length(inst->types); rad_assert(num_types > 0);