Обливаясь старым кодом сетевой утилиты, я нашел res_init()
вызов перед getipnodebyname()
:
void getAddresses(string hostname, set<string> &addresses) {
int error = 0;
res_init();
struct hostent *host = getipnodebyname(hostname.c_str(), AF_INET, AI_DEFAULT, &error);
insertHostAddresses(host, addresses);
freehostent(host);
}
Никогда раньше не сталкиваясь с этим вызовом, я посмотрел справочную страницу:
https://linux.die.net/man/3/res_init
Однако это не совсем помогло мне понять, когда необходимо выполнить этот вызов.
Я так понимаю, это для предварительной загрузки кэша? Немного объяснения помогло бы мне.
Я должен отметить - текущий вызов getaddrinfo , кажется, не требует этого?