aboutsummaryrefslogtreecommitdiff
path: root/nss
diff options
context:
space:
mode:
Diffstat (limited to 'nss')
-rw-r--r--nss/digits_dots.c20
-rw-r--r--nss/test-netdb.c5
2 files changed, 21 insertions, 4 deletions
diff --git a/nss/digits_dots.c b/nss/digits_dots.c
index 944b328..9a8d499 100644
--- a/nss/digits_dots.c
+++ b/nss/digits_dots.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by H.J. Lu <hjl@gnu.ai.mit.edu>, 1997.
@@ -98,13 +98,27 @@
{
if (!*cp)
{
- if (*--cp == '.') break;
+ int not_ok;
+
+ if (*--cp == '.')
+ break;
/* All-numeric, no dot at the end. Fake up a hostent as if
we'd actually done a lookup. What if someone types
255.255.255.255? The test below will succeed
spuriously... ??? */
- if (inet_pton (af, name, host_addr) <= 0)
+ switch (af)
+ {
+ case AF_INET:
+ not_ok = inet_aton (name, (struct in_addr *) host_addr);
+ break;
+ case AF_INET6:
+ not_ok = (inet_pton (af, name, host_addr) <= 0);
+ break;
+ default:
+ assert (! "There should be no other `af' value");
+ }
+ if (not_ok)
{
__set_h_errno (HOST_NOT_FOUND);
#ifndef HAVE_LOOKUP_BUFFER
diff --git a/nss/test-netdb.c b/nss/test-netdb.c
index 7f1a767..358d072 100644
--- a/nss/test-netdb.c
+++ b/nss/test-netdb.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@arthur.rhein-neckar.de>, 1998.
@@ -167,6 +167,9 @@ test_hosts (void)
hptr1 = gethostbyname ("127.0.0.1");
output_hostent ("gethostbyname (\"127.0.0.1\")", hptr1);
+ hptr1 = gethostbyname ("10.1234");
+ output_hostent ("gethostbyname (\"10.1234\")", hptr1);
+
hptr1 = gethostbyname2 ("localhost", AF_INET);
output_hostent ("gethostbyname2 (\"localhost\", AF_INET)", hptr1);