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