Date: Thu, 9 Mar 2000 16:17:45 -0600 From: Jonathan Lemon <jlemon@flugsvamp.com> To: bugs@freebsd.org Cc: jordan@freebsd.org Subject: Re: kern/17290: getaddrinfo() does not seem to honor NIS Message-ID: <20000309161745.C14209@prism.flugsvamp.com>
next in thread | raw e-mail | index | archive | help
Here's a quick patch to allow NIS for IPV4 addresses. I've explicitly
filtered out IPV6 addresses, since it's not likely that the NIS maps
`hosts.byname' and `hosts.byaddr' are in IPV6 format.
This should be in RELEASE, otherwise NIS support will be broken.
--
Jonathan
Index: name6.c
===================================================================
RCS file: /ncvs/src/lib/libc/net/name6.c,v
retrieving revision 1.5
diff -u -r1.5 name6.c
--- name6.c 2000/02/10 02:59:50 1.5
+++ name6.c 2000/03/09 22:08:54
@@ -116,6 +116,8 @@
static struct hostent *_files_ghbyaddr(const void *addr, int addrlen, int af, int *errp);
static void _files_shent(int stayopen);
static void _files_ehent(void);
+static struct hostent *_nis_ghbyname(const char *name, int af, int *errp);
+static struct hostent *_nis_ghbyaddr(const void *addr, int addrlen, int af, int *errp);
static struct hostent *_dns_ghbyname(const char *name, int af, int *errp);
static struct hostent *_dns_ghbyaddr(const void *addr, int addrlen, int af, int *errp);
static void _dns_shent(int stayopen);
@@ -186,6 +188,11 @@
_hostconf[n].byaddr = _dns_ghbyaddr;
n++;
}
+ else if (strcmp(p, "nis") == 0) {
+ _hostconf[n].byname = _nis_ghbyname;
+ _hostconf[n].byaddr = _nis_ghbyaddr;
+ n++;
+ }
#ifdef ICMPNL
else if (strcmp(p, "icmp") == 0) {
_hostconf[n].byname = NULL;
@@ -823,6 +830,27 @@
}
fclose(fp);
return hp;
+}
+
+/*
+ * NIS
+ *
+ * XXX actually a hack, these are INET4 specific.
+ */
+static struct hostent *
+_nis_ghbyname(const char *name, int af, int *errp)
+{
+ if (af == AF_INET6)
+ return (NULL);
+ return (_gethostbynisname(name, af));
+}
+
+static struct hostent *
+_nis_ghbyaddr(const void *addr, int addrlen, int af, int *errp)
+{
+ if (af == AF_INET6)
+ return (NULL);
+ return (_gethostbynisaddr(addr, addrlen, af));
}
#ifdef DEBUG
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000309161745.C14209>
