aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/lib
diff options
context:
space:
mode:
authorDavid M. Syzdek <david@syzdek.net>2022-03-21 20:31:56 -0800
committerDavid M. Syzdek <david@syzdek.net>2022-03-21 20:31:56 -0800
commit0abda6c007f7813c2cae2eefcdf18fe53a47946c (patch)
tree2ca624150e8406e68184a89b974b06ebaacf1770 /lib
parentccec8d8de66189afbc3400e550ff8c5afe3bb734 (diff)
downloadtinyrad-0abda6c007f7813c2cae2eefcdf18fe53a47946c.tar.gz
tinyrad-0abda6c007f7813c2cae2eefcdf18fe53a47946c.tar.bz2
tinyrad-0abda6c007f7813c2cae2eefcdf18fe53a47946c.tar.xz
tinyrad-0abda6c007f7813c2cae2eefcdf18fe53a47946c.zip
libtinyrad: adding tinyrad_tiyrad_defaults()
Diffstat (limited to 'lib')
-rw-r--r--lib/libtinyrad/lmemory.c83
1 files changed, 49 insertions, 34 deletions
diff --git a/lib/libtinyrad/lmemory.c b/lib/libtinyrad/lmemory.c
index 018db0c..0c074b0 100644
--- a/lib/libtinyrad/lmemory.c
+++ b/lib/libtinyrad/lmemory.c
@@ -87,6 +87,12 @@ tinyrad_set_option_socket_bind_addresses(
87 const char * invalue ); 87 const char * invalue );
88 88
89 89
90int
91tinyrad_tiyrad_defaults(
92 TinyRad * tr,
93 unsigned opts );
94
95
90void 96void
91tinyrad_tiyrad_free( 97tinyrad_tiyrad_free(
92 TinyRad * tr ); 98 TinyRad * tr );
@@ -114,6 +120,45 @@ tinyrad_verify_is_obj(
114//-------------------// 120//-------------------//
115#pragma mark TinyRad functions 121#pragma mark TinyRad functions
116 122
123int
124tinyrad_tiyrad_defaults(
125 TinyRad * tr,
126 unsigned opts )
127{
128 int rc;
129
130 assert(tr != NULL);
131
132 // sets default URI
133 if (!(tr->trud))
134 if ((rc = tinyrad_set_option(tr, TRAD_OPT_URI, TRAD_DFLT_URI)) != TRAD_SUCCESS)
135 return(rc);
136
137 // sets default bind addresses
138 if ( (!(tr->bind_sa)) || (!(tr->bind_sa6)) )
139 if ((rc = tinyrad_set_option_socket_bind_addresses(tr, NULL)) != TRAD_SUCCESS)
140 return(rc);
141
142 // sets default network timeout
143 if (!(tr->net_timeout))
144 {
145 if ((tr->net_timeout = malloc(sizeof(struct timeval))) == NULL)
146 return(TRAD_ENOMEM);
147 memset(tr->net_timeout, 0, sizeof(struct timeval));
148 tr->net_timeout->tv_sec = TRAD_DFLT_NET_TIMEOUT_SEC;
149 tr->net_timeout->tv_usec = TRAD_DFLT_NET_TIMEOUT_USEC;
150 };
151
152 // sets default timeout
153 if (tr->timeout == -1)
154 tr->timeout = TRAD_DFLT_TIMEOUT;
155
156 tr->opts |= opts;
157
158 return(TRAD_SUCCESS);
159}
160
161
117/// destroy Tiny RADIUS reference 162/// destroy Tiny RADIUS reference
118/// 163///
119/// @param[in] tr dictionary reference 164/// @param[in] tr dictionary reference
@@ -357,43 +402,13 @@ tinyrad_initialize(
357 tinyrad_dict_set_option(tr->dict, TRAD_DICT_OPT_READONLY, &opt); 402 tinyrad_dict_set_option(tr->dict, TRAD_DICT_OPT_READONLY, &opt);
358 }; 403 };
359 404
360 // sets default URI 405 // apply defaults
361 if (!(tr->trud)) 406 if ((rc = tinyrad_tiyrad_defaults(tr, opts)) != TRAD_SUCCESS)
362 {
363 if ((rc = tinyrad_set_option(tr, TRAD_OPT_URI, TRAD_DFLT_URI)) != TRAD_SUCCESS)
364 {
365 tinyrad_tiyrad_free(tr);
366 return(rc);
367 };
368 };
369
370 // sets default bind addresses
371 if ( (!(tr->bind_sa)) || (!(tr->bind_sa6)) )
372 {
373 if ((rc = tinyrad_set_option_socket_bind_addresses(tr, NULL)) != TRAD_SUCCESS)
374 {
375 tinyrad_tiyrad_free(tr);
376 return(rc);
377 };
378 };
379
380 // sets default network timeout
381 if (!(tr->net_timeout))
382 { 407 {
383 if ((tr->net_timeout = malloc(sizeof(struct timeval))) == NULL) 408 tinyrad_tiyrad_free(tr);
384 { 409 return(rc);
385 tinyrad_tiyrad_free(tr);
386 return(TRAD_ENOMEM);
387 };
388 memset(tr->net_timeout, 0, sizeof(struct timeval));
389 tr->net_timeout->tv_sec = TRAD_DFLT_NET_TIMEOUT_SEC;
390 tr->net_timeout->tv_usec = TRAD_DFLT_NET_TIMEOUT_USEC;
391 }; 410 };
392 411
393 // sets default timeout
394 if (tr->timeout == -1)
395 tr->timeout = TRAD_DFLT_TIMEOUT;
396
397 // generates initial authenticator 412 // generates initial authenticator
398 if ((fd = open("/dev/urandom", O_RDONLY)) != -1) 413 if ((fd = open("/dev/urandom", O_RDONLY)) != -1)
399 { 414 {