aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorDavid M. Syzdek <david@syzdek.net>2022-06-01 20:43:10 -0800
committerDavid M. Syzdek <david@syzdek.net>2022-06-01 20:43:10 -0800
commitd163e24d2e96c4ea1c966aa494a98191b0b2495f (patch)
tree6827ea290b062a26ed992d58904c702cf56be1ad
parentdde0997af66930be19c0815bc3c78b3bb851e55f (diff)
downloadtinytac-d163e24d2e96c4ea1c966aa494a98191b0b2495f.tar.gz
tinytac-d163e24d2e96c4ea1c966aa494a98191b0b2495f.tar.bz2
tinytac-d163e24d2e96c4ea1c966aa494a98191b0b2495f.tar.xz
tinytac-d163e24d2e96c4ea1c966aa494a98191b0b2495f.zip
libtinytac: replacing bindle_map_t with tinytac_opt_t in lconf.c
-rw-r--r--lib/libtinytac/lconf.c103
1 files changed, 67 insertions, 36 deletions
diff --git a/lib/libtinytac/lconf.c b/lib/libtinytac/lconf.c
index b7c1c68..de913e2 100644
--- a/lib/libtinytac/lconf.c
+++ b/lib/libtinytac/lconf.c
@@ -64,6 +64,20 @@
64#endif 64#endif
65 65
66 66
67//////////////////
68// //
69// Data Types //
70// //
71//////////////////
72#pragma mark - Data Types
73
74typedef struct _tinytac_opt
75{
76 const char * opt_name;
77 uintptr_t opt_id;
78} tinytac_opt_t;
79
80
67///////////////// 81/////////////////
68// // 82// //
69// Variables // 83// Variables //
@@ -76,24 +90,24 @@ static atomic_int tinytac_conf_init;
76 90
77 91
78#pragma mark tinytac_conf_options[] 92#pragma mark tinytac_conf_options[]
79static bindle_map_t tinytac_conf_options[] = 93static tinytac_opt_t tinytac_conf_options[] =
80{ 94{
81 { .map_name = "AUTHEN_ASCII", .map_value = TTAC_OPT_AUTHEN_ASCII }, 95 { .opt_name = "AUTHEN_ASCII", .opt_id = TTAC_OPT_AUTHEN_ASCII },
82 { .map_name = "AUTHEN_CHAP", .map_value = TTAC_OPT_AUTHEN_CHAP }, 96 { .opt_name = "AUTHEN_CHAP", .opt_id = TTAC_OPT_AUTHEN_CHAP },
83 { .map_name = "AUTHEN_MSCHAP", .map_value = TTAC_OPT_AUTHEN_MSCHAP }, 97 { .opt_name = "AUTHEN_MSCHAP", .opt_id = TTAC_OPT_AUTHEN_MSCHAP },
84 { .map_name = "AUTHEN_MSCHAPV2", .map_value = TTAC_OPT_AUTHEN_MSCHAPV2 }, 98 { .opt_name = "AUTHEN_MSCHAPV2", .opt_id = TTAC_OPT_AUTHEN_MSCHAPV2 },
85 { .map_name = "AUTHEN_PAP", .map_value = TTAC_OPT_AUTHEN_PAP }, 99 { .opt_name = "AUTHEN_PAP", .opt_id = TTAC_OPT_AUTHEN_PAP },
86 { .map_name = "DEBUG_LEVEL", .map_value = TTAC_OPT_DEBUG_LEVEL }, 100 { .opt_name = "DEBUG_LEVEL", .opt_id = TTAC_OPT_DEBUG_LEVEL },
87 { .map_name = "DEBUG_SYSLOG", .map_value = TTAC_OPT_DEBUG_SYSLOG }, 101 { .opt_name = "DEBUG_SYSLOG", .opt_id = TTAC_OPT_DEBUG_SYSLOG },
88 { .map_name = "HOST", .map_value = TTAC_OPT_HOSTS }, 102 { .opt_name = "HOST", .opt_id = TTAC_OPT_HOSTS },
89 { .map_name = "IPV4", .map_value = TTAC_OPT_IPV4 }, 103 { .opt_name = "IPV4", .opt_id = TTAC_OPT_IPV4 },
90 { .map_name = "IPV6", .map_value = TTAC_OPT_IPV6 }, 104 { .opt_name = "IPV6", .opt_id = TTAC_OPT_IPV6 },
91 { .map_name = "KEY", .map_value = TTAC_OPT_KEY }, 105 { .opt_name = "KEY", .opt_id = TTAC_OPT_KEY },
92 { .map_name = "NETWORK_TIMEOUT", .map_value = TTAC_OPT_NETWORK_TIMEOUT }, 106 { .opt_name = "NETWORK_TIMEOUT", .opt_id = TTAC_OPT_NETWORK_TIMEOUT },
93 { .map_name = "RANDOM", .map_value = TTAC_OPT_RANDOM }, 107 { .opt_name = "RANDOM", .opt_id = TTAC_OPT_RANDOM },
94 { .map_name = "STOPINIT", .map_value = TTAC_OPT_STOPINIT }, 108 { .opt_name = "STOPINIT", .opt_id = TTAC_OPT_STOPINIT },
95 { .map_name = "TIMEOUT", .map_value = TTAC_OPT_TIMEOUT }, 109 { .opt_name = "TIMEOUT", .opt_id = TTAC_OPT_TIMEOUT },
96 { .map_name = NULL, .map_value = 0 } 110 { .opt_name = NULL, .opt_id = 0 }
97}; 111};
98 112
99 113
@@ -116,28 +130,33 @@ tinytac_conf_file(
116 130
117static int 131static int
118tinytac_conf_opt( 132tinytac_conf_opt(
119 const bindle_map_t * opt, 133 const tinytac_opt_t * opt,
120 const char * value ); 134 const char * value );
121 135
122 136
123static int 137static int
124tinytac_conf_opt_flag( 138tinytac_conf_opt_flag(
125 const bindle_map_t * opt, 139 const tinytac_opt_t * opt,
126 const char * value ); 140 const char * value );
127 141
128 142
129static int 143static int
130tinytac_conf_opt_int( 144tinytac_conf_opt_int(
131 const bindle_map_t * opt, 145 const tinytac_opt_t * opt,
132 const char * value ); 146 const char * value );
133 147
134 148
135static int 149static int
136tinytac_conf_opt_timeval( 150tinytac_conf_opt_timeval(
137 const bindle_map_t * opt, 151 const tinytac_opt_t * opt,
138 const char * value ); 152 const char * value );
139 153
140 154
155static tinytac_opt_t *
156tinytac_opt_lookup_name(
157 const char * name );
158
159
141///////////////// 160/////////////////
142// // 161// //
143// Functions // 162// Functions //
@@ -243,17 +262,17 @@ tinytac_conf_environment(
243 size_t pos; 262 size_t pos;
244 char * value; 263 char * value;
245 char varname[64]; 264 char varname[64];
246 bindle_map_t * opt; 265 tinytac_opt_t * opt;
247 266
248 TinyTacDebugTrace(); 267 TinyTacDebugTrace();
249 268
250 for(pos = 0; ((tinytac_conf_options[pos].map_name)); pos++) 269 for(pos = 0; ((tinytac_conf_options[pos].opt_name)); pos++)
251 { 270 {
252 opt = &tinytac_conf_options[pos]; 271 opt = &tinytac_conf_options[pos];
253 if (opt->map_value == TTAC_OPT_STOPINIT) 272 if (opt->opt_id == TTAC_OPT_STOPINIT)
254 continue; 273 continue;
255 tinytacb_strlcpy(varname, "TINYTAC_", sizeof(varname)); 274 tinytacb_strlcpy(varname, "TINYTAC_", sizeof(varname));
256 tinytacb_strlcat(varname, opt->map_name, sizeof(varname)); 275 tinytacb_strlcat(varname, opt->opt_name, sizeof(varname));
257 if ((value = getenv(varname)) != NULL) 276 if ((value = getenv(varname)) != NULL)
258 tinytac_conf_opt(opt, value); 277 tinytac_conf_opt(opt, value);
259 }; 278 };
@@ -277,7 +296,7 @@ tinytac_conf_file(
277 char value[TTAC_LINE_MAX_LEN]; 296 char value[TTAC_LINE_MAX_LEN];
278 char ** argv; 297 char ** argv;
279 const char * val; 298 const char * val;
280 const bindle_map_t * opt; 299 const tinytac_opt_t * opt;
281 300
282 TinyTacDebugTrace(); 301 TinyTacDebugTrace();
283 302
@@ -308,7 +327,7 @@ tinytac_conf_file(
308 tinytacb_strsfree(argv); 327 tinytacb_strsfree(argv);
309 continue; 328 continue;
310 }; 329 };
311 if (tinytacb_map_lookup_name(tinytac_conf_options, argv[0], &opt) == 0) 330 if ((opt = tinytac_opt_lookup_name(argv[0])) == NULL)
312 { 331 {
313 tinytacb_strsfree(argv); 332 tinytacb_strsfree(argv);
314 continue; 333 continue;
@@ -331,14 +350,14 @@ tinytac_conf_file(
331 350
332int 351int
333tinytac_conf_opt( 352tinytac_conf_opt(
334 const bindle_map_t * opt, 353 const tinytac_opt_t * opt,
335 const char * value ) 354 const char * value )
336{ 355{
337 int ival; 356 int ival;
338 357
339 TinyTacDebugTrace(); 358 TinyTacDebugTrace();
340 359
341 switch(opt->map_value) 360 switch(opt->opt_id)
342 { 361 {
343 case TTAC_OPT_AUTHEN_ASCII: 362 case TTAC_OPT_AUTHEN_ASCII:
344 TinyTacDebug(TTAC_DEBUG_ARGS, " == %s( TTAC_OPT_AUTHEN_ASCII, \"%s\" )", __func__, (((value)) ? value : "(null)")); 363 TinyTacDebug(TTAC_DEBUG_ARGS, " == %s( TTAC_OPT_AUTHEN_ASCII, \"%s\" )", __func__, (((value)) ? value : "(null)"));
@@ -419,7 +438,7 @@ tinytac_conf_opt(
419 438
420int 439int
421tinytac_conf_opt_flag( 440tinytac_conf_opt_flag(
422 const bindle_map_t * opt, 441 const tinytac_opt_t * opt,
423 const char * value ) 442 const char * value )
424{ 443{
425 int i; 444 int i;
@@ -428,8 +447,8 @@ tinytac_conf_opt_flag(
428 447
429 switch(i = ((value)) ? tinytacb_strtobool(value) : TTAC_YES) 448 switch(i = ((value)) ? tinytacb_strtobool(value) : TTAC_YES)
430 { 449 {
431 case TTAC_NO: return(tinytac_set_option(NULL, (int)opt->map_value, &i)); 450 case TTAC_NO: return(tinytac_set_option(NULL, (int)opt->opt_id, &i));
432 case TTAC_YES: return(tinytac_set_option(NULL, (int)opt->map_value, &i)); 451 case TTAC_YES: return(tinytac_set_option(NULL, (int)opt->opt_id, &i));
433 default: break; 452 default: break;
434 }; 453 };
435 454
@@ -439,7 +458,7 @@ tinytac_conf_opt_flag(
439 458
440int 459int
441tinytac_conf_opt_int( 460tinytac_conf_opt_int(
442 const bindle_map_t * opt, 461 const tinytac_opt_t * opt,
443 const char * value ) 462 const char * value )
444{ 463{
445 int i; 464 int i;
@@ -452,13 +471,13 @@ tinytac_conf_opt_int(
452 if ((endptr[0])) 471 if ((endptr[0]))
453 return(TTAC_SUCCESS); 472 return(TTAC_SUCCESS);
454 473
455 return(tinytac_set_option(NULL, (int)opt->map_value, &i)); 474 return(tinytac_set_option(NULL, (int)opt->opt_id, &i));
456} 475}
457 476
458 477
459int 478int
460tinytac_conf_opt_timeval( 479tinytac_conf_opt_timeval(
461 const bindle_map_t * opt, 480 const tinytac_opt_t * opt,
462 const char * value ) 481 const char * value )
463{ 482{
464 char * endptr; 483 char * endptr;
@@ -472,9 +491,21 @@ tinytac_conf_opt_timeval(
472 if ((endptr[0])) 491 if ((endptr[0]))
473 return(TTAC_SUCCESS); 492 return(TTAC_SUCCESS);
474 493
475 return(tinytac_set_option(NULL, (int)opt->map_value, &tv)); 494 return(tinytac_set_option(NULL, (int)opt->opt_id, &tv));
476} 495}
477 496
478 497
498tinytac_opt_t *
499tinytac_opt_lookup_name(
500 const char * name )
501{
502 size_t pos;
503 if (!(name))
504 return(NULL);
505 for(pos = 0; ((tinytac_conf_options[pos].opt_name)); pos++)
506 if (!(strcasecmp(tinytac_conf_options[pos].opt_name, name)))
507 return(&tinytac_conf_options[pos]);
508 return(NULL);
509}
479 510
480/* end of source */ 511/* end of source */