summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkstailey <>1997-04-03 02:15:16 +0000
committerkstailey <>1997-04-03 02:15:16 +0000
commitccb1db54d45b97082406e2af284bcc19f4a36b15 (patch)
treeab83f96f56681e13f05991e6e635a497e34f18cf
parent0a3e53c40ac2db1546db9899430e0b0468dbf3fb (diff)
downloadopenbsd-ccb1db54d45b97082406e2af284bcc19f4a36b15.tar.gz
openbsd-ccb1db54d45b97082406e2af284bcc19f4a36b15.tar.bz2
openbsd-ccb1db54d45b97082406e2af284bcc19f4a36b15.zip
a start a making getnetbyaddr() respect "lookup" keyword in resolv.conf
-rw-r--r--src/lib/libc/net/getnetnamadr.c26
1 files changed, 24 insertions, 2 deletions
diff --git a/src/lib/libc/net/getnetnamadr.c b/src/lib/libc/net/getnetnamadr.c
index cc6ccc4275..7a5ff39cbb 100644
--- a/src/lib/libc/net/getnetnamadr.c
+++ b/src/lib/libc/net/getnetnamadr.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: getnetnamadr.c,v 1.1 1997/03/13 19:07:27 downsj Exp $ */ 1/* $OpenBSD: getnetnamadr.c,v 1.2 1997/04/03 02:15:16 kstailey Exp $ */
2 2
3/* Copyright (c) 1993 Carlos Leandro and Rui Salgueiro 3/* Copyright (c) 1993 Carlos Leandro and Rui Salgueiro
4 * Dep. Matematica Universidade de Coimbra, Portugal, Europe 4 * Dep. Matematica Universidade de Coimbra, Portugal, Europe
@@ -46,7 +46,7 @@ static char sccsid[] = "@(#)getnetbyaddr.c 8.1 (Berkeley) 6/4/93";
46static char sccsid_[] = "from getnetnamadr.c 1.4 (Coimbra) 93/06/03"; 46static char sccsid_[] = "from getnetnamadr.c 1.4 (Coimbra) 93/06/03";
47static char rcsid[] = "$From: getnetnamadr.c,v 8.7 1996/08/05 08:31:35 vixie Exp $"; 47static char rcsid[] = "$From: getnetnamadr.c,v 8.7 1996/08/05 08:31:35 vixie Exp $";
48#else 48#else
49static char rcsid[] = "$OpenBSD: getnetnamadr.c,v 1.1 1997/03/13 19:07:27 downsj Exp $"; 49static char rcsid[] = "$OpenBSD: getnetnamadr.c,v 1.2 1997/04/03 02:15:16 kstailey Exp $";
50#endif 50#endif
51#endif /* LIBC_SCCS and not lint */ 51#endif /* LIBC_SCCS and not lint */
52 52
@@ -214,10 +214,32 @@ getnetbyaddr(net, net_type)
214 char qbuf[MAXDNAME]; 214 char qbuf[MAXDNAME];
215 unsigned long net2; 215 unsigned long net2;
216 struct netent *net_entry; 216 struct netent *net_entry;
217 char lookups[MAXDNSLUS];
218 int i;
217 219
218 if (net_type != AF_INET) 220 if (net_type != AF_INET)
219 return (_getnetbyaddr(net, net_type)); 221 return (_getnetbyaddr(net, net_type));
220 222
223 bcopy(_res.lookups, lookups, sizeof lookups);
224 if (lookups[0] == '\0')
225 strncpy(lookups, "bf", sizeof lookups);
226
227 for (i = 0; i < MAXDNSLUS && lookups[i]; i++) {
228 switch (lookups[i]) {
229#if 0 /* def YP */
230 case 'y':
231 /* YP only supports AF_INET. */
232 if (af == AF_INET)
233 hp = _yp_gethtbyaddr(addr);
234 break;
235#endif
236 case 'b':
237 break;
238 case 'f':
239 return (_getnetbyaddr(net, net_type));
240 }
241 }
242
221 for (nn = 4, net2 = net; net2; net2 >>= 8) 243 for (nn = 4, net2 = net; net2; net2 >>= 8)
222 netbr[--nn] = net2 & 0xff; 244 netbr[--nn] = net2 & 0xff;
223 switch (nn) { 245 switch (nn) {