Перечисление доменов

DNSServiceEnumerateDomains функция находит домены, рекомендующиеся для регистрации и просмотра. Каждый раз, когда Ваш обратный вызов вызывают, информация об одном домене предоставлена, вместе с флагами, указывающими, добавить ли или удалить домен из Вашего списка доменов или указав, что домен является доменом по умолчанию или больше не является доменом по умолчанию.

Параметры для вызова DNSServiceEnumerateDomainsсостойте из следующего:

Если перечисление может быть запущено, DNSServiceEnumerateDomains инициализирует ссылку открытия службы и создает сокет, использующийся для передачи с mDNSResponder демон. Используйте ссылку открытия службы на вызов DNSServiceRefSockFD и получите дескриптор сокета для сокета.

Установите цикл выполнения или a select цикл с помощью дескриптора сокета. Когда цикл указывает что ответ от mDNSResponder демон доступен, вызвать DNSServiceProcessResult и передайте ему ссылку открытия службы, инициализированную DNSServiceEnumerateDomains. DNSServiceProcessResult вызовет функцию обратного вызова, связанную со ссылкой открытия службы.

Вместо того, чтобы настроить выполнение или select цикл, можно вызвать DNSServiceEnumerate и сразу вызовите DNSServiceProcessResult. DNSServiceProcessResult функция блокирует до mDNSResponder у демона есть ответ, при котором времени обратный вызов указал когда DNSServiceEnumerate был вызван будет вызван.

Ваш обратный вызов вызовут со следующими параметрами:

Цикл выполнения или select цикл будет уведомлен для каждого рекомендуемого домена, перечисленного на основе на интерфейс и каждый раз, когда домен добавлен или удален. Вы ответственны за сборку ответов демона в список текущих рекомендуемых доменов.

Для завершения перечисления удалите дескриптор сокета из цикла выполнения или select цикл и вызов DNSServiceRefDeallocate, передача ему ссылка открытия службы, инициализированная когда DNSServiceEnumerateDomains был вызван. Ссылка открытия службы лишена законной силы, и память, связанная со ссылкой, освобождена. Сокет, лежащий в основе соединения с mDNSResponder демон закрывается, таким образом завершая соединение Вашего приложения с демоном.