diff options
Diffstat (limited to 'accel-pppd/radius/radius.c')
-rw-r--r-- | accel-pppd/radius/radius.c | 56 |
1 files changed, 20 insertions, 36 deletions
diff --git a/accel-pppd/radius/radius.c b/accel-pppd/radius/radius.c index 64ce90f..5f507cb 100644 --- a/accel-pppd/radius/radius.c +++ b/accel-pppd/radius/radius.c @@ -25,7 +25,8 @@ int conf_max_try = 3; int conf_timeout = 3; -int conf_acct_timeout = 600; +int conf_acct_timeout = 3; +int conf_acct_delay_time; char *conf_nas_identifier; in_addr_t conf_nas_ip_address; in_addr_t conf_gw_ip_address; @@ -33,14 +34,6 @@ in_addr_t conf_bind; int conf_verbose; int conf_interim_verbose; -in_addr_t conf_auth_server; -int conf_auth_server_port = 1812; -char *conf_auth_secret; - -in_addr_t conf_acct_server; -int conf_acct_server_port = 1813; -char *conf_acct_secret; - in_addr_t conf_dm_coa_server; int conf_dm_coa_port = 3799; char *conf_dm_coa_secret; @@ -49,6 +42,9 @@ int conf_sid_in_auth; int conf_require_nas_ident; int conf_acct_interim_interval; +int conf_accounting; +int conf_fail_time = 60; + unsigned long stat_auth_sent; unsigned long stat_auth_lost; unsigned long stat_acct_sent; @@ -471,7 +467,7 @@ static int load_config(void) conf_timeout = atoi(opt); opt = conf_get_opt("radius", "acct-timeout"); - if (opt && atoi(opt) > 0) + if (opt && atoi(opt) >= 0) conf_acct_timeout = atoi(opt); opt = conf_get_opt("radius", "verbose"); @@ -504,27 +500,6 @@ static int load_config(void) else if (conf_nas_ip_address) conf_bind = conf_nas_ip_address; - opt = conf_get_opt("radius", "auth-server"); - if (!opt) - opt = conf_get_opt("radius", "auth_server"); - if (!opt) { - log_emerg("radius: auth-server not specified\n"); - return -1; - } else if (parse_server(opt, &conf_auth_server, &conf_auth_server_port, &conf_auth_secret)) { - log_emerg("radius: failed to parse auth_server\n"); - return -1; - } - - opt = conf_get_opt("radius", "acct-server"); - if (!opt) - opt = conf_get_opt("radius", "acct_server"); - if (!opt) - log_emerg("radius: acct-server not specified\n"); - if (opt && parse_server(opt, &conf_acct_server, &conf_acct_server_port, &conf_acct_secret)) { - log_emerg("radius: failed to parse acct_server\n"); - return -1; - } - opt = conf_get_opt("radius", "dae-server"); if (opt && parse_server(opt, &conf_dm_coa_server, &conf_dm_coa_port, &conf_dm_coa_secret)) { log_emerg("radius: failed to parse dae-server\n"); @@ -532,21 +507,29 @@ static int load_config(void) } opt = conf_get_opt("radius", "sid_in_auth"); - if (opt && atoi(opt) > 0) - conf_sid_in_auth = 1; + if (opt) + conf_sid_in_auth = atoi(opt); opt = conf_get_opt("radius", "require-nas-identification"); - if (opt && atoi(opt) > 0) - conf_require_nas_ident = 1; + if (opt) + conf_require_nas_ident = atoi(opt); opt = conf_get_opt("radius", "acct-interim-interval"); if (opt && atoi(opt) > 0) conf_acct_interim_interval = atoi(opt); + opt = conf_get_opt("radius", "acct-delay-time"); + if (opt) + conf_acct_delay_time = atoi(opt); + + opt = conf_get_opt("radius", "fail-time"); + if (opt) + conf_fail_time = atoi(opt); + return 0; } -static void __init radius_init(void) +static void radius_init(void) { char *opt; char *dict = DICTIONARY; @@ -590,3 +573,4 @@ static void __init radius_init(void) stat_interim_query_5m = stat_accm_create(5 * 60); } +DEFINE_INIT(51, radius_init); |