DNSv6

Этот модуль включает функции, которые контролируют связь DNS.

Резюме

Функции этого модуля доступны только если функция OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE включена.

Перечисления

otDnsNat64Mode {
OT_DNS_NAT64_UNSPECIFIED = 0,
OT_DNS_NAT64_ALLOW = 1,
OT_DNS_NAT64_DISALLOW = 2
}
перечислить
Этот тип перечисления представляет собой режим NAT64 в качестве otDnsQueryConfig .
otDnsRecursionFlag {
OT_DNS_FLAG_UNSPECIFIED = 0,
OT_DNS_FLAG_RECURSION_DESIRED = 1,
OT_DNS_FLAG_NO_RECURSION = 2
}
перечислить
Этот тип представляет собой перечисление «рекурсию Желаемого» (RD) флаг в качестве otDnsQueryConfig .

Typedefs

otDnsAddressCallback )(otError aError, const otDnsAddressResponse *aResponse, void *aContext) typedef
void(*
Этот указатель на функцию вызывается при получении ответа DNS на запрос разрешения адреса.
otDnsAddressResponse typedef
Этот тип является непрозрачным представлением ответа на DNS-запрос разрешения адресов.
otDnsBrowseCallback )(otError aError, const otDnsBrowseResponse *aResponse, void *aContext) typedef
void(*
Этот указатель на функцию вызывается при получении ответа DNS на запрос просмотра (перечисление экземпляров службы).
otDnsBrowseResponse typedef
Этот тип является непрозрачным представлением ответа на DNS-запрос просмотра (перечисление экземпляров службы).
otDnsQueryConfig typedef
Эта структура представляет собой конфигурацию запроса DNS.
otDnsServiceCallback )(otError aError, const otDnsServiceResponse *aResponse, void *aContext) typedef
void(*
Этот указатель функции вызывается при получении ответа DNS на запрос разрешения экземпляра службы.
otDnsServiceInfo typedef
Эта структура предоставляет информацию для экземпляра службы DNS.
otDnsServiceResponse typedef
Этот тип является непрозрачным представлением ответа на DNS-запрос разрешения экземпляра службы.
otDnsTxtEntry typedef
Эта структура представляет запись записи TXT, представляющую пару ключ / значение (RFC 6763 - раздел 6.3).
otDnsTxtEntryIterator typedef
Эта структура представляет собой итератор для входа в запись TXT (пары ключ / значение).

Функции

otDnsAddressResponseGetAddress (const otDnsAddressResponse *aResponse, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
Эта функция получает IPv6-адрес, связанный с ответом DNS с разрешением адреса.
otDnsAddressResponseGetHostName (const otDnsAddressResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize)
Эта функция получает полное имя хоста, связанное с ответом DNS с разрешением адреса.
otDnsBrowseResponseGetHostAddress (const otDnsBrowseResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
Эта функция получает IPv6-адрес хоста из ответа DNS-просмотра (перечисление экземпляров службы).
otDnsBrowseResponseGetServiceInfo (const otDnsBrowseResponse *aResponse, const char *aInstanceLabel, otDnsServiceInfo *aServiceInfo)
Эта функция получает информацию об экземпляре службы из ответа на просмотр DNS (перечисление экземпляров службы).
otDnsBrowseResponseGetServiceInstance (const otDnsBrowseResponse *aResponse, uint16_t aIndex, char *aLabelBuffer, uint8_t aLabelBufferSize)
Эта функция получает экземпляр службы, связанный с ответом на просмотр DNS (перечисление экземпляров службы).
otDnsBrowseResponseGetServiceName (const otDnsBrowseResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize)
Эта функция получает имя службы, связанное с ответом просмотра DNS (перечисление экземпляров службы).
otDnsClientBrowse ( otInstance *aInstance, const char *aServiceName, otDnsBrowseCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
Эта функция отправляет запрос просмотра DNS (перечисление экземпляров службы) для заданного имени службы.
otDnsClientGetDefaultConfig ( otInstance *aInstance)
Эта функция получает текущую конфигурацию запроса по умолчанию, используемую DNS-клиентом.
otDnsClientResolveAddress ( otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
Эта функция отправляет DNS-запрос разрешения адресов для записей AAAA (IPv6) для заданного имени хоста.
otDnsClientResolveService ( otInstance *aInstance, const char *aInstanceLabel, const char *aServiceName, otDnsServiceCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
Эта функция отправляет запрос разрешения экземпляра службы DNS для данного экземпляра службы.
otDnsClientSetDefaultConfig ( otInstance *aInstance, const otDnsQueryConfig *aConfig)
void
Эта функция устанавливает конфигурацию запроса по умолчанию на DNS-клиенте.
otDnsGetNextTxtEntry ( otDnsTxtEntryIterator *aIterator, otDnsTxtEntry *aEntry)
Эта функция анализирует данные TXT от итератора и получает следующую запись записи TXT (пара ключ / значение).
otDnsInitTxtEntryIterator ( otDnsTxtEntryIterator *aIterator, const uint8_t *aTxtData, uint16_t aTxtDataLength)
void
Эта функция инициализирует итератор записи TXT.
otDnsIsNameCompressionEnabled (void)
bool
Эта функция указывает, включен ли режим «Сжатие DNS-имени».
otDnsServiceResponseGetHostAddress (const otDnsServiceResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
Эта функция получает IPv6-адрес хоста из ответа на разрешение экземпляра службы DNS.
otDnsServiceResponseGetServiceInfo (const otDnsServiceResponse *aResponse, otDnsServiceInfo *aServiceInfo)
Эта функция получает информацию об экземпляре службы из ответа на разрешение экземпляра службы DNS.
otDnsServiceResponseGetServiceName (const otDnsServiceResponse *aResponse, char *aLabelBuffer, uint8_t aLabelBufferSize, char *aNameBuffer, uint16_t aNameBufferSize)
Эта функция получает имя экземпляра службы, связанное с ответом на разрешение экземпляра службы DNS.
otDnsSetNameCompressionEnabled (bool aEnabled)
void
Эта функция включает / выключает режим «Сжатие DNS-имени».

Структуры

otDnsQueryConfig

Эта структура представляет собой конфигурацию запроса DNS.

otDnsServiceInfo

Эта структура предоставляет информацию для экземпляра службы DNS.

otDnsTxtEntry

Эта структура представляет запись записи TXT, представляющую пару ключ / значение (RFC 6763 - раздел 6.3).

otDnsTxtEntryIterator

Эта структура представляет собой итератор для входа в запись TXT (пары ключ / значение).

Перечисления

otDnsNat64Mode

 otDnsNat64Mode

Этот тип перечисления представляет собой режим NAT64 в качестве otDnsQueryConfig .

Режим NAT64 указывает, разрешить или запретить преобразование адресов NAT64 во время разрешения адресов DNS-клиента. Этот режим используется только тогда , когда OPENTHREAD_CONFIG_DNS_CLIENT_NAT64_ENABLE включена.

Характеристики
OT_DNS_NAT64_ALLOW

Разрешить преобразование адресов NAT64 во время разрешения адресов DNS-клиентов.

OT_DNS_NAT64_DISALLOW

Не разрешайте преобразование адресов NAT64 во время разрешения адресов DNS-клиентов.

OT_DNS_NAT64_UNSPECIFIED

Режим NAT64 не указан. Используйте режим NAT64 по умолчанию.

otDnsRecursionFlag

 otDnsRecursionFlag

Этот тип представляет собой перечисление «рекурсию Желаемого» (RD) флаг в качестве otDnsQueryConfig .

Характеристики
OT_DNS_FLAG_NO_RECURSION

Указывает, что сервер имен DNS не может рекурсивно разрешить запрос.

OT_DNS_FLAG_RECURSION_DESIRED

Указывает, что сервер имен DNS может разрешить запрос рекурсивно.

OT_DNS_FLAG_UNSPECIFIED

Указывает, что флаг не указан.

Typedefs

otDnsAddressCallback

void(* otDnsAddressCallback)(otError aError, const otDnsAddressResponse *aResponse, void *aContext)

Этот указатель на функцию вызывается при получении ответа DNS на запрос разрешения адреса.

В этой функции обратного вызова пользователь может использовать otDnsAddressResponseGet{Item}() функции вместе с aResponse указатель , чтобы получить больше информации о реакции.

aResponse указатель может быть использован только в пределах этой функции обратного вызова и после возвращения из этой функции не будет оставаться в силе, так что пользователь НЕ ДОЛЖЕН сохранить aResponse указателя для дальнейшего использования.

aError может иметь следующее:

Подробности
Параметры
[in] aError
Результат транзакции DNS.
[in] aResponse
Указатель на ответ (он всегда не равен NULL).
[in] aContext
Указатель на контекст приложения.

  • OT_ERROR_NONE Ответ был успешно получен.
  • OT_ERROR_ABORT Транзакция DNS была прервана стеком.
  • OT_ERROR_RESPONSE_TIMEOUT Ответ DNS не был получен в течение тайм-аута.

Если сервер отклоняет запрос разрешения адреса, код ошибки с сервера отображается следующим образом:

  • (0) NOERROR Успех (нет ошибки) -> OT_ERROR_NONE
  • (1) Сервер FORMERR не может интерпретировать из-за ошибки формата -> OT_ERROR_PARSE
  • (2) Сервер SERVFAIL обнаружил внутренний сбой -> OT_ERROR_FAILED
  • (3) NXDOMAIN Имя, которое должно существовать, не существует -> OT_ERROR_NOT_FOUND
  • (4) Сервер NOTIMP не поддерживает тип запроса (OpCode) -> OT_ERROR_NOT_IMPLEMENTED
  • (5) ОТКАЗАНО Сервер отказался по соображениям политики / безопасности -> OT_ERROR_SECURITY
  • (6) YXDOMAIN Некоторое имя, которое не должно существовать, действительно существует -> OT_ERROR_DUPLICATED
  • (7) YXRRSET Некоторые RRset, которые не должны существовать, существуют -> OT_ERROR_DUPLICATED
  • (8) NXRRSET Некоторый RRset, который должен существовать, не существует -> OT_ERROR_NOT_FOUND
  • (9) Сервис NOTAUTH не является полномочным для зоны -> OT_ERROR_SECURITY
  • (10) NOTZONE Имя не входит в зону -> OT_ERROR_PARSE
  • (20) BADNAME Плохое имя -> OT_ERROR_PARSE
  • (21) BADALG Плохой алгоритм -> OT_ERROR_SECURITY
  • (22) BADTRUN Неверное усечение -> OT_ERROR_PARSE
  • Другие коды ответов -> OT_ERROR_FAILED

otDnsAddressResponse

struct otDnsAddressResponse otDnsAddressResponse

Этот тип является непрозрачным представлением ответа на DNS-запрос разрешения адресов.

Указатели на экземпляр этого типа предоставляется от обратного вызова otDnsAddressCallback .

otDnsBrowseCallback

void(* otDnsBrowseCallback)(otError aError, const otDnsBrowseResponse *aResponse, void *aContext)

Этот указатель на функцию вызывается при получении ответа DNS на запрос просмотра (перечисление экземпляров службы).

В этой функции обратного вызова пользователь может использовать otDnsBrowseResponseGet{Item}() функции вместе с aResponse указатель , чтобы получить больше информации о реакции.

aResponse указатель может быть использован только в пределах этой функции обратного вызова и после возвращения из этой функции не будет оставаться в силе, так что пользователь НЕ ДОЛЖЕН сохранить aResponse указателя для дальнейшего использования.

Для получения полного списка возможных значений aError см otDnsAddressCallback() .

Подробности
Параметры
[in] aError
Результат транзакции DNS.
[in] aResponse
Указатель на ответ (он всегда не равен NULL).
[in] aContext
Указатель на контекст приложения.

otDnsBrowseResponse

struct otDnsBrowseResponse otDnsBrowseResponse

Этот тип является непрозрачным представлением ответа на DNS-запрос просмотра (перечисление экземпляров службы).

Указатели на экземпляр этого типа предоставляется от обратного вызова otDnsBrowseCallback .

otDnsQueryConfig

struct otDnsQueryConfig otDnsQueryConfig

Эта структура представляет собой конфигурацию запроса DNS.

Любое из полей в этой структуре может быть установлено в ноль, чтобы указать, что оно не указано. Как неуказанные поля обрабатываемый определяется функцией , которая использует экземпляр otDnsQueryConfig .

otDnsServiceCallback

void(* otDnsServiceCallback)(otError aError, const otDnsServiceResponse *aResponse, void *aContext)

Этот указатель функции вызывается при получении ответа DNS на запрос разрешения экземпляра службы.

В этой функции обратного вызова пользователь может использовать otDnsServiceResponseGet{Item}() функции вместе с aResponse указатель , чтобы получить больше информации о реакции.

aResponse указатель может быть использован только в пределах этой функции обратного вызова и после возвращения из этой функции не будет оставаться в силе, так что пользователь НЕ ДОЛЖЕН сохранить aResponse указателя для дальнейшего использования.

Для получения полного списка возможных значений aError см otDnsAddressCallback() .

Подробности
Параметры
[in] aError
Результат транзакции DNS.
[in] aResponse
Указатель на ответ (он всегда не равен NULL).
[in] aContext
Указатель на контекст приложения.

otDnsServiceInfo

struct otDnsServiceInfo otDnsServiceInfo

Эта структура предоставляет информацию для экземпляра службы DNS.

otDnsServiceResponse

struct otDnsServiceResponse otDnsServiceResponse

Этот тип является непрозрачным представлением ответа на DNS-запрос разрешения экземпляра службы.

Указатели на экземпляр этого типа предоставляется от обратного вызова otDnsAddressCallback .

otDnsTxtEntry

struct otDnsTxtEntry otDnsTxtEntry

Эта структура представляет запись записи TXT, представляющую пару ключ / значение (RFC 6763 - раздел 6.3).

Строковые буферы , на которую указывает mKey и mValue ДОЛЖНЫ сохраняться и остаются неизменными после экземпляра такой структуры передается OpenThread (как часть otSrpClientService экземпляра).

Массив otDnsTxtEntry записей используются в otSrpClientService указать полную запись TXT (список записей).

otDnsTxtEntryIterator

struct otDnsTxtEntryIterator otDnsTxtEntryIterator

Эта структура представляет собой итератор для входа в запись TXT (пары ключ / значение).

Поля данных в этой структуре предназначены для использования ядром OpenThread, и вызывающий не должен их читать или изменять.

Функции

otDnsAddressResponseGetAddress

otError otDnsAddressResponseGetAddress(
  const otDnsAddressResponse *aResponse,
  uint16_t aIndex,
  otIp6Address *aAddress,
  uint32_t *aTtl
)

Эта функция получает IPv6-адрес, связанный с ответом DNS с разрешением адреса.

Эта функция должна быть использована только с otDnsAddressCallback .

Ответ может включать несколько записей адресов IPv6. aIndex может использоваться для итерации по списку адресов. Нулевой индекс получает первый адрес и так далее. Когда мы достигаем конца списка, OT_ERROR_NOT_FOUND возвращается.

Подробности
Параметры
[in] aResponse
Указатель на ответ.
[in] aIndex
Индекс адресной записи, которую нужно получить.
[out] aAddress
Указатель на IPv6-адрес для вывода адреса (НЕ ДОЛЖЕН быть NULL).
[out] aTtl
Указатель на uint32_t для вывода TTL для адреса. Может иметь значение NULL, если вызывающий абонент не хочет получать TTL.
Возвращаемые значения
OT_ERROR_NONE
Адрес был успешно прочитан.
OT_ERROR_NOT_FOUND
Нет запись адреса в aResponse на aIndex .
OT_ERROR_PARSE
Невозможно разобрать записи в aResponse .

otDnsAddressResponseGetHostName

otError otDnsAddressResponseGetHostName(
  const otDnsAddressResponse *aResponse,
  char *aNameBuffer,
  uint16_t aNameBufferSize
)

Эта функция получает полное имя хоста, связанное с ответом DNS с разрешением адреса.

Эта функция должна быть использована только с otDnsAddressCallback .

Подробности
Параметры
[in] aResponse
Указатель на ответ.
[out] aNameBuffer
Буфер в массив символов для вывода полного имени хоста (НЕ ДОЛЖЕН быть NULL).
[in] aNameBufferSize
Размер aNameBuffer .
Возвращаемые значения
OT_ERROR_NONE
Полное имя хоста было успешно прочитано.
OT_ERROR_NO_BUFS
Имя не помещается в aNameBuffer .

otDnsBrowseResponseGetHostAddress

otError otDnsBrowseResponseGetHostAddress(
  const otDnsBrowseResponse *aResponse,
  const char *aHostName,
  uint16_t aIndex,
  otIp6Address *aAddress,
  uint32_t *aTtl
)

Эта функция получает IPv6-адрес хоста из ответа DNS-просмотра (перечисление экземпляров службы).

Эта функция должна быть использована только с otDnsBrowseCallback .

Ответ может включать ноль или более записей адресов IPv6. aIndex может использоваться для итерации по списку адресов. Нулевой индекс получает первый адрес и так далее. Когда мы достигаем конца списка, OT_ERROR_NOT_FOUND возвращается.

Подробности
Параметры
[in] aResponse
Указатель на ответ.
[in] aHostName
Имя хоста для получения адреса (НЕ ДОЛЖНО быть NULL).
[in] aIndex
Индекс адресной записи, которую нужно получить.
[out] aAddress
Указатель на IPv6-адрес для вывода адреса (НЕ ДОЛЖЕН быть NULL).
[out] aTtl
Указатель на uint32_t для вывода TTL для адреса. Может иметь значение NULL, если вызывающий абонент не хочет получать TTL.
Возвращаемые значения
OT_ERROR_NONE
Адрес прочитан успешно.
OT_ERROR_NOT_FOUND
Нет запись адреса для aHostname в aResponse на aIndex .
OT_ERROR_PARSE
Невозможно разобрать записи в aResponse .

otDnsBrowseResponseGetServiceInfo

otError otDnsBrowseResponseGetServiceInfo(
  const otDnsBrowseResponse *aResponse,
  const char *aInstanceLabel,
  otDnsServiceInfo *aServiceInfo
)

Эта функция получает информацию об экземпляре службы из ответа на просмотр DNS (перечисление экземпляров службы).

Эта функция должна быть использована только с otDnsBrowseCallback .

Ответ DNS просмотра должен включать записи SRV, TXT и AAAA для перечисленных экземпляров службы (обратите внимание, что это ДОЛЖНО, а не ОБЯЗАТЕЛЬНОЕ требование). Эта функция пытается получить эту информацию для данного экземпляра службы, если она доступна.

  • Если соответствующий SRV запись не найдена в aResponse , OT_ERROR_NOT_FOUND возвращается.
  • Если запись соответствия SRV находится в aResponse , aServiceInfo обновляется и OT_ERROR_NONE возвращается.
  • Если соответствующий TXT запись не найдена в aResponse , mTxtDataSize в aServiceInfo устанавливается равным нулю.
  • Если соответствующий AAAA записи не найдена в aResponse , mHostAddress is set to all zero or unspecified address.
  • If there are multiple AAAA records for the host name in @p aResponse, mHostAddress is set to the first one. The other addresses can be retrieved using с is set to the first one. The other addresses can be retrieved using otDnsBrowseResponseGetHostAddress () `.

Подробности
Параметры
[in] aResponse
Указатель на ответ.
[in] aInstanceLabel
Метка экземпляра службы (НЕ ДОЛЖНА быть ПУСТОЙ).
[out] aServiceInfo
ServiceInfo для вывода информации экземпляр службы (НЕ ДОЛЖЕН быть NULL).
Возвращаемые значения
OT_ERROR_NONE
Информация об экземпляре службы была прочитана. aServiceInfo обновляется.
OT_ERROR_NOT_FOUND
Не удался найти соответствующую запись SRV для aInstanceLabel .
OT_ERROR_NO_BUFS
Имя хоста и / или данные TXT не помещаются в указанные буферы.
OT_ERROR_PARSE
Невозможно разобрать записи в aResponse .

otDnsBrowseResponseGetServiceInstance

otError otDnsBrowseResponseGetServiceInstance(
  const otDnsBrowseResponse *aResponse,
  uint16_t aIndex,
  char *aLabelBuffer,
  uint8_t aLabelBufferSize
)

Эта функция получает экземпляр службы, связанный с ответом на просмотр DNS (перечисление экземпляров службы).

Эта функция должна быть использована только с otDnsBrowseCallback .

Ответ может включать несколько записей экземпляра службы. aIndex может использоваться для итерации по списку. Нулевой индекс дает первую запись. Когда мы достигаем конца списка, OT_ERROR_NOT_FOUND возвращается.

Обратите внимание, что эта функция получает метку экземпляра службы, а не полное имя экземпляра службы, имеющее форму . . . . .

Подробности
Параметры
[in] aResponse
Указатель на ответ.
[in] aIndex
Индекс записи экземпляра службы, которую нужно получить.
[out] aLabelBuffer
Буфер в массив символов для вывода метки экземпляра службы (НЕ ДОЛЖЕН быть NULL).
[in] aLabelBufferSize
Размер aLabelBuffer .
Возвращаемые значения
OT_ERROR_NONE
Экземпляр службы был успешно прочитан.
OT_ERROR_NO_BUFS
Имя не помещается в aNameBuffer .
OT_ERROR_NOT_FOUND
Нет экземпляр службы записи в aResponse на aIndex .
OT_ERROR_PARSE
Невозможно разобрать записи в aResponse .

otDnsBrowseResponseGetServiceName

otError otDnsBrowseResponseGetServiceName(
  const otDnsBrowseResponse *aResponse,
  char *aNameBuffer,
  uint16_t aNameBufferSize
)

Эта функция получает имя службы, связанное с ответом просмотра DNS (перечисление экземпляров службы).

Эта функция должна быть использована только с otDnsBrowseCallback .

Подробности
Параметры
[in] aResponse
Указатель на ответ.
[out] aNameBuffer
Буфер в массив символов для вывода имени службы (НЕ ДОЛЖЕН быть NULL).
[in] aNameBufferSize
Размер aNameBuffer .
Возвращаемые значения
OT_ERROR_NONE
Имя службы было успешно прочитано.
OT_ERROR_NO_BUFS
Имя не помещается в aNameBuffer .

otDnsClientBrowse

otError otDnsClientBrowse(
  otInstance *aInstance,
  const char *aServiceName,
  otDnsBrowseCallback aCallback,
  void *aContext,
  const otDnsQueryConfig *aConfig
)

Эта функция отправляет запрос просмотра DNS (перечисление экземпляров службы) для заданного имени службы.

Эта функция доступна , если OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE включен.

aConfig может быть NULL. В этом случае конфигурация по умолчанию (от otDnsClientGetDefaultConfig() ) будет использоваться в качестве конфигурации для этого запроса. В не-NULL aConfig , некоторые поля могут быть оставлены не определено (нулевое значение). Затем неуказанные поля заменяются значениями из конфигурации по умолчанию.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aServiceName
Имя службы для запроса (НЕ ДОЛЖНО быть NULL).
[in] aCallback
Указатель функции, который должен вызываться при получении ответа или тайм-ауте.
[in] aContext
Указатель на произвольную контекстную информацию.
[in] aConfig
Указатель на конфигурацию, используемую для этого запроса.
Возвращаемые значения
OT_ERROR_NONE
Запрос успешно отправлен. aCallback будет приводиться в отчет о состоянии.
OT_ERROR_NO_BUFS
Недостаточно буфера для подготовки и отправки запроса.

otDnsClientGetDefaultConfig

const otDnsQueryConfig * otDnsClientGetDefaultConfig(
  otInstance *aInstance
)

Эта функция получает текущую конфигурацию запроса по умолчанию, используемую DNS-клиентом.

Когда OpenThread стека начинается, конфигурационный запрос DNS по умолчанию определяется из набора OT опций конфигурации , таких как OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_SERVER_IP6_ADDRESS , _DEFAULT_SERVER_PORT , _DEFAULT_RESPONSE_TIMEOUT и т.д. (см config/dns_client.h для всех связанных с ними вариантов конфигурации).

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
Возврат
Указатель на текущую конфигурацию по умолчанию, используемую DNS-клиентом.

otDnsClientResolveAddress

otError otDnsClientResolveAddress(
  otInstance *aInstance,
  const char *aHostName,
  otDnsAddressCallback aCallback,
  void *aContext,
  const otDnsQueryConfig *aConfig
)

Эта функция отправляет DNS-запрос разрешения адресов для записей AAAA (IPv6) для заданного имени хоста.

aConfig может быть NULL. В этом случае конфигурация по умолчанию (от otDnsClientGetDefaultConfig() ) будет использоваться в качестве конфигурации для этого запроса. В не-NULL aConfig , некоторые поля могут быть оставлены не определено (нулевое значение). Затем неуказанные поля заменяются значениями из конфигурации по умолчанию.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aHostName
Имя хоста, для которого запрашивается адрес (НЕ ДОЛЖНО быть NULL).
[in] aCallback
Указатель функции, который должен вызываться при получении ответа или тайм-ауте.
[in] aContext
Указатель на произвольную контекстную информацию.
[in] aConfig
Указатель на конфигурацию, используемую для этого запроса.
Возвращаемые значения
OT_ERROR_NONE
Запрос успешно отправлен. aCallback будет приводиться в отчет о состоянии.
OT_ERROR_NO_BUFS
Недостаточно буфера для подготовки и отправки запроса.

otDnsClientResolveService

otError otDnsClientResolveService(
  otInstance *aInstance,
  const char *aInstanceLabel,
  const char *aServiceName,
  otDnsServiceCallback aCallback,
  void *aContext,
  const otDnsQueryConfig *aConfig
)

Эта функция отправляет запрос разрешения экземпляра службы DNS для данного экземпляра службы.

Эта функция доступна , если OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE включен.

aConfig может быть NULL. В этом случае конфигурация по умолчанию (от otDnsClientGetDefaultConfig() ) будет использоваться в качестве конфигурации для этого запроса. В не-NULL aConfig , некоторые поля могут быть оставлены не определено (нулевое значение). Затем неуказанные поля заменяются значениями из конфигурации по умолчанию.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aInstanceLabel
Метка экземпляра службы.
[in] aServiceName
Имя службы (вместе с aInstanceLabel образует полное имя экземпляра).
[in] aCallback
Указатель функции, который должен вызываться при получении ответа или тайм-ауте.
[in] aContext
Указатель на произвольную контекстную информацию.
[in] aConfig
Указатель на конфигурацию, используемую для этого запроса.
Возвращаемые значения
OT_ERROR_NONE
Запрос успешно отправлен. aCallback будет приводиться в отчет о состоянии.
OT_ERROR_NO_BUFS
Недостаточно буфера для подготовки и отправки запроса.
OT_ERROR_INVALID_ARGS
aInstanceLabel является NULL.

otDnsClientSetDefaultConfig

void otDnsClientSetDefaultConfig(
  otInstance *aInstance,
  const otDnsQueryConfig *aConfig
)

Эта функция устанавливает конфигурацию запроса по умолчанию на DNS-клиенте.

Примечание: Любой постоянный запрос будет продолжать использовать конфиг с момента , когда он был запущен. Новая конфигурация по умолчанию будет использоваться для любых будущих DNS-запросов. aConfig может быть NULL. В этом случае конфигурация по умолчанию будет установлена по умолчанию из опций OT конфигурации OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_{} . Это сбрасывает конфигурацию запроса по умолчанию обратно в конфигурацию при запуске стека OpenThread.

В не-NULL aConfig , вызывающий абонент может выбрать , чтобы оставить некоторые поля в otDnsQueryConfig экземпляра не определено (значение ноль). В неуказанные поля заменяются соответствующим OT конфигурации опции определений OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_{} для формирования конфигурации по умолчанию запроса.

Когда OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_SERVER_ADDRESS_AUTO_SET_ENABLE включена, IPv6 - адрес сервера в конфигурации по умолчанию автоматически устанавливается и обновляется клиентом DNS. Это делается только в том случае, если пользователь не устанавливает или не указывает это явно. Это поведение требует, чтобы клиент SRP и его функция автозапуска были включены. Затем клиент SRP будет отслеживать данные потоковой сети для записей службы DNS / SRP, чтобы выбрать сервер SRP. Выбранный адрес сервера SRP также устанавливается в качестве адреса DNS-сервера в конфигурации по умолчанию.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
[in] aConfig
Указатель на новую конфигурацию запроса, которая будет использоваться по умолчанию.

otDnsGetNextTxtEntry

otError otDnsGetNextTxtEntry(
  otDnsTxtEntryIterator *aIterator,
  otDnsTxtEntry *aEntry
)

Эта функция анализирует данные TXT от итератора и получает следующую запись записи TXT (пара ключ / значение).

aIterator должна быть инициализирована с помощью otDnsInitTxtEntryIterator() перед вызовом этой функции и данные TXT буфера , используемая для инициализации итератор , должен сохраняться и оставаться неизменными. В противном случае поведение этой функции не определено.

Если разбираемая длина строки ключа меньше или равно OT_DNS_TXT_KEY_MAX_LENGTH (рекомендуются максимальная длиной ключа) ключ строка возвращается в mKey в aEntry . Но если ключ больше, то mKey устанавливается в NULL , и вся закодированная строка записи TXT возвращается в mValue и mValueLength .

Подробности
Параметры
[in] aIterator
Указатель на итератор (НЕ ДОЛЖЕН быть NULL).
[out] aEntry
Указатель на otDnsTxtEntry структуру для вывода проанализировано / чтения входа (не должен быть NULL).
Возвращаемые значения
OT_ERROR_NONE
Следующая запись была успешно проанализирована. aEntry обновляется.
OT_ERROR_NOT_FOUND
В данных TXT больше нет записей.
OT_ERROR_PARSE
TXT данные aIterator не очень хорошо сформированы.

otDnsInitTxtEntryIterator

void otDnsInitTxtEntryIterator(
  otDnsTxtEntryIterator *aIterator,
  const uint8_t *aTxtData,
  uint16_t aTxtDataLength
)

Эта функция инициализирует итератор записи TXT.

Указатель на буфер aTxtData и его содержание должно сохраняться и остаются неизменными в то время как aIterator объект используется.

Подробности
Параметры
[in] aIterator
Указатель на итератор для инициализации (НЕ ДОЛЖЕН быть ПУСТОЙ).
[in] aTxtData
Указатель на буфер, содержащий закодированные данные TXT.
[in] aTxtDataLength
Длина (количество байтов) из aTxtData .

otDnsIsNameCompressionEnabled

bool otDnsIsNameCompressionEnabled(
  void
)

Эта функция указывает, включен ли режим «Сжатие DNS-имени».

Она предназначена только для тестирования и доступен при OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE конфигурации включена.

Подробности
Возврат
ИСТИНА, если включен режим «Сжатие DNS-имен», иначе - ЛОЖЬ.

otDnsServiceResponseGetHostAddress

otError otDnsServiceResponseGetHostAddress(
  const otDnsServiceResponse *aResponse,
  const char *aHostName,
  uint16_t aIndex,
  otIp6Address *aAddress,
  uint32_t *aTtl
)

Эта функция получает IPv6-адрес хоста из ответа на разрешение экземпляра службы DNS.

Эта функция должна быть использована только с otDnsServiceCallback .

Ответ может включать ноль или более записей адресов IPv6. aIndex может использоваться для итерации по списку адресов. Нулевой индекс получает первый адрес и так далее. Когда мы достигаем конца списка, OT_ERROR_NOT_FOUND возвращается.

Подробности
Параметры
[in] aResponse
Указатель на ответ.
[in] aHostName
Имя хоста для получения адреса (НЕ ДОЛЖНО быть NULL).
[in] aIndex
Индекс адресной записи, которую нужно получить.
[out] aAddress
Указатель на IPv6-адрес для вывода адреса (НЕ ДОЛЖЕН быть NULL).
[out] aTtl
Указатель на uint32_t для вывода TTL для адреса. Может иметь значение NULL, если вызывающий абонент не хочет получать TTL.
Возвращаемые значения
OT_ERROR_NONE
Адрес прочитан успешно.
OT_ERROR_NOT_FOUND
Нет запись адреса для aHostname в aResponse на aIndex .
OT_ERROR_PARSE
Невозможно разобрать записи в aResponse .

otDnsServiceResponseGetServiceInfo

otError otDnsServiceResponseGetServiceInfo(
  const otDnsServiceResponse *aResponse,
  otDnsServiceInfo *aServiceInfo
)

Эта функция получает информацию об экземпляре службы из ответа на разрешение экземпляра службы DNS.

Эта функция должна быть использована только с otDnsServiceCallback .

  • Если соответствующий SRV запись не найдена в aResponse , OT_ERROR_NOT_FOUND возвращается.
  • Если запись соответствия SRV находится в aResponse , aServiceInfo обновляется и OT_ERROR_NONE возвращается.
  • Если соответствующий TXT запись не найдена в aResponse , mTxtDataSize в aServiceInfo устанавливается равным нулю.
  • Если соответствующий AAAA записи не найдена в aResponse , mHostAddress is set to all zero or unspecified address.
  • If there are multiple AAAA records for the host name in @p aResponse, mHostAddress is set to the first one. The other addresses can be retrieved using с is set to the first one. The other addresses can be retrieved using otDnsServiceResponseGetHostAddress () `.

Подробности
Параметры
[in] aResponse
Указатель на ответ.
[out] aServiceInfo
ServiceInfo для вывода информации экземпляр службы (НЕ ДОЛЖЕН быть NULL).
Возвращаемые значения
OT_ERROR_NONE
Информация об экземпляре службы была прочитана. aServiceInfo обновляется.
OT_ERROR_NOT_FOUND
Не удалось найти запись соответствия SRV в aResponse .
OT_ERROR_NO_BUFS
Имя хоста и / или данные TXT не помещаются в указанные буферы.
OT_ERROR_PARSE
Невозможно разобрать записи в aResponse .

otDnsServiceResponseGetServiceName

otError otDnsServiceResponseGetServiceName(
  const otDnsServiceResponse *aResponse,
  char *aLabelBuffer,
  uint8_t aLabelBufferSize,
  char *aNameBuffer,
  uint16_t aNameBufferSize
)

Эта функция получает имя экземпляра службы, связанное с ответом на разрешение экземпляра службы DNS.

Эта функция должна быть использована только с otDnsServiceCallback .

Подробности
Параметры
[in] aResponse
Указатель на ответ.
[out] aLabelBuffer
Буфер в массив символов для вывода метки экземпляра службы (НЕ ДОЛЖЕН быть NULL).
[in] aLabelBufferSize
Размер aLabelBuffer .
[out] aNameBuffer
Буфер в массив символов для вывода оставшейся части имени службы (может иметь значение NULL, если пользователь не заинтересован в получении имени.
[in] aNameBufferSize
Размер aNameBuffer .
Возвращаемые значения
OT_ERROR_NONE
Имя службы было успешно прочитано.
OT_ERROR_NO_BUFS
Либо метка, либо имя не помещаются в указанные буферы.

otDnsSetNameCompressionEnabled

void otDnsSetNameCompressionEnabled(
  bool aEnabled
)

Эта функция включает / выключает режим «Сжатие DNS-имени».

По умолчанию сжатие DNS-имен включено. Когда отключено, DNS-имена добавляются как полные и никогда не сжимаются. Это применимо к клиент-серверным модулям OpenThread DNS и SRP.

Она предназначена только для тестирования и доступен при OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE конфигурации включена.

Обратите внимание , что в случае OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_ENABLE используется этот режим применяется ко всем экземплярам OpenThread (т.е. вызов функции включает / отключает режим сжатия на всех случаях OpenThread).

Подробности
Параметры
[in] aEnabled
TRUE для включения режима «сжатия DNS-имени», FALSE для отключения.

Макросы

OT_DNS_MAX_LABEL_SIZE

 OT_DNS_MAX_LABEL_SIZE 64

Максимальный размер строки метки (включая нулевой символ в конце строки).

OT_DNS_MAX_NAME_SIZE

 OT_DNS_MAX_NAME_SIZE 255

Максимальный размер строки имени (включая нулевой символ в конце строки).

OT_DNS_TXT_KEY_MAX_LENGTH

 OT_DNS_TXT_KEY_MAX_LENGTH 9

Рекомендуемая максимальная длина ключевой строки записи TXT (RFC 6763 - раздел 6.4).

OT_DNS_TXT_KEY_MIN_LENGTH

 OT_DNS_TXT_KEY_MIN_LENGTH 1

Минимальная длина ключевой строки записи TXT (RFC 6763 - раздел 6.4).