summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTom Yu <tlyu@mit.edu>2004-09-21 22:42:31 +0000
committerTom Yu <tlyu@mit.edu>2004-09-21 22:42:31 +0000
commit1839cd60f5b70152bc0404bcc77713295240aa39 (patch)
treea3943c3c8facab2d7b2df7cdb46f827872eff3c2 /src
parent5669bf57b928d5494bfbd4162791371fbe78127f (diff)
downloadkrb5-1839cd60f5b70152bc0404bcc77713295240aa39.tar.gz
krb5-1839cd60f5b70152bc0404bcc77713295240aa39.tar.xz
krb5-1839cd60f5b70152bc0404bcc77713295240aa39.zip
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
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog5
-rw-r--r--src/aclocal.m43
-rw-r--r--src/lib/krb5/os/ChangeLog6
-rw-r--r--src/lib/krb5/os/dnsglue.c15
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,5 +1,10 @@
2004-09-21 Tom Yu <tlyu@mit.edu>
+ * alcocal.m4 (AC_LIBRARY_NET): Additionally, check ns_initparse,
+ since Linux prototypes it but doesn't export it.
+
+2004-09-21 Tom Yu <tlyu@mit.edu>
+
* aclocal.m4 (KRB5_AC_NEED_BIND_8_COMPAT): Remove.
(AC_LIBRARY_NET): Remove KRB5_AC_NEED_BIND_8_COMPAT. Call
_KRB5_AC_CHECK_RES_FUNCS to check declarations and linkability of
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 <tlyu@mit.edu>
+
+ * 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 <tlyu@mit.edu>
* 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