Do lookups ignoring case.

This commit is contained in:
Ulrich Drepper 1998-01-30 17:16:16 +00:00
parent 0602dc71bc
commit 284defebd5
3 changed files with 17 additions and 5 deletions

View 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, ,,

View 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, ,,

View 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