aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorDavid M. Syzdek <david@syzdek.net>2022-03-21 17:38:00 -0800
committerDavid M. Syzdek <david@syzdek.net>2022-03-21 17:49:57 -0800
commit0c4a1fa9ea6cc43d017761ddaccb5515ce5ad741 (patch)
tree92e82d8b7a68421b5681791787ad12ee0effbe63
parent519d6acb907ec336a335a1f3e6a6375d0989338c (diff)
downloadtinyrad-0c4a1fa9ea6cc43d017761ddaccb5515ce5ad741.tar.gz
tinyrad-0c4a1fa9ea6cc43d017761ddaccb5515ce5ad741.tar.bz2
tinyrad-0c4a1fa9ea6cc43d017761ddaccb5515ce5ad741.tar.xz
tinyrad-0c4a1fa9ea6cc43d017761ddaccb5515ce5ad741.zip
libtinyrad: refactoring tinyrad_conf_environment()
-rw-r--r--lib/libtinyrad/lconf.c77
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[]
87static 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}