Module Name:src
Committed By: christos
Date: Mon Mar 31 02:03:38 UTC 2014
Modified Files:
src/external/apache2/mDNSResponder/nss: Makefile nss_mdnsd.c
Log Message:
Convert to the new thread safe gethostby{name,addr} nsswitch ABI.
To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/external/apache2/mDNSResponder/nss/Makefile \
src/external/apache2/mDNSResponder/nss/nss_mdnsd.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/external/apache2/mDNSResponder/nss/Makefile
diff -u src/external/apache2/mDNSResponder/nss/Makefile:1.3 src/external/apache2/mDNSResponder/nss/Makefile:1.4
--- src/external/apache2/mDNSResponder/nss/Makefile:1.3 Sun Dec 13 03:02:36 2009
+++ src/external/apache2/mDNSResponder/nss/Makefile Sun Mar 30 22:03:38 2014
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.3 2009/12/13 08:02:36 mrg Exp $
+# $NetBSD: Makefile,v 1.4 2014/03/31 02:03:38 christos Exp $
LIB= nss_mdnsd
SHLIB_MAJOR= 0
@@ -13,6 +13,8 @@ NOPICINSTALL= # don't install _pic.a lib
.include ${.CURDIR}/../Makefile.inc
+CPPFLAGS+=-I${NETBSDSRCDIR}/lib/libc/net
+
SRCS= nss_mdnsd.c
LDADD+= -ldns_sd
DPADD+= ${LIBDNS_SD}
Index: src/external/apache2/mDNSResponder/nss/nss_mdnsd.c
diff -u src/external/apache2/mDNSResponder/nss/nss_mdnsd.c:1.3 src/external/apache2/mDNSResponder/nss/nss_mdnsd.c:1.4
--- src/external/apache2/mDNSResponder/nss/nss_mdnsd.c:1.3 Wed Nov 4 18:34:59 2009
+++ src/external/apache2/mDNSResponder/nss/nss_mdnsd.c Sun Mar 30 22:03:38 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: nss_mdnsd.c,v 1.3 2009/11/04 23:34:59 tsarna Exp $ */
+/* $NetBSD: nss_mdnsd.c,v 1.4 2014/03/31 02:03:38 christos Exp $ */
/*-
* Copyright (c) 2009 The NetBSD Foundation, Inc.
@@ -61,6 +61,8 @@
#include time.h
+#include hostent.h
+
/*
* Pool of mdnsd connections
*/
@@ -154,7 +156,6 @@ typedef struct search_iter {
charbuf[MAXHOSTNAMELEN];
} search_iter;
-static hostent_ctx h_ctx;
static DNSServiceFlags svc_flags = 0;
ns_mtab *nss_module_register(const char *, u_int *, nss_module_unregister_fn *);
@@ -170,11 +171,12 @@ static void _mdns_addrinfo_init(addrinfo
static void _mdns_addrinfo_add_ai(addrinfo_ctx *, struct addrinfo *);
static struct addrinfo *_mdns_addrinfo_done(addrinfo_ctx *);
-static int _mdns_gethtbyname_abs(const char *, int, svc_ref **, short);
+static int _mdns_gethtbyname_abs(struct getnamaddr *, struct hostent_ctx *,
+const char *, int, svc_ref **, short);
static void _mdns_hostent_init(hostent_ctx *, int, int);
static void _mdns_hostent_add_host(hostent_ctx *, const char *);
static void _mdns_hostent_add_addr(hostent_ctx *, const void *, uint16_t);
-static struct hostent *_mdns_hostent_done(hostent_ctx *);
+static int _mdns_hostent_done(struct getnamaddr *, hostent_ctx *);
static void _mdns_addrinfo_cb(DNSServiceRef, DNSServiceFlags,
uint32_t, DNSServiceErrorType, const char *, const struct sockaddr *,
@@ -357,6 +359,7 @@ _mdns_gethtbyaddr(void *cbrv, void *cbda
DNSServiceRef sdRef;
svc_ref *sr;
bool retry = true;
+struct getnamaddr *info = cbrv;
UNUSED(cbdata);
@@ -369,7 +372,7 @@ _mdns_gethtbyaddr(void *cbrv, void *cbda
/* if mcast-only don't bother for non-LinkLocal addrs) */
if (svc_flags kDNSServiceFlagsForceMulticast) {
if ((addr[0] != 169) || (addr[1] != 254)) {
-h_errno = HOST_NOT_FOUND;
+*info-he = HOST_NOT_FOUND;
return NS_NOTFOUND;
}
}
@@ -383,7 +386,7 @@ _mdns_gethtbyaddr(void *cbrv, void *cbda
/* if mcast-only don't bother for non-LinkLocal addrs) */
if (svc_flags kDNSServiceFlagsForceMulticast) {
if ((addr[0] != 0xfe) || ((addr[1] 0xc0) != 0x80)) {
-h_errno = HOST_NOT_FOUND;
+*info-he = HOST_NOT_FOUND;
return NS_NOTFOUND;
}
}
@@ -397,27 +400,28 @@ _mdns_gethtbyaddr(void *cbrv, void *cbda
if (advance 0 qp + advance ep)
qp += advance;
else {
-h_errno = NETDB_INTERNAL;
+*info-he = NETDB_INTERNAL;
return NS_NOTFOUND;
}
}
if (strlcat(qbuf, ip6.arpa, sizeof(qbuf)) = sizeof(qbuf)) {
-h_errno = NETDB_INTERNAL;
+*info-he = NETDB_INTERNAL;
return NS_NOTFOUND;
}
break;
default:
-h_errno = NO_RECOVERY;
+*info-he = NO_RECOVERY;
return NS_UNAVAIL;
}
+hostent_ctx h_ctx;
_mdns_hostent_init(h_ctx, af, addrlen);
_mdns_hostent_add_addr(h_ctx, addr, addrlen);
sr = get_svc_ref();
if (!sr) {
-h_errno = NETDB_INTERNAL;
+*info-he = NETDB_INTERNAL;
return NS_UNAVAIL;
}
@@ -444,7 +448,7 @@ _mdns_gethtbyaddr(void *cbrv, void *cbda
if