обработка Голанга localhost - PullRequest
1 голос
/ 08 июля 2019

У меня есть система Alpine Linux, которая использует musl libc и поэтому не имеет /etc/nsswitch.conf.

Согласно tcpdump в этой системе, net.LookupIP("localhost") фактически выполняет запрос для localhost.a.b.c, где a.b.c берется из domain a.b.c в /etc/resolv.conf. Но если я добавлю /etc/nsswitch.conf с hosts: files dns, он будет корректно выглядеть localhost с /etc/hosts.

Насколько я могу судить, ни одна реализация libc не пытается добавить домен к localhost при поиске в DNS. Итак (а) есть какая-то веская причина, по которой это сделано таким образом, или это ошибка? и (b) есть ли способ обойти это без добавления nsswitch.conf и при этом используя только имя localhost?

Редактировать Подробнее:

ldd ./dnstest
    /lib/ld-musl-armhf.so.1 (0x76f2c000)
    libc.so => /lib/ld-musl-armhf.so.1 (0x76f2c000)

Так что да, есть зависимость от libc.so. Я пробовал это с CGO_ENABLED=1 и с CGO_ENABLED=0 в командной строке сборки тоже.

...