Константа RES_USE_INET6
Константа RES_USE_INET6
Поскольку функция gethostbyname не имеет аргумента для указания нужного семейства адресов (подобного hints.ai_family для getaddrinfo), в первом варианте API использовалась константа RES_USE_INET6, которая должна была добавляться к флагам распознавателя посредством внутреннего интерфейса. Этот API был недостаточно переносимым, поскольку системам, использовавшим альтернативные внутренние интерфейсы распознавателя, приходилось имитировать интерфейс BIND.
Включение RES_USE_INET6 приводило к тому, что функция gethostbyname начинала поиск с записей AAAA, а записи А возвращались только в случае отсутствия первых. Поскольку в структуре hostent есть только одно поле длины адреса, функция gethostbyname могла возвращать адреса только одного типа (либо IPv6, либо IPv4).
Кроме того, включение RES_USE_INET6 приводило к тому, что функция gethostbyname2 начинала возвращать адреса IPv4 в преобразованном к IPv6 виде.
Данный текст является ознакомительным фрагментом.