diff options
| author | David M. Syzdek <david@syzdek.net> | 2022-03-21 17:38:00 -0800 |
|---|---|---|
| committer | David M. Syzdek <david@syzdek.net> | 2022-03-21 17:49:57 -0800 |
| commit | 0c4a1fa9ea6cc43d017761ddaccb5515ce5ad741 (patch) | |
| tree | 92e82d8b7a68421b5681791787ad12ee0effbe63 /lib | |
| parent | 519d6acb907ec336a335a1f3e6a6375d0989338c (diff) | |
| download | tinyrad-0c4a1fa9ea6cc43d017761ddaccb5515ce5ad741.tar.gz tinyrad-0c4a1fa9ea6cc43d017761ddaccb5515ce5ad741.tar.bz2 tinyrad-0c4a1fa9ea6cc43d017761ddaccb5515ce5ad741.tar.xz tinyrad-0c4a1fa9ea6cc43d017761ddaccb5515ce5ad741.zip | |
libtinyrad: refactoring tinyrad_conf_environment()
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/libtinyrad/lconf.c | 77 |
1 files changed, 51 insertions, 26 deletions
diff --git a/lib/libtinyrad/lconf.c b/lib/libtinyrad/lconf.c index ef0c884..f569b93 100644 --- a/lib/libtinyrad/lconf.c +++ b/lib/libtinyrad/lconf.c | |||
| @@ -64,6 +64,41 @@ | |||
| 64 | # define SYSCONFDIR "/etc" | 64 | # define SYSCONFDIR "/etc" |
| 65 | #endif | 65 | #endif |
| 66 | 66 | ||
| 67 | #define TRAD_CONF_BIND_ADDRESS __LINE__ | ||
| 68 | #define TRAD_CONF_BUILTIN_DICTIONARY __LINE__ | ||
| 69 | #define TRAD_CONF_DICTIONARY __LINE__ | ||
| 70 | #define TRAD_CONF_NETWORK_TIMEOUT __LINE__ | ||
| 71 | #define TRAD_CONF_PATHS __LINE__ | ||
| 72 | #define TRAD_CONF_SECRET __LINE__ | ||
| 73 | #define TRAD_CONF_SECRET_FILE __LINE__ | ||
| 74 | #define TRAD_CONF_STOPINIT __LINE__ | ||
| 75 | #define TRAD_CONF_TIMEOUT __LINE__ | ||
| 76 | #define TRAD_CONF_URI __LINE__ | ||
| 77 | |||
| 78 | |||
| 79 | ///////////////// | ||
| 80 | // // | ||
| 81 | // Variables // | ||
| 82 | // // | ||
| 83 | ///////////////// | ||
| 84 | #pragma mark - Variables | ||
| 85 | |||
| 86 | #pragma mark tinyrad_conf_options[] | ||
| 87 | static const TinyRadMap tinyrad_conf_options[] = | ||
| 88 | { | ||
| 89 | { "BIND_ADDRESS", TRAD_CONF_BIND_ADDRESS }, | ||
| 90 | { "BUILTIN_DICTIONARY", TRAD_CONF_BUILTIN_DICTIONARY }, | ||
| 91 | { "DICTIONARY", TRAD_CONF_DICTIONARY }, | ||
| 92 | { "NETWORK_TIMEOUT", TRAD_CONF_NETWORK_TIMEOUT }, | ||
| 93 | { "PATHS", TRAD_CONF_PATHS }, | ||
| 94 | { "SECRET", TRAD_CONF_SECRET }, | ||
| 95 | { "SECRET_FILE", TRAD_CONF_SECRET_FILE }, | ||
| 96 | { "STOPINIT", TRAD_CONF_STOPINIT }, | ||
| 97 | { "TIMEOUT", TRAD_CONF_TIMEOUT }, | ||
| 98 | { "URI", TRAD_CONF_URI }, | ||
| 99 | { NULL, 0 } | ||
| 100 | }; | ||
| 101 | |||
| 67 | 102 | ||
| 68 | ////////////////// | 103 | ////////////////// |
| 69 | // // | 104 | // // |
| @@ -201,34 +236,24 @@ tinyrad_conf_environment( | |||
| 201 | TinyRad * tr, | 236 | TinyRad * tr, |
| 202 | TinyRadDict * dict ) | 237 | TinyRadDict * dict ) |
| 203 | { | 238 | { |
| 204 | char * value; | 239 | size_t pos; |
| 205 | 240 | char * value; | |
| 206 | if ((value = getenv("TINYRAD_BIND_ADDRESS")) != NULL) | 241 | char varname[64]; |
| 207 | tinyrad_conf_opt(tr, dict, "bind_address", value); | 242 | const TinyRadMap * opt; |
| 208 | 243 | ||
| 209 | if ((value = getenv("TINYRAD_BUILTIN_DICTIONARY")) != NULL) | 244 | for(pos = 0; ((tinyrad_conf_options[pos].map_name)); pos++) |
| 210 | tinyrad_conf_opt(tr, dict, "builtin_dictionary", value); | 245 | { |
| 211 | 246 | opt = &tinyrad_conf_options[pos]; | |
| 212 | if ((value = getenv("TINYRAD_DICTIONARY")) != NULL) | 247 | if (opt->map_value == TRAD_CONF_STOPINIT) |
| 213 | tinyrad_conf_opt(tr, dict, "dictionary", value); | 248 | continue; |
| 214 | 249 | tinyrad_strlcpy(varname, "TINYRAD_", sizeof(varname)); | |
| 215 | if ((value = getenv("TINYRAD_NETWORK_TIMEOUT")) != NULL) | 250 | tinyrad_strlcat(varname, opt->map_name, sizeof(varname)); |
| 216 | tinyrad_conf_opt(tr, dict, "network_timeout", value); | 251 | if ((value = getenv(varname)) != NULL) |
| 217 | 252 | tinyrad_conf_opt(tr, dict, opt->map_name, value); | |
| 218 | if ((value = getenv("TINYRAD_PATHS")) != NULL) | 253 | }; |
| 219 | tinyrad_conf_opt(tr, dict, "paths", value); | ||
| 220 | |||
| 221 | if ((value = getenv("TINYRAD_SECRET")) != NULL) | ||
| 222 | tinyrad_conf_opt(tr, dict, "secret", value); | ||
| 223 | |||
| 224 | if ((value = getenv("TINYRAD_SECRET_FILE")) != NULL) | ||
| 225 | tinyrad_conf_opt(tr, dict, "secret_file", value); | ||
| 226 | |||
| 227 | if ((value = getenv("TINYRAD_TIMEOUT")) != NULL) | ||
| 228 | tinyrad_conf_opt(tr, dict, "timeout", value); | ||
| 229 | 254 | ||
| 230 | if ((value = getenv("TINYRAD_URI")) != NULL) | 255 | if ((value = getenv("TINYRAD_STOPINIT")) != NULL) |
| 231 | tinyrad_conf_opt(tr, dict, "uri", value); | 256 | tinyrad_conf_opt(tr, dict, "stopinit", value); |
| 232 | 257 | ||
| 233 | return(TRAD_SUCCESS); | 258 | return(TRAD_SUCCESS); |
| 234 | } | 259 | } |
