ports/112353: [PATCH] dns/nss_mdns: [SUMMARIZE CHANGES]
Sergio Lenzi
lenzi at k1.com.br
Wed May 2 14:00:39 UTC 2007
>Number: 112353
>Category: ports
>Synopsis: [PATCH] dns/nss_mdns: [SUMMARIZE CHANGES]
>Confidential: no
>Severity: serious
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: update
>Submitter-Id: current-users
>Arrival-Date: Wed May 02 14:00:10 GMT 2007
>Closed-Date:
>Last-Modified:
>Originator: Sergio Lenzi
>Release: FreeBSD 6.2-RELEASE i386
>Organization:
k1 sistemas
>Environment:
System: FreeBSD k1.com.br 6.2-RELEASE FreeBSD 6.2-RELEASE #1: Thu Apr 5 17:05:10 BRT
>Description:
[DESCRIBE CHANGES]
The functions gethostbyname and gethostbyaddr did not have support in
bsdnss.c
I added the functions in the module so now ping, telnet ... works
on the domain .local in my network.
I could not the the function gethostbyaddr but I think it will work...
in my network (12 machines) they work ok with libc.so.6.
Added file(s):
Port maintainer (bms at FreeBSD.org) is cc'd.
Generated with FreeBSD Port Tools 0.77
>How-To-Repeat:
>Fix:
--- nss_mdns-0.9_3.patch begins here ---
diff -ruN --exclude=CVS /usr/ports/dns/nss_mdns/Makefile /fileserver/ports/dns/nss_mdns/Makefile
--- /usr/ports/dns/nss_mdns/Makefile Thu Apr 12 07:43:15 2007
+++ /fileserver/ports/dns/nss_mdns/Makefile Wed May 2 01:27:44 2007
@@ -7,7 +7,7 @@
PORTNAME= nss_mdns
PORTVERSION= 0.9
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= dns ipv6
MASTER_SITES= http://0pointer.de/lennart/projects/nss-mdns/
DISTNAME= nss-mdns-${PORTVERSION}
diff -ruN --exclude=CVS /usr/ports/dns/nss_mdns/files/patch-src-nss.c /fileserver/ports/dns/nss_mdns/files/patch-src-nss.c
--- /usr/ports/dns/nss_mdns/files/patch-src-nss.c Wed Dec 31 21:00:00 1969
+++ /fileserver/ports/dns/nss_mdns/files/patch-src-nss.c Mon Apr 30 14:04:15 2007
@@ -0,0 +1,10 @@
+--- src/nss.c.orig Mon Apr 30 14:03:07 2007
++++ src/nss.c Mon Apr 30 14:02:21 2007
+@@ -35,6 +35,7 @@
+
+ #include "query.h"
+
++#define ENABLE_AVAHI 1
+ #ifdef ENABLE_AVAHI
+ #include "avahi.h"
+ #endif
diff -ruN --exclude=CVS /usr/ports/dns/nss_mdns/files/patch-src__bsdnss.c /fileserver/ports/dns/nss_mdns/files/patch-src__bsdnss.c
--- /usr/ports/dns/nss_mdns/files/patch-src__bsdnss.c Thu Apr 12 07:43:15 2007
+++ /fileserver/ports/dns/nss_mdns/files/patch-src__bsdnss.c Wed May 2 01:55:03 2007
@@ -1,6 +1,6 @@
---- src/bsdnss.c.orig Tue Apr 10 12:16:00 2007
-+++ src/bsdnss.c Tue Apr 10 12:21:42 2007
-@@ -0,0 +1,428 @@
+--- src/bsdnss.c.orig Mon Apr 30 14:05:10 2007
++++ src/bsdnss.c Wed May 2 01:22:26 2007
+@@ -0,0 +1,474 @@
+/* rcs tags go here when pushed upstream */
+/* Original author: Bruce M. Simpson <bms at FreeBSD.org> */
+
@@ -43,6 +43,8 @@
+#include <netinet/in.h>
+#include <netdb.h>
+
++#include <syslog.h>
++
+#include "config.h"
+
+#ifdef MDNS_MINIMAL
@@ -90,6 +92,8 @@
+ size_t buflen, int *errnop, int *h_errnop);
+
+typedef enum nss_status (*_bsd_nsstub_fn_t)(const char *, struct hostent *, char *, size_t, int *, int *);
++static int __nss_bsdcompat_gethostbyname(void *retval, void *mdata __unused, va_list ap);
++static int __nss_bsdcompat_gethostbyaddr(void *retval, void *mdata __unused, va_list ap);
+
+/* XXX: FreeBSD 5.x is not supported. */
+static NSS_METHOD_PROTOTYPE(__nss_bsdcompat_getaddrinfo);
@@ -105,6 +109,8 @@
+ { NSDB_HOSTS, "gethostbyname2_r", __nss_bsdcompat_gethostbyname2_r, NULL },
+ { NSDB_HOSTS, "ghbyaddr", __nss_bsdcompat_ghbyaddr, NULL },
+ { NSDB_HOSTS, "ghbyname", __nss_bsdcompat_ghbyname, NULL },
++ { NSDB_HOSTS, "gethostbyname", __nss_bsdcompat_gethostbyname, NULL },
++ { NSDB_HOSTS, "gethostbyaddr", __nss_bsdcompat_gethostbyaddr, NULL },
+};
+
+ns_mtab *
@@ -428,4 +434,45 @@
+ return (status);
+}
+
++static int __nss_bsdcompat_gethostbyname(void *retval, void *mdata __unused, va_list ap) {
++ char buffer[1024];
++ const char *name;
++ int _errno;
++ int _h_errno;
++ struct hostent *hp;
++ enum nss_status status;
++ int af;
++
++ name = va_arg(ap, const char *);
++ if (name == NULL)
++ return (NS_UNAVAIL);
++ af=va_arg(ap,int);
++ hp=va_arg(ap,struct hostent *);
++ status = _nss_mdns_gethostbyname_r(name, hp, buffer,sizeof(buffer), &_errno, &_h_errno);
++ status = __nss_compat_result(status, _errno);
++ return (status);
++}
++
++static int __nss_bsdcompat_gethostbyaddr(void *retval, void *mdata __unused, va_list ap) {
++ char buffer[1024];
++ const char *name;
++ int _errno;
++ int _h_errno;
++ struct hostent *hp;
++ enum nss_status status;
++ struct in_addr *addr;
++ int af;
++ int len;
++
++ addr = va_arg(ap, struct in_addr*);
++ if (!addr)
++ return (NS_UNAVAIL);
++ len = va_arg(ap,int);
++ af = va_arg(ap,int);
++ hp=va_arg(ap,struct hostent *);
++ status=_nss_mdns_gethostbyaddr_r (addr,len, af,hp,buffer, sizeof(buffer),&_errno,&_h_errno);
++ return status;
++}
++
+#endif /* !NO_BUILD_BSD_NSS */
++
--- nss_mdns-0.9_3.patch ends here ---
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list