]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Do lookups ignoring case.
authorUlrich Drepper <drepper@redhat.com>
Fri, 30 Jan 1998 17:16:16 +0000 (17:16 +0000)
committerUlrich Drepper <drepper@redhat.com>
Fri, 30 Jan 1998 17:16:16 +0000 (17:16 +0000)
nss/nss_files/files-hosts.c
nss/nss_files/files-network.c
nss/nss_files/files-parse.c

index d6c41525072c2b4f6a93f627018febe97e45724c..2379919f4977623b2f3effb6510f2bd23abc6268 100644 (file)
@@ -1,5 +1,5 @@
 /* Hosts file parser in nss_files module.
-   Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -89,14 +89,14 @@ DB_LOOKUP (hostbyname, ,,
             if (result->h_addrtype != ((_res.options & RES_USE_INET6)
                                        ? AF_INET6 : AF_INET))
               continue;
-            LOOKUP_NAME (h_name, h_aliases)
+            LOOKUP_NAME_CASE (h_name, h_aliases)
           }, const char *name)
 
 DB_LOOKUP (hostbyname2, ,,
           {
             if (result->h_addrtype != af)
               continue;
-            LOOKUP_NAME (h_name, h_aliases)
+            LOOKUP_NAME_CASE (h_name, h_aliases)
           }, const char *name, int af)
 
 DB_LOOKUP (hostbyaddr, ,,
index 081ac1a443914fb15ea47dc66bcf99736ad9d1ea..8bf9c04adfb07d4f507c1591881ad751b8db3cea 100644 (file)
@@ -45,7 +45,7 @@ LINE_PARSER
 #include "files-XXX.c"
 
 DB_LOOKUP (netbyname, ,,
-          LOOKUP_NAME (n_name, n_aliases),
+          LOOKUP_NAME_CASE (n_name, n_aliases),
           const char *name)
 
 DB_LOOKUP (netbyaddr, ,,
index acf673da9005f00b1e5b01fc896db3a158d50f62..2903c2ba89887e8c284830e649586c7061550eb8 100644 (file)
@@ -1,5 +1,5 @@
 /* Common code for file-based database parsers in nss_files module.
-   Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -232,6 +232,18 @@ parse_list (char *line, struct parser_data *data, size_t datalen)
     break;                                                                   \
 }
 
+#define LOOKUP_NAME_CASE(nameelt, aliaselt)                                  \
+{                                                                            \
+  char **ap;                                                                 \
+  if (! __strcasecmp (name, result->nameelt))                                \
+    break;                                                                   \
+  for (ap = result->aliaselt; *ap; ++ap)                                     \
+    if (! __strcasecmp (name, *ap))                                          \
+      break;                                                                 \
+  if (*ap)                                                                   \
+    break;                                                                   \
+}
+
 
 /* This is defined by db-*.c to include "../nss_db/db-XXX.c" instead.  */
 #ifndef GENERIC