Eles são certamente sensíveis a maiúsculas e minúsculas nas bibliotecas do resolvedor glibc. Observe o uso de strncmp
(comparação de maiúsculas e minúsculas) em vez de strncasecmp
(comparação de maiúsculas e minúsculas) na função MATCH dentro de glibc res_init.c .
Este código é responsável por ler + analisar o arquivo /etc/resolv.conf
.
#define MATCH(line, name) \
(!strncmp(line, name, sizeof(name) - 1) && \
(line[sizeof(name) - 1] == ' ' || \
line[sizeof(name) - 1] == '\t'))
if ((fp = fopen(_PATH_RESCONF, "rce")) != NULL) {
/* No threads use this stream. */
__fsetlocking (fp, FSETLOCKING_BYCALLER);
/* read the config file */
while (fgets_unlocked(buf, sizeof(buf), fp) != NULL) {
/* skip comments */
if (*buf == ';' || *buf == '#')
continue;
/* read default domain name */
if (MATCH(buf, "domain")) {
if (haveenv) /* skip if have from environ */
continue;
cp = buf + sizeof("domain") - 1;
Além disso, um exemplo rápido mostra como a pesquisa é interrompida com NAMESERVER em vez de com o servidor de nomes.
# cat /etc/resolv.conf
options timeout:2 attempts:5
; generated by /sbin/dhclient-script
search eu-west-1.compute.internal
nameserver 172.31.0.2
# getent hosts www.google.com
2a00:1450:400b:802::2004 www.google.com
# sed -i 's/nameserver/NAMESERVER/' /etc/resolv.conf
# getent hosts www.google.com
#