diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/libtinyrad/lconf.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/lib/libtinyrad/lconf.c b/lib/libtinyrad/lconf.c index 728f84a..7bc05a6 100644 --- a/lib/libtinyrad/lconf.c +++ b/lib/libtinyrad/lconf.c | |||
| @@ -76,6 +76,8 @@ | |||
| 76 | #define TRAD_CONF_TIMEOUT 9 | 76 | #define TRAD_CONF_TIMEOUT 9 |
| 77 | #define TRAD_CONF_URI 10 | 77 | #define TRAD_CONF_URI 10 |
| 78 | #define TRAD_CONF_RANDOM 11 | 78 | #define TRAD_CONF_RANDOM 11 |
| 79 | #define TRAD_CONF_IPV4 12 | ||
| 80 | #define TRAD_CONF_IPV6 13 | ||
| 79 | 81 | ||
| 80 | 82 | ||
| 81 | ///////////////// | 83 | ///////////////// |
| @@ -91,6 +93,8 @@ static const TinyRadMap tinyrad_conf_options[] = | |||
| 91 | { "BIND_ADDRESS", TRAD_CONF_BIND_ADDRESS }, | 93 | { "BIND_ADDRESS", TRAD_CONF_BIND_ADDRESS }, |
| 92 | { "BUILTIN_DICTIONARY", TRAD_CONF_BUILTIN_DICTIONARY }, | 94 | { "BUILTIN_DICTIONARY", TRAD_CONF_BUILTIN_DICTIONARY }, |
| 93 | { "DICTIONARY", TRAD_CONF_DICTIONARY }, | 95 | { "DICTIONARY", TRAD_CONF_DICTIONARY }, |
| 96 | { "IPV4", TRAD_CONF_IPV4 }, | ||
| 97 | { "IPV6", TRAD_CONF_IPV6 }, | ||
| 94 | { "NETWORK_TIMEOUT", TRAD_CONF_NETWORK_TIMEOUT }, | 98 | { "NETWORK_TIMEOUT", TRAD_CONF_NETWORK_TIMEOUT }, |
| 95 | { "PATHS", TRAD_CONF_PATHS }, | 99 | { "PATHS", TRAD_CONF_PATHS }, |
| 96 | { "RANDOM", TRAD_CONF_RANDOM }, | 100 | { "RANDOM", TRAD_CONF_RANDOM }, |
| @@ -366,6 +370,28 @@ tinyrad_conf_opt( | |||
| 366 | return(TRAD_ENOMEM); | 370 | return(TRAD_ENOMEM); |
| 367 | return(TRAD_SUCCESS); | 371 | return(TRAD_SUCCESS); |
| 368 | 372 | ||
| 373 | case TRAD_CONF_IPV4: | ||
| 374 | TinyRadDebug(TRAD_DEBUG_ARGS, " == %s( tr, TRAD_CONF_IPV4, \"%s\" )", __func__, (((value)) ? value : "(null)")); | ||
| 375 | if ( (!(tr)) || ((tr->opts & TRAD_IPV4)) || ((tr->opts_neg & TRAD_IPV4)) ) | ||
| 376 | return(TRAD_SUCCESS); | ||
| 377 | switch(i = ((value)) ? tinyrad_strtobool(value) : TRAD_YES) | ||
| 378 | { case TRAD_NO: tinyrad_set_option(tr, TRAD_IPV4, &i); break; | ||
| 379 | case TRAD_YES: tinyrad_set_option(tr, TRAD_IPV4, &i); break; | ||
| 380 | default: break; | ||
| 381 | }; | ||
| 382 | return(TRAD_SUCCESS); | ||
| 383 | |||
| 384 | case TRAD_CONF_IPV6: | ||
| 385 | TinyRadDebug(TRAD_DEBUG_ARGS, " == %s( tr, TRAD_CONF_IPV6, \"%s\" )", __func__, (((value)) ? value : "(null)")); | ||
| 386 | if ( (!(tr)) || ((tr->opts & TRAD_IPV6)) || ((tr->opts_neg & TRAD_IPV6)) ) | ||
| 387 | return(TRAD_SUCCESS); | ||
| 388 | switch(i = ((value)) ? tinyrad_strtobool(value) : TRAD_YES) | ||
| 389 | { case TRAD_NO: tinyrad_set_option(tr, TRAD_IPV6, &i); break; | ||
| 390 | case TRAD_YES: tinyrad_set_option(tr, TRAD_IPV6, &i); break; | ||
| 391 | default: break; | ||
| 392 | }; | ||
| 393 | return(TRAD_SUCCESS); | ||
| 394 | |||
| 369 | case TRAD_CONF_NETWORK_TIMEOUT: | 395 | case TRAD_CONF_NETWORK_TIMEOUT: |
| 370 | TinyRadDebug(TRAD_DEBUG_ARGS, " == %s( tr, TRAD_CONF_NETWORK_TIMEOUT, \"%s\" )", __func__, (((value)) ? value : "(null)")); | 396 | TinyRadDebug(TRAD_DEBUG_ARGS, " == %s( tr, TRAD_CONF_NETWORK_TIMEOUT, \"%s\" )", __func__, (((value)) ? value : "(null)")); |
| 371 | if ( (!(tr)) || ((tr->net_timeout)) || (!(value)) ) | 397 | if ( (!(tr)) || ((tr->net_timeout)) || (!(value)) ) |
