FreeBSD Bugzilla – Attachment 145519 Details for
Bug 178052
New port submission: dns/mDNSResponder_nss
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
Shar for the port, with staging support.
mDNSResponder_nss.shar (text/plain), 8.07 KB, created by
Matthieu Volat
on 2014-08-08 12:56:35 UTC
(
hide
)
Description:
Shar for the port, with staging support.
Filename:
MIME Type:
Creator:
Matthieu Volat
Created:
2014-08-08 12:56:35 UTC
Size:
8.07 KB
patch
obsolete
># 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/pkg-plist ># mDNSResponder_nss/pkg-descr ># mDNSResponder_nss/files ># mDNSResponder_nss/files/patch-mDNSPosix__nss_mdns.c ># mDNSResponder_nss/files/nss_mdns_freebsd.c ># mDNSResponder_nss/Makefile ># mDNSResponder_nss/distinfo ># >echo c - mDNSResponder_nss >mkdir -p mDNSResponder_nss > /dev/null 2>&1 >echo x - mDNSResponder_nss/pkg-plist >sed 's/^X//' >mDNSResponder_nss/pkg-plist << '58c811c6c92a205f1ff5b1ae9e5fef5e' >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 >echo x - mDNSResponder_nss/pkg-descr >sed 's/^X//' >mDNSResponder_nss/pkg-descr << '07f8ea0275e014c1f4a148c27143e2e7' >XThis is a nsswitch plugin from Apple's mDNSResponder code, adapted for FreeBSD's >Xnsswitch and libc. >07f8ea0275e014c1f4a148c27143e2e7 >echo c - mDNSResponder_nss/files >mkdir -p mDNSResponder_nss/files > /dev/null 2>&1 >echo x - mDNSResponder_nss/files/patch-mDNSPosix__nss_mdns.c >sed 's/^X//' >mDNSResponder_nss/files/patch-mDNSPosix__nss_mdns.c << '04c37d337133d3147a842456f108671e' >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 >X-#include <nss.h> >X+#if defined __FreeBSD__ >X+# include <nsswitch.h> >X+enum nss_status { >X+ NSS_STATUS_SUCCESS = NS_SUCCESS, >X+ NSS_STATUS_NOTFOUND = NS_NOTFOUND, >X+ NSS_STATUS_UNAVAIL = NS_UNAVAIL, >X+ NSS_STATUS_TRYAGAIN = NS_TRYAGAIN, >X+ NSS_STATUS_RETURN = 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 >X-const char * k_conf_file = "/etc/nss_mdns.conf"; >X+const char * k_conf_file = PREFIX"/etc/nss_mdns.conf"; >X #define CONF_LINE_SIZE 1024 >X >X const char k_comment_char = '#'; >04c37d337133d3147a842456f108671e >echo x - mDNSResponder_nss/files/nss_mdns_freebsd.c >sed 's/^X//' >mDNSResponder_nss/files/nss_mdns_freebsd.c << 'fd1c46f3f4a4f438620948d5ef5dcad0' >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[] = { >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 = sizeof(methods)/sizeof(methods[0]); >X *unreg = 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 = va_arg(ap, const char *); >X af = va_arg(ap, int); >X hptr = va_arg(ap, struct hostent *); >X buffer = va_arg(ap, char *); >X buflen = va_arg(ap, size_t); >X errnop = va_arg(ap, int *); >X h_errnop = va_arg(ap, int *); >X >X s = _nss_mdns_gethostbyname2_r( >X name, af, hptr, buffer, buflen, errnop, h_errnop); >X *(struct hostent **)retval = (s == 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 >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 = va_arg(ap, const void *); >X addrlen = va_arg(ap, socklen_t); >X af = va_arg(ap, int); >X hptr = va_arg(ap, struct hostent *); >X buffer = va_arg(ap, char *); >X buflen = va_arg(ap, size_t); >X errnop = va_arg(ap, int *); >X h_errnop = va_arg(ap, int *); >X >X s = _nss_mdns_gethostbyaddr_r( >X addr, addrlen, af, hptr, buffer, buflen, errnop, h_errnop); >X *(struct hostent **)retval = (s == NS_SUCCESS) ? hptr : NULL; >X >X return s; >X} >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 = _nss_mdns_gethostbyname2_r(name, af, &host, hostbuf, sizeof(hostbuf), >X &err, &herr); >X if (s != NS_SUCCESS) >X return; >X >X for (addrp = 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 = *pai; >X hints.ai_flags = AI_NUMERICHOST; >X hints.ai_family = af; >X if (getaddrinfo(addrstr, NULL, &hints, &res0)) >X continue; >X for (res = res0; res; res = res->ai_next) >X res->ai_flags = pai->ai_flags; >X >X (*aip)->ai_next = res0; >X while ((*aip)->ai_next) >X *aip = (*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 = va_arg(ap, char *); >X ai = va_arg(ap, struct addrinfo *); >X >X memset(&sentinel, 0, sizeof(sentinel)); >X cur = &sentinel; >X >X if ((ai->ai_family == AF_UNSPEC) || (ai->ai_family == AF_INET6)) >X aiforaf(name, AF_INET6, ai, &cur); >X if ((ai->ai_family == AF_UNSPEC) || (ai->ai_family == AF_INET)) >X aiforaf(name, AF_INET, ai, &cur); >X >X if (!sentinel.ai_next) { >X h_errno = HOST_NOT_FOUND; >X return NS_NOTFOUND; >X } >X *((struct addrinfo **)retval) = sentinel.ai_next; >X >X return NS_SUCCESS; >X} >X >fd1c46f3f4a4f438620948d5ef5dcad0 >echo x - mDNSResponder_nss/Makefile >sed 's/^X//' >mDNSResponder_nss/Makefile << '7e3b9888bc2028cc8d4b6de5e5439908' >X# $FreeBSD$ >X >XPORTNAME= mDNSResponder_nss >XPORTVERSION= 544 >XCATEGORIES= dns net >XMASTER_SITES= http://opensource.apple.com/tarballs/mDNSResponder/ >XDISTNAME= ${PORTNAME:S/_nss//}-${PORTVERSION} >X >XMAINTAINER= mazhe@alkumuna.eu >XCOMMENT= Apple mDNS responder - FreeBSD nsswitch module >X >XLICENSE= APACHE20 BSD3CLAUSE >XLICENSE_COMB= dual >X >XLIB_DEPENDS= dns_sd:${PORTSDIR}/net/mDNSResponder >X >XCONFLICTS_INSTALL= dns/nss_mdns >X >XWRKSRC= ${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=c99 -Wall -fPIC \ >X -I. -I${PREFIX}/include -DPREFIX=\"${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}${EXAMPLESDIR} >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 << 'e71e320fe90ee26782adad7d882aface' >XSHA256 (mDNSResponder-544.tar.gz) = c6ad1d53c28d28c0e3689bdf5efd9ce6f5c4c3692e8ad76e5eeb4d0c248929ac >XSIZE (mDNSResponder-544.tar.gz) = 2153326 >e71e320fe90ee26782adad7d882aface >exit >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 178052
:
133579
| 145519