res_init()

Инициализировать подпрограммы распознавания доменных имен в Интернете

Прототип:

#include <sys/types.h>
#include <netinet/in.h>
#include <arpa/nameser.h>
#include <resolv.h>
int res_init( void );

Библиотека:

libsocket

Описание:

Процедуры преобразователя используются для создания, отправки и интерпретации запросов и ответов с серверами доменных имен в Интернете.

Процедура res_init() считывает файл конфигурации преобразователя (если таковой существует; см. /etc/resolv.conf в Справочнике по Утилитам) чтобы получить имя домена по умолчанию, список поиска и Интернет-адрес локальных серверов имен. Если сервер не настроен, выполняется попытка на хосте, на котором запущен преобразователь. Если иное не указано в файле конфигурации, текущее доменное имя определяется именем хоста; имя домена может быть переопределено переменной окружения LOCALDOMAIN. Инициализация обычно происходит при первом вызове одной из процедур преобразователя.

Конфигурация преобразователя

Информация о глобальной конфигурации и состоянии, используемая этими процедурами, хранится в поле __res_state структуры _res, определенной в <resolv.h>. Поскольку большинство значений уже установлены по умолчанию, можно их игнорировать.

Поле _res.options - это простая битовая маска, которая содержит побитовое ИЛИ из включенных опций. Опции определены в <resolv.h>:

RES_DEBUG
Выводить отладочные сообщения.
RES_DEFNAMES
Если установлена эта опция, res_search() добавляет имя домена по умолчанию к однокомпонентным именам (тем, которые не содержат точки). Эта опция включена по умолчанию.
RES_DNSRCH
Если установлена эта опция, res_search() ищет имена хостов в текущем домене и в родительских доменах. Это используется стандартной процедурой поиска хоста gethostbyname(). Эта опция включена по умолчанию.
RES_INIT
Истинно, если инициализируются начальный адрес сервера имен и имя домена по умолчанию (например, был вызван res_init()).
RES_RECURSE
Установить бит рекурсии в запросах. Эта опция включена по умолчанию. Обратите внимание, что res_send() не выполняет итеративные запросы - она ожидает, что сервер имен будет обрабатывать рекурсию.
RES_STAYOPEN
Используется с RES_USEVC, чтобы поддерживать TCP-соединение открытым между запросами. Это может быть полезно в программах, которые регулярно выполняют множество запросов. Рекомнедуется использование UDP.
RES_USEVC
Вместо датаграмм UDP использовать для запросов TCP-соединения.

Возвращаемое значение:

0
Успешное завершение.
≠0
Возникла ошибка.

Коды ошибок:

См. herror().

Файлы:

/etc/resolv.conf
Файл конфигурации преобразователя.

Переменные окружения:

LOCALDOMAIN
Если установлена, то LOCALDOMAIN содержит доменное имя, которое переопределяет текущее доменное имя.

Классификация:

Unix

Безопасность использования
Точка остановки потока
Да
Обработчик прерываний
Нет
Обработчик сигналов
Нет
В потоке
Нет

Тематические ссылки:

dn_comp(), dn_expand(), gethostbyname(), res_mkquery(), res_query(), res_querydomain(), res_search(), res_send()

hostname, /etc/resolv.conf в Справочнике по Утилитам

Основано на RFC 974, RFC 1032, RFC 1033, RFC 1034, RFC 1035




Предыдущий раздел: Описание API сетевой библиотеки