From 1839cd60f5b70152bc0404bcc77713295240aa39 Mon Sep 17 00:00:00 2001 From: Tom Yu Date: Tue, 21 Sep 2004 22:42:31 +0000 Subject: [PATCH] Don't assume that presence of res_nsearch() means we have ns_initparse() ticket: 2710 git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@16773 dc483132-0cff-0310-8789-dd5450dbe970 --- src/ChangeLog | 5 +++++ src/aclocal.m4 | 3 ++- src/lib/krb5/os/ChangeLog | 6 ++++++ src/lib/krb5/os/dnsglue.c | 15 +++++++++------ 4 files changed, 22 insertions(+), 7 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 54a49cb65..8dc33ca4d 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2004-09-21 Tom Yu + + * alcocal.m4 (AC_LIBRARY_NET): Additionally, check ns_initparse, + since Linux prototypes it but doesn't export it. + 2004-09-21 Tom Yu * aclocal.m4 (KRB5_AC_NEED_BIND_8_COMPAT): Remove. diff --git a/src/aclocal.m4 b/src/aclocal.m4 index c3acf0b55..87c071d23 100644 --- a/src/aclocal.m4 +++ b/src/aclocal.m4 @@ -1360,7 +1360,8 @@ AC_DEFUN(AC_LIBRARY_NET, [ # We assume that if libresolv exists we can link against it. # This may get us a gethostby* that doesn't respect nsswitch. AC_CHECK_LIB(resolv, main) -_KRB5_AC_CHECK_RES_FUNCS(res_nsearch res_search ns_name_uncompress dn_skipname) +_KRB5_AC_CHECK_RES_FUNCS(res_nsearch res_search ns_initparse dnl +ns_name_uncompress dn_skipname) if test $krb5_cv_func_res_nsearch = no \ && test $krb5_cv_func_res_search = no; then # Attempt to link with res_search(), in case it's not prototyped. diff --git a/src/lib/krb5/os/ChangeLog b/src/lib/krb5/os/ChangeLog index 903bf58fc..85358f418 100644 --- a/src/lib/krb5/os/ChangeLog +++ b/src/lib/krb5/os/ChangeLog @@ -1,3 +1,9 @@ +2004-09-21 Tom Yu + + * dnsglue.c: Conditionalize some stuff on ns_initparse() instead + of assuming that the presence of res_nsearch() means + ns_initparse() is available. + 2004-09-20 Tom Yu * Makefile.in (STLIBOBJS, OBJS, SRCS): Add dnsglue.c. diff --git a/src/lib/krb5/os/dnsglue.c b/src/lib/krb5/os/dnsglue.c index 352134b9c..4bf5e0ac6 100644 --- a/src/lib/krb5/os/dnsglue.c +++ b/src/lib/krb5/os/dnsglue.c @@ -37,7 +37,7 @@ struct krb5int_dns_state { void *ansp; int anslen; int ansmax; -#if HAVE_RES_NSEARCH +#if HAVE_NS_INITPARSE int cur_ans; ns_msg msg; #else @@ -46,7 +46,7 @@ struct krb5int_dns_state { #endif }; -#if !HAVE_RES_NSEARCH +#if !HAVE_NS_INITPARSE static int initparse(struct krb5int_dns_state *); #endif @@ -81,8 +81,11 @@ krb5int_dns_init(struct krb5int_dns_state **dsp, nextincr = 2048; maxincr = INT_MAX; -#if HAVE_RES_NSEARCH +#if HAVE_NS_INITPARSE ds->cur_ans = 0; +#endif + +#if HAVE_RES_NSEARCH len = res_ninit(&statbuf); if (len < 0) return -1; @@ -117,7 +120,7 @@ krb5int_dns_init(struct krb5int_dns_state **dsp, } while (len > ds->ansmax); ds->anslen = len; -#if HAVE_RES_NSEARCH +#if HAVE_NS_INITPARSE len = ns_initparse(ds->ansp, ds->anslen, &ds->msg); #else len = initparse(ds); @@ -130,7 +133,7 @@ krb5int_dns_init(struct krb5int_dns_state **dsp, return 0; } -#if HAVE_RES_NSEARCH +#if HAVE_NS_INITPARSE /* * krb5int_dns_nextans - get next matching answer record * @@ -196,7 +199,7 @@ krb5int_dns_fini(struct krb5int_dns_state *ds) /* * Compat routines for BIND 4 */ -#if !HAVE_RES_NSEARCH +#if !HAVE_NS_INITPARSE /* * initparse -- 2.26.2