aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorDavid M. Syzdek <david@syzdek.net>2022-03-17 16:09:28 -0800
committerDavid M. Syzdek <david@syzdek.net>2022-03-17 16:09:28 -0800
commitcb7170200251a342d024a38e879e9a7496e79365 (patch)
treec681326d51aee3ee32a0ae5cdcd4b7c18f05a6d1
parente61a0b72348d18330482b8da2ac6f01b07087aac (diff)
downloadtinyrad-cb7170200251a342d024a38e879e9a7496e79365.tar.gz
tinyrad-cb7170200251a342d024a38e879e9a7496e79365.tar.bz2
tinyrad-cb7170200251a342d024a38e879e9a7496e79365.tar.xz
tinyrad-cb7170200251a342d024a38e879e9a7496e79365.zip
libtinyrad: updating tinyrad_initialize() with default values
-rw-r--r--lib/libtinyrad/lconf.c2
-rw-r--r--lib/libtinyrad/lmemory.c36
2 files changed, 24 insertions, 14 deletions
diff --git a/lib/libtinyrad/lconf.c b/lib/libtinyrad/lconf.c
index 27b9496..799460b 100644
--- a/lib/libtinyrad/lconf.c
+++ b/lib/libtinyrad/lconf.c
@@ -300,7 +300,7 @@ tinyrad_conf_opt(
300 300
301 if (!(strcasecmp(name, "timeout"))) 301 if (!(strcasecmp(name, "timeout")))
302 { 302 {
303 if ( (!(tr)) || ((tr->timeout)) || (!(value)) ) 303 if ( (!(tr)) || (tr->timeout != -1) || (!(value)) )
304 return(TRAD_SUCCESS); 304 return(TRAD_SUCCESS);
305 if ((i = (int)strtoll(value, &endptr, 10)) < 1) 305 if ((i = (int)strtoll(value, &endptr, 10)) < 1)
306 return(TRAD_SUCCESS); 306 return(TRAD_SUCCESS);
diff --git a/lib/libtinyrad/lmemory.c b/lib/libtinyrad/lmemory.c
index d160e91..c798c5c 100644
--- a/lib/libtinyrad/lmemory.c
+++ b/lib/libtinyrad/lmemory.c
@@ -302,7 +302,7 @@ tinyrad_initialize(
302 return(TRAD_ENOMEM); 302 return(TRAD_ENOMEM);
303 tr->opts = (uint32_t)(opts & TRAD_OPTS_USER); 303 tr->opts = (uint32_t)(opts & TRAD_OPTS_USER);
304 tr->s = -1; 304 tr->s = -1;
305 tr->timeout = TRAD_DFLT_TIMEOUT; 305 tr->timeout = -1;
306 306
307 // parses and saves URL 307 // parses and saves URL
308 if ((rc = tinyrad_set_option(tr, TRAD_OPT_URI, url)) != TRAD_SUCCESS) 308 if ((rc = tinyrad_set_option(tr, TRAD_OPT_URI, url)) != TRAD_SUCCESS)
@@ -328,7 +328,7 @@ tinyrad_initialize(
328 return(rc); 328 return(rc);
329 }; 329 };
330 330
331 // load default dictionary file and make read-only 331 // load builtin dictionary, load default dictionary file, and make read-only
332 if (!(dict)) 332 if (!(dict))
333 { 333 {
334 if ((rc = tinyrad_dict_defaults(tr->dict, NULL, (TRAD_BUILTIN_DICT|opts))) != TRAD_SUCCESS) 334 if ((rc = tinyrad_dict_defaults(tr->dict, NULL, (TRAD_BUILTIN_DICT|opts))) != TRAD_SUCCESS)
@@ -340,22 +340,32 @@ tinyrad_initialize(
340 tinyrad_dict_set_option(tr->dict, TRAD_DICT_OPT_READONLY, &opt); 340 tinyrad_dict_set_option(tr->dict, TRAD_DICT_OPT_READONLY, &opt);
341 }; 341 };
342 342
343 // sets bind addresses 343 // sets default bind addresses
344 if ((rc = tinyrad_set_option_socket_bind_addresses(tr, NULL)) != TRAD_SUCCESS) 344 if ( (!(tr->bind_sa)) || (!(tr->bind_sa6)) )
345 { 345 {
346 tinyrad_tiyrad_free(tr); 346 if ((rc = tinyrad_set_option_socket_bind_addresses(tr, NULL)) != TRAD_SUCCESS)
347 return(rc); 347 {
348 tinyrad_tiyrad_free(tr);
349 return(rc);
350 };
348 }; 351 };
349 352
350 // sets network timeout 353 // sets default network timeout
351 if ((tr->net_timeout = malloc(sizeof(struct timeval))) == NULL) 354 if (!(tr->net_timeout))
352 { 355 {
353 tinyrad_tiyrad_free(tr); 356 if ((tr->net_timeout = malloc(sizeof(struct timeval))) == NULL)
354 return(TRAD_ENOMEM); 357 {
358 tinyrad_tiyrad_free(tr);
359 return(TRAD_ENOMEM);
360 };
361 memset(tr->net_timeout, 0, sizeof(struct timeval));
362 tr->net_timeout->tv_sec = TRAD_DFLT_NET_TIMEOUT_SEC;
363 tr->net_timeout->tv_usec = TRAD_DFLT_NET_TIMEOUT_USEC;
355 }; 364 };
356 memset(tr->net_timeout, 0, sizeof(struct timeval)); 365
357 tr->net_timeout->tv_sec = TRAD_DFLT_NET_TIMEOUT_SEC; 366 // sets default timeout
358 tr->net_timeout->tv_usec = TRAD_DFLT_NET_TIMEOUT_USEC; 367 if (tr->timeout == -1)
368 tr->timeout = TRAD_DFLT_TIMEOUT;
359 369
360 // generates initial authenticator 370 // generates initial authenticator
361 if ((fd = open("/dev/urandom", O_RDONLY)) != -1) 371 if ((fd = open("/dev/urandom", O_RDONLY)) != -1)