From e5f4160abac6c03d67eda46b2096e0c95f04b2e1 Mon Sep 17 00:00:00 2001 From: "David M. Syzdek" Date: Wed, 23 Mar 2022 22:47:26 -0800 Subject: libtinyrad: updating how tinyrad_urldesc_resolve() handles unresolved URLs --- lib/libtinyrad/lurl.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/lib/libtinyrad/lurl.c b/lib/libtinyrad/lurl.c index 501c815..6447e67 100644 --- a/lib/libtinyrad/lurl.c +++ b/lib/libtinyrad/lurl.c @@ -538,6 +538,7 @@ tinyrad_urldesc_resolve( size_t pos; int ai_family; int ai_flags; + int resolved; size_t size; struct addrinfo hints; struct addrinfo * hintsp; @@ -589,7 +590,10 @@ tinyrad_urldesc_resolve( break; }; - while ((trudp)) + resolved = TRAD_NO; + + // loop through URL descriptors + for(; ((trudp)); trudp = trudp->trud_next) { TinyRadDebug(TRAD_DEBUG_ARGS, " => %s members", "trudp"); TinyRadDebug(TRAD_DEBUG_ARGS, " => trudp->trud_host: %s", trudp->trud_host); @@ -605,7 +609,8 @@ tinyrad_urldesc_resolve( hintsp = &hints; if (getaddrinfo(trudp->trud_host, NULL, hintsp, &res) != 0) - return(TRAD_ERESOLVE); + continue; + resolved = TRAD_YES; // initialize memory sas_len = ((trudp->trud_sockaddrs_len)) ? trudp->trud_sockaddrs_len : 0; @@ -664,10 +669,11 @@ tinyrad_urldesc_resolve( }; freeaddrinfo(res); - - trudp = trudp->trud_next; }; + if (resolved == TRAD_NO) + return(TRAD_ERESOLVE); + return(TRAD_SUCCESS); } -- cgit v1.2.3