Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 12 Nov 2013 16:40:02 GMT
From:      Matthieu Volat <mazhe@alkumuna.eu>
To:        freebsd-ports-bugs@FreeBSD.org
Subject:   Re: ports/178052: New port submission: dns/mDNSRedponder_nss
Message-ID:  <201311121640.rACGe2MU078443@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR ports/178052; it has been noted by GNATS.

From: Matthieu Volat <mazhe@alkumuna.eu>
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: ports/178052: New port submission: dns/mDNSRedponder_nss
Date: Tue, 12 Nov 2013 17:34:36 +0100

 --Sig_/BApD+tRBgRi.sHg9=Z.TS05
 Content-Type: multipart/mixed; boundary="MP_/HNQr/qGVetD+G7iEwFLt/DL"
 
 --MP_/HNQr/qGVetD+G7iEwFLt/DL
 Content-Type: text/plain; charset=US-ASCII
 Content-Transfer-Encoding: quoted-printable
 Content-Disposition: inline
 
 It seems the wrong file was sent last time, here's another update to
 bump release and properly support staging (thanks to Kimmo Paasiala).
 
 --=20
 Matthieu Volat <mazhe@alkumuna.eu>
 
 --MP_/HNQr/qGVetD+G7iEwFLt/DL
 Content-Type: text/plain
 Content-Transfer-Encoding: quoted-printable
 Content-Disposition: attachment; filename=mDNSResponder_nss.txt
 
 # This is a shell archive.  Save it in a file, remove anything before
 # this line, and then unpack it by entering "sh file".  Note, it may
 # create directories; files and directories will be owned by you and
 # have default permissions.
 #
 # This archive contains:
 #
 #	mDNSResponder_nss
 #	mDNSResponder_nss/files
 #	mDNSResponder_nss/files/nss_mdns_freebsd.c
 #	mDNSResponder_nss/files/patch-mDNSPosix__nss_mdns.c
 #	mDNSResponder_nss/Makefile
 #	mDNSResponder_nss/distinfo
 #	mDNSResponder_nss/pkg-descr
 #	mDNSResponder_nss/pkg-plist
 #
 echo c - mDNSResponder_nss
 mkdir -p mDNSResponder_nss > /dev/null 2>&1
 echo c - mDNSResponder_nss/files
 mkdir -p mDNSResponder_nss/files > /dev/null 2>&1
 echo x - mDNSResponder_nss/files/nss_mdns_freebsd.c
 sed 's/^X//' >mDNSResponder_nss/files/nss_mdns_freebsd.c << 'fd1c46f3f4a4f4=
 38620948d5ef5dcad0'
 X#include <sys/param.h>
 X#include <sys/socket.h>
 X#include <arpa/inet.h>
 X#include <netinet/in.h>
 X#include <netdb.h>
 X#include <nsswitch.h>
 X#include <stdarg.h>
 X#include <stdlib.h>
 X#include <string.h>
 X#include <syslog.h>
 X
 Xextern int _nss_mdns_gethostbyname2_r(const char *, int,
 X		struct hostent *, char *, size_t, int *, int *);
 Xextern int _nss_mdns_gethostbyaddr_r(const void *, socklen_t, int,
 X		struct hostent *, char *, size_t, int *, int *);
 X
 Xstatic NSS_METHOD_PROTOTYPE(__nss_compat_gethostbyname2_r);
 Xstatic NSS_METHOD_PROTOTYPE(__nss_compat_gethostbyaddr_r);
 Xstatic NSS_METHOD_PROTOTYPE(__nss_compat_getaddrinfo);
 X
 Xstatic ns_mtab methods[] =3D {
 X	{ NSDB_HOSTS, "gethostbyname_r", __nss_compat_gethostbyname2_r, NULL },
 X	{ NSDB_HOSTS, "gethostbyname2_r", __nss_compat_gethostbyname2_r, NULL },
 X	{ NSDB_HOSTS, "gethostbyaddr_r", __nss_compat_gethostbyaddr_r, NULL },
 X	{ NSDB_HOSTS, "getaddrinfo", __nss_compat_getaddrinfo, NULL },
 X};
 X
 Xns_mtab *
 Xnss_module_register(const char *source, unsigned int *mtabsize,
 X		nss_module_unregister_fn *unreg)
 X{
 X	*mtabsize =3D sizeof(methods)/sizeof(methods[0]);
 X	*unreg =3D NULL;
 X	return methods;
 X}
 X
 Xstatic int
 X__nss_compat_gethostbyname2_r(void *retval, void *mdata, va_list ap)
 X{
 X	int s;
 X
 X	const char *name;
 X	int af;
 X	struct hostent *hptr;
 X	char *buffer;
 X	size_t buflen;
 X	int *errnop;
 X	int *h_errnop;
 X
 X	name =3D va_arg(ap, const char *);
 X	af =3D va_arg(ap, int);
 X	hptr =3D va_arg(ap, struct hostent *);
 X	buffer =3D va_arg(ap, char *);
 X	buflen =3D va_arg(ap, size_t);
 X	errnop =3D va_arg(ap, int *);
 X	h_errnop =3D va_arg(ap, int *);
 X
 X	s =3D _nss_mdns_gethostbyname2_r(
 X			name, af, hptr, buffer, buflen, errnop, h_errnop);
 X	*(struct hostent **)retval =3D (s =3D=3D NS_SUCCESS) ? hptr : NULL;
 X
 X	return s;
 X}
 X
 Xstatic int
 X__nss_compat_gethostbyaddr_r(void *retval, void *mdata, va_list ap)
 X{
 X	int s;
 X=09
 X	const void *addr;
 X	socklen_t addrlen;
 X	int af;
 X	struct hostent *hptr;
 X	char *buffer;
 X	size_t buflen;
 X	int *errnop;
 X	int *h_errnop;
 X
 X    addr =3D va_arg(ap, const void *);
 X    addrlen =3D va_arg(ap, socklen_t);
 X    af =3D va_arg(ap, int);
 X    hptr =3D va_arg(ap, struct hostent *);
 X    buffer =3D va_arg(ap, char *);
 X    buflen =3D va_arg(ap, size_t);
 X    errnop =3D va_arg(ap, int *);
 X    h_errnop =3D va_arg(ap, int *);
 X
 X	s =3D _nss_mdns_gethostbyaddr_r(
 X			addr, addrlen, af, hptr, buffer, buflen, errnop, h_errnop);
 X	*(struct hostent **)retval =3D (s =3D=3D NS_SUCCESS) ? hptr : NULL;
 X
 X	return s;
 X}=20
 X
 Xstatic void
 Xaiforaf(const char *name, int af, struct addrinfo *pai, struct addrinfo **=
 aip)
 X{
 X	int s;
 X	struct hostent host;
 X	char hostbuf[8*1024];
 X	int err, herr;
 X	char **addrp;
 X	char addrstr[INET6_ADDRSTRLEN];
 X	struct addrinfo hints, *res0, *res;
 X
 X	s =3D _nss_mdns_gethostbyname2_r(name, af, &host, hostbuf, sizeof(hostbuf=
 ),
 X			&err, &herr);
 X	if (s !=3D NS_SUCCESS)
 X		return;
 X
 X	for (addrp =3D host.h_addr_list; *addrp; addrp++) {
 X		/* XXX this sucks, but get_ai is not public */
 X		if (!inet_ntop(host.h_addrtype, *addrp,
 X			       addrstr, sizeof(addrstr)))
 X			continue;
 X		hints =3D *pai;
 X		hints.ai_flags =3D AI_NUMERICHOST;
 X		hints.ai_family =3D af;
 X		if (getaddrinfo(addrstr, NULL, &hints, &res0))
 X			continue;
 X		for (res =3D res0; res; res =3D res->ai_next)
 X			res->ai_flags =3D pai->ai_flags;
 X
 X		(*aip)->ai_next =3D res0;
 X		while ((*aip)->ai_next)
 X			*aip =3D (*aip)->ai_next;
 X	}
 X}
 X
 Xstatic int
 X__nss_compat_getaddrinfo(void *retval, void *mdata, va_list ap)
 X{
 X	struct addrinfo sentinel, *cur;
 X	const char *name;
 X	struct addrinfo *ai;
 X
 X	name  =3D va_arg(ap, char *);
 X	ai =3D va_arg(ap, struct addrinfo *);
 X
 X	memset(&sentinel, 0, sizeof(sentinel));
 X	cur =3D &sentinel;
 X
 X	if ((ai->ai_family =3D=3D AF_UNSPEC) || (ai->ai_family =3D=3D AF_INET6))
 X		aiforaf(name, AF_INET6, ai, &cur);
 X	if ((ai->ai_family =3D=3D AF_UNSPEC) || (ai->ai_family =3D=3D AF_INET))
 X		aiforaf(name, AF_INET, ai, &cur);
 X
 X	if (!sentinel.ai_next) {
 X		h_errno =3D HOST_NOT_FOUND;
 X		return NS_NOTFOUND;
 X	}
 X	*((struct addrinfo **)retval) =3D sentinel.ai_next;
 X
 X	return NS_SUCCESS;
 X}
 X
 fd1c46f3f4a4f438620948d5ef5dcad0
 echo x - mDNSResponder_nss/files/patch-mDNSPosix__nss_mdns.c
 sed 's/^X//' >mDNSResponder_nss/files/patch-mDNSPosix__nss_mdns.c << '04c37=
 d337133d3147a842456f108671e'
 X--- ./mDNSPosix/nss_mdns.c.orig	2012-04-15 08:07:19.000000000 +0200
 X+++ ./mDNSPosix/nss_mdns.c	2013-11-05 11:00:14.000000000 +0100
 X@@ -379,7 +379,18 @@
 X #define ENTNAME  hostent
 X #define DATABASE "hosts"
 X=20
 X-#include <nss.h>
 X+#if defined __FreeBSD__
 X+# include <nsswitch.h>
 X+enum nss_status {
 X+  NSS_STATUS_SUCCESS =3D NS_SUCCESS,
 X+  NSS_STATUS_NOTFOUND =3D NS_NOTFOUND,
 X+  NSS_STATUS_UNAVAIL =3D NS_UNAVAIL,
 X+  NSS_STATUS_TRYAGAIN =3D NS_TRYAGAIN,
 X+  NSS_STATUS_RETURN =3D NS_RETURN
 X+};
 X+#elif defined __Linux__
 X+# include <nss.h>
 X+#endif
 X // For nss_status
 X #include <netdb.h>
 X // For hostent
 X@@ -1684,7 +1695,7 @@
 X //----------
 X // Types and Constants
 X=20
 X-const char * k_conf_file =3D "/etc/nss_mdns.conf";
 X+const char * k_conf_file =3D PREFIX"/etc/nss_mdns.conf";
 X #define CONF_LINE_SIZE 1024
 X=20
 X const char k_comment_char =3D '#';
 04c37d337133d3147a842456f108671e
 echo x - mDNSResponder_nss/Makefile
 sed 's/^X//' >mDNSResponder_nss/Makefile << '7e3b9888bc2028cc8d4b6de5e54399=
 08'
 X# $FreeBSD$
 X
 XPORTNAME=3D	mDNSResponder_nss
 XPORTVERSION=3D	541
 XCATEGORIES=3D	dns net
 XMASTER_SITES=3D	http://opensource.apple.com/tarballs/mDNSResponder/
 XDISTNAME=3D	${PORTNAME:S/_nss//}-${PORTVERSION}
 X
 XMAINTAINER=3D	mazhe@alkumuna.eu
 XCOMMENT=3D	Apple\'s mDNS responder - FreeBSD nsswitch module
 X
 XLICENSE=3D    AL2 BSD
 XLICENSE_COMB=3D   dual
 X
 XLIB_DEPENDS=3D	dns_sd:${PORTSDIR}/net/mDNSResponder
 X
 XCONFLICTS_INSTALL=3D dns/nss_mdns
 X
 XWRKSRC=3D		${WRKDIR}/${PORTNAME:S/_nss//}-${PORTVERSION}
 X
 Xpost-extract:
 X	@${CP} ${FILESDIR}/nss_mdns_freebsd.c ${WRKSRC}/mDNSPosix
 X
 Xdo-build:
 X	(cd ${WRKSRC}/mDNSPosix && ${CC} ${CFLAGS} -c -std=3Dc99 -Wall -fPIC \
 X		-I. -I${PREFIX}/include -DPREFIX=3D\"${PREFIX}\" \
 X		nss_mdns.c nss_mdns_freebsd.c)
 X	(cd ${WRKSRC}/mDNSPosix && ${LD} -shared nss_mdns.o nss_mdns_freebsd.o \
 X		-o nss_mdns.so.1 -L${PREFIX}/lib -R${PREFIX}/lib -ldns_sd)
 X
 Xdo-install:
 X	${INSTALL_LIB} ${WRKSRC}/mDNSPosix/nss_mdns.so.1 ${STAGEDIR}${PREFIX}/lib
 X	${LN} -sf ${PREFIX}/lib/nss_mdns.so.1 ${STAGEDIR}${PREFIX}/lib/nss_mdns.so
 X	${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
 X	${INSTALL_DATA} ${WRKSRC}/mDNSPosix/nss_mdns.conf ${STAGEDIR}${EXAMPLESDI=
 R}
 X	${INSTALL_MAN} ${WRKSRC}/mDNSPosix/nss_mdns.conf.5 ${STAGEDIR}${MANPREFIX=
 }/man/man5
 X
 Xpost-install:
 X	${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/nss_mdns.so.1
 X
 X.include <bsd.port.mk>
 7e3b9888bc2028cc8d4b6de5e5439908
 echo x - mDNSResponder_nss/distinfo
 sed 's/^X//' >mDNSResponder_nss/distinfo << 'e71e320fe90ee26782adad7d882afa=
 ce'
 XSHA256 (mDNSResponder-541.tar.gz) =3D b768999280756325b6bacd78acaff00d2bb0=
 6136450b727c6b0eb441c1ff2e30
 XSIZE (mDNSResponder-541.tar.gz) =3D 2153009
 e71e320fe90ee26782adad7d882aface
 echo x - mDNSResponder_nss/pkg-descr
 sed 's/^X//' >mDNSResponder_nss/pkg-descr << '07f8ea0275e014c1f4a148c27143e=
 2e7'
 XThis is a nsswitch plugin from Apple's mDNSResponder code, adapted for Fre=
 eBSD's
 Xnsswitch and libc.
 07f8ea0275e014c1f4a148c27143e2e7
 echo x - mDNSResponder_nss/pkg-plist
 sed 's/^X//' >mDNSResponder_nss/pkg-plist << '58c811c6c92a205f1ff5b1ae9e5fe=
 f5e'
 Xlib/nss_mdns.so
 Xlib/nss_mdns.so.1
 Xman/man5/nss_mdns.conf.5.gz
 X%%EXAMPLESDIR%%/nss_mdns.conf
 X@dirrm %%EXAMPLESDIR%%
 58c811c6c92a205f1ff5b1ae9e5fef5e
 exit
 
 
 --MP_/HNQr/qGVetD+G7iEwFLt/DL--
 
 --Sig_/BApD+tRBgRi.sHg9=Z.TS05
 Content-Type: application/pgp-signature; name=signature.asc
 Content-Disposition: attachment; filename=signature.asc
 
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.22 (FreeBSD)
 
 iEYEARECAAYFAlKCWKAACgkQ+ENDeYKZi35hwwCfZheC/OskqdOiong+K77q1FXy
 kbwAnj+QR19KEHMGQ8QO0+4xOdaHqtM6
 =sfxQ
 -----END PGP SIGNATURE-----
 
 --Sig_/BApD+tRBgRi.sHg9=Z.TS05--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201311121640.rACGe2MU078443>