Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

DNSv6

Este módulo incluye funciones que controlan la comunicación de DNS.

Resumen

Las funciones de este módulo solo están disponibles si la función OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE está habilitada.

Enumeraciones

otDnsNat64Mode{
  OT_DNS_NAT64_UNSPECIFIED = 0,
  OT_DNS_NAT64_ALLOW = 1,
  OT_DNS_NAT64_DISALLOW = 2
}
enum
Este tipo de enumeración representa el modo NAT64 en una otDnsQueryConfig.
otDnsRecursionFlag{
  OT_DNS_FLAG_UNSPECIFIED = 0,
  OT_DNS_FLAG_RECURSION_DESIRED = 1,
  OT_DNS_FLAG_NO_RECURSION = 2
}
enum
Este tipo de enumeración representa la marca &;; Recursion Desired (RD) en un otDnsQueryConfig.

Typedefs

otDnsAddressCallback)(otError aError, const otDnsAddressResponse *aResponse, void *aContext) typedef
void(*
Se llama a este puntero de función cuando se recibe una respuesta de DNS para una consulta de resolución de dirección.
otDnsAddressResponse typedef
Este tipo es una representación opaca de una respuesta a una consulta de DNS para la resolución de direcciones.
otDnsBrowseCallback)(otError aError, const otDnsBrowseResponse *aResponse, void *aContext) typedef
void(*
Se llama a este puntero de función cuando se recibe una respuesta de DNS para una búsqueda de navegación (enumeración de la instancia de servicio).
otDnsBrowseResponse typedef
Este tipo es una representación opaca de una respuesta a una consulta de DNS de navegación (enumeración de la instancia de servicio).
otDnsQueryConfig typedef
Esta estructura representa una configuración de consulta de DNS.
otDnsServiceCallback)(otError aError, const otDnsServiceResponse *aResponse, void *aContext) typedef
void(*
Se llama a este puntero de función cuando se recibe una respuesta de DNS para una consulta de resolución de instancia de servicio.
otDnsServiceInfo typedef
Esta estructura proporciona información para una instancia del servicio de DNS.
otDnsServiceResponse typedef
Este tipo es una representación opaca de una respuesta a una consulta de DNS para la resolución de instancias de servicio.
otDnsTxtEntry typedef
struct otDnsTxtEntry
Esta estructura representa una entrada de registro TXT que representa un par clave-valor (RFC 6763 - sección 6.3).
otDnsTxtEntryIterator typedef
Esta estructura representa un iterador para todo el registro TXT (pares clave-valor).

Functions

otDnsAddressResponseGetAddress(const otDnsAddressResponse *aResponse, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
Esta función obtiene una dirección IPv6 asociada con una respuesta de DNS de resolución de direcciones.
otDnsAddressResponseGetHostName(const otDnsAddressResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize)
Esta función obtiene el nombre de host completo asociado con una respuesta de DNS de resolución de direcciones.
otDnsBrowseResponseGetHostAddress(const otDnsBrowseResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
Esta función obtiene la dirección IPv6 del host de una respuesta de navegación de DNS (enumeración de la instancia de servicio).
otDnsBrowseResponseGetServiceInfo(const otDnsBrowseResponse *aResponse, const char *aInstanceLabel, otDnsServiceInfo *aServiceInfo)
Esta función obtiene información de una instancia de servicio de una respuesta de navegación de DNS (enumeración de la instancia de servicio).
otDnsBrowseResponseGetServiceInstance(const otDnsBrowseResponse *aResponse, uint16_t aIndex, char *aLabelBuffer, uint8_t aLabelBufferSize)
Esta función obtiene una instancia de servicio asociada con una respuesta de navegación de DNS (enumeración de la instancia de servicio).
otDnsBrowseResponseGetServiceName(const otDnsBrowseResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize)
Esta función obtiene el nombre del servicio asociado con una respuesta de navegación de DNS (enumeración de la instancia de servicio).
otDnsClientBrowse(otInstance *aInstance, const char *aServiceName, otDnsBrowseCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
Esta función envía una consulta de navegación de DNS (enumeración de la instancia de servicio) para un nombre de servicio determinado.
otDnsClientGetDefaultConfig(otInstance *aInstance)
Esta función obtiene la configuración de consulta predeterminada actual que utiliza el cliente de DNS.
otDnsClientResolveAddress(otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
Esta función envía una consulta de DNS de resolución de dirección para registros AAAA (IPv6) de un nombre de host determinado.
otDnsClientResolveIp4Address(otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
Esta función envía una consulta de DNS de resolución de dirección para los registros A (IPv4) de un nombre de host determinado.
otDnsClientResolveService(otInstance *aInstance, const char *aInstanceLabel, const char *aServiceName, otDnsServiceCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
Esta función envía una consulta de resolución de instancias de servicio de DNS para una instancia de servicio determinada.
otDnsClientSetDefaultConfig(otInstance *aInstance, const otDnsQueryConfig *aConfig)
void
Esta función establece la configuración de consultas predeterminada en el cliente de DNS.
otDnsGetNextTxtEntry(otDnsTxtEntryIterator *aIterator, otDnsTxtEntry *aEntry)
Esta función analiza los datos TXT de un iterador y obtiene la siguiente entrada de registro TXT (par clave-valor).
otDnsInitTxtEntryIterator(otDnsTxtEntryIterator *aIterator, const uint8_t *aTxtData, uint16_t aTxtDataLength)
void
Esta función inicializa un iterador de registro TXT.
otDnsIsNameCompressionEnabled(void)
bool
Esta función indica si el modo de compresión de nombres de DNS está habilitado o no.
otDnsServiceResponseGetHostAddress(const otDnsServiceResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
Esta función obtiene la dirección IPv6 del host de una respuesta de resolución de instancia de servicio de DNS.
otDnsServiceResponseGetServiceInfo(const otDnsServiceResponse *aResponse, otDnsServiceInfo *aServiceInfo)
Esta función obtiene información de una instancia de servicio a partir de una respuesta de resolución de instancias de servicio de DNS.
otDnsServiceResponseGetServiceName(const otDnsServiceResponse *aResponse, char *aLabelBuffer, uint8_t aLabelBufferSize, char *aNameBuffer, uint16_t aNameBufferSize)
Esta función obtiene el nombre de la instancia de servicio asociado con una respuesta de resolución de instancia de servicio de DNS.
otDnsSetNameCompressionEnabled(bool aEnabled)
void
Esta función habilita o inhabilita el modo de compresión de nombres de DNS.

Structs

otDnsQueryConfig

Esta estructura representa una configuración de consulta de DNS.

otDnsServiceInfo

Esta estructura proporciona información para una instancia del servicio de DNS.

otDnsTxtEntry

Esta estructura representa una entrada de registro TXT que representa un par clave-valor (RFC 6763 - sección 6.3).

otDnsTxtEntryIterator

Esta estructura representa un iterador para todo el registro TXT (pares clave-valor).

Enumeraciones

otDnsNat64Mode

 otDnsNat64Mode

Este tipo de enumeración representa el modo NAT64 en una otDnsQueryConfig.

El modo NAT64 indica si se permite o no la traducción de direcciones NAT64 durante la resolución de direcciones del cliente DNS. Este modo solo se usa cuando OPENTHREAD_CONFIG_DNS_CLIENT_NAT64_ENABLE está habilitado.

Properties
OT_DNS_NAT64_ALLOW

Permite la traducción de direcciones NAT64 durante la resolución de direcciones del cliente DNS.

OT_DNS_NAT64_DISALLOW

No permitir la traducción de direcciones NAT64 durante la resolución de direcciones del cliente DNS.

OT_DNS_NAT64_UNSPECIFIED

No se especificó el modo NAT64. Usa el modo NAT64 predeterminado.

otDnsRecursionFlag

 otDnsRecursionFlag

Este tipo de enumeración representa la marca &;; Recursion Desired (RD) en un otDnsQueryConfig.

Properties
OT_DNS_FLAG_NO_RECURSION

Indica que el servidor de nombres del DNS no puede resolver la consulta de forma recursiva.

OT_DNS_FLAG_RECURSION_DESIRED

Indica que el servidor de nombres del DNS puede resolver la consulta de forma recursiva.

OT_DNS_FLAG_UNSPECIFIED

Indica que la marca no está especificada.

Typedefs

otDnsAddressCallback

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

Se llama a este puntero de función cuando se recibe una respuesta de DNS para una consulta de resolución de dirección.

Dentro de esta devolución de llamada, el usuario puede usar las funciones otDnsAddressResponseGet{Item}() junto con el puntero aResponse para obtener más información sobre la respuesta.

El puntero aResponse solo se puede usar dentro de esta devolución de llamada y, cuando regresa de esta función, no será válido. Por lo tanto, el usuario NO DEBE retener el puntero aResponse para usarlo más adelante.

aError puede tener lo siguiente:

Detalles
Parámetros
[in] aError
Es el resultado de la transacción de DNS.
[in] aResponse
Un puntero para la respuesta (siempre es no NULL).
[in] aContext
Un puntero para el contexto específico de la aplicación.

  • OT_ERROR_NONE Recibió una respuesta A correctamente.
  • OT_ERROR_ABORT anuló una pila de transacciones de DNS.
  • OT_ERROR_RESPONSE_TIMEOUT No se recibió ninguna respuesta de DNS en el tiempo de espera.

Si el servidor rechaza la resolución de la dirección, solicita el código de error del servidor de la siguiente manera:

  • (0) NOERROR correctamente (sin condición de error) -&tt; OT_ERROR_NONE
  • (1) El servidor FORMERR no puede interpretarlo debido al error de formato -> OT_ERROR_PARSE
  • (2) El servidor SERVFAIL detectó un error interno -> OT_ERROR_fail
  • (3) Nombre de NXDOMAIN que debería existir, no existe -> OT_ERROR_NOT_FOUND
  • (4) El servidor NOTIMP no es compatible con el tipo de consulta (Código Op). -&tt; OT_ERROR_NOT_IMPLEMENTED
  • (5) REFUSED Servidor rechazado por cuestiones de seguridad o de políticas -> OT_ERROR_SECURITY
  • (6) YXDOMAIN Algunos nombres que no deberían existir existen -&tt; OT_ERROR_DUPLICATED
  • (7) YXRRSET Algunos RRset que no existen, existen -> OT_ERROR_DUPLICATED
  • (8) NXRRSET Algunos RRset que deberían existir, no existen -> OT_ERROR_NOT_FOUND
  • (9) El servicio NOTAUTH no es confiable para la zona -&tt; OT_ERROR_SECURITY
  • (10) NOTZONE A: el nombre no está en la zona -> OT_ERROR_PARSE
  • (20) BADNAME Nombre incorrecto -> OT_ERROR_PARSE
  • (21) Algoritmo BADALG incorrecto -&tt; OT_ERROR_SECURITY
  • (22) BADTRUN Mal truncado -> OT_ERROR_PARSE
  • Otros códigos de respuesta -&tt; OT_ERROR_fail

otDnsAddressResponse

struct otDnsAddressResponse otDnsAddressResponse

Este tipo es una representación opaca de una respuesta a una consulta de DNS para la resolución de direcciones.

Los punteros a instancias de este tipo se proporcionan desde la devolución de llamada otDnsAddressCallback.

otDnsBrowseCallback

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

Se llama a este puntero de función cuando se recibe una respuesta de DNS para una búsqueda de navegación (enumeración de la instancia de servicio).

Dentro de esta devolución de llamada, el usuario puede usar las funciones otDnsBrowseResponseGet{Item}() junto con el puntero aResponse para obtener más información sobre la respuesta.

El puntero aResponse solo se puede usar dentro de esta devolución de llamada y, cuando regresa de esta función, no será válido. Por lo tanto, el usuario NO DEBE retener el puntero aResponse para usarlo más adelante.

A fin de obtener una lista completa de los valores posibles para aError, consulta otDnsAddressCallback().

Detalles
Parámetros
[in] aError
Es el resultado de la transacción de DNS.
[in] aResponse
Un puntero para la respuesta (siempre es no NULL).
[in] aContext
Un puntero para el contexto específico de la aplicación.

otDnsBrowseResponse

struct otDnsBrowseResponse otDnsBrowseResponse

Este tipo es una representación opaca de una respuesta a una consulta de DNS de navegación (enumeración de la instancia de servicio).

Los punteros a instancias de este tipo se proporcionan desde la devolución de llamada otDnsBrowseCallback.

otDnsQueryConfig

struct otDnsQueryConfig otDnsQueryConfig

Esta estructura representa una configuración de consulta de DNS.

Cualquiera de los campos de esta estructura se puede establecer en cero para indicar que no se especifica. La forma en que se tratan los campos no especificados se determina mediante la función que usa la instancia de otDnsQueryConfig.

otDnsServiceCallback

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

Se llama a este puntero de función cuando se recibe una respuesta de DNS para una consulta de resolución de instancia de servicio.

Dentro de esta devolución de llamada, el usuario puede usar las funciones otDnsServiceResponseGet{Item}() junto con el puntero aResponse para obtener más información sobre la respuesta.

El puntero aResponse solo se puede usar dentro de esta devolución de llamada y, cuando regresa de esta función, no será válido. Por lo tanto, el usuario NO DEBE retener el puntero aResponse para usarlo más adelante.

A fin de obtener una lista completa de los valores posibles para aError, consulta otDnsAddressCallback().

Detalles
Parámetros
[in] aError
Es el resultado de la transacción de DNS.
[in] aResponse
Un puntero para la respuesta (siempre es no NULL).
[in] aContext
Un puntero para el contexto específico de la aplicación.

otDnsServiceInfo

struct otDnsServiceInfo otDnsServiceInfo

Esta estructura proporciona información para una instancia del servicio de DNS.

otDnsServiceResponse

struct otDnsServiceResponse otDnsServiceResponse

Este tipo es una representación opaca de una respuesta a una consulta de DNS para la resolución de instancias de servicio.

Los punteros a instancias de este tipo se proporcionan desde la devolución de llamada otDnsAddressCallback.

otDnsTxtEntry

struct otDnsTxtEntry otDnsTxtEntry

Esta estructura representa una entrada de registro TXT que representa un par clave-valor (RFC 6763 - sección 6.3).

Los búferes de string a los que apuntan mKey y mValue DEBEN conservarse y permanecer intactos después de pasar una instancia de esta estructura a OpenThread (como parte de la instancia otSrpClientService).

En otSrpClientService, se usa un arreglo de entradas otDnsTxtEntry para especificar el registro TXT completo (una lista de entradas).

otDnsTxtEntryIterator

struct otDnsTxtEntryIterator otDnsTxtEntryIterator

Esta estructura representa un iterador para todo el registro TXT (pares clave-valor).

Los campos de datos de esta estructura están diseñados para que los use el núcleo de OpenThread y los emisores no deben leerlos ni cambiarlos.

Functions

otDnsAddressResponseGetAddress

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

Esta función obtiene una dirección IPv6 asociada con una respuesta de DNS de resolución de direcciones.

Esta función solo se DEBE usar desde otDnsAddressCallback.

La respuesta puede incluir varios registros de dirección IPv6. aIndex se puede usar para iterar a través de la lista de direcciones. El índice cero obtiene la primera dirección, y así sucesivamente. Cuando llegamos al final de la lista, se muestra OT_ERROR_NOT_FOUND.

Detalles
Parámetros
[in] aResponse
Un puntero para la respuesta.
[in] aIndex
El índice del registro de dirección que se debe recuperar.
[out] aAddress
Un puntero para una dirección IPv6 a fin de generar la dirección (NO DEBE ser NULO).
[out] aTtl
Un puntero para un uint32_t a fin de generar un TTL para la dirección. Puede ser NULO si el llamador no desea obtener el TTL.
Valores que se muestran
OT_ERROR_NONE
La dirección se leyó correctamente.
OT_ERROR_NOT_FOUND
No hay registros de dirección en aResponse a las aIndex.
OT_ERROR_PARSE
No se pudieron analizar los registros de aResponse.
OT_ERROR_INVALID_STATE
Sin prefijo NAT64 (aplicable solo cuando NAT64 está permitido).

otDnsAddressResponseGetHostName

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

Esta función obtiene el nombre de host completo asociado con una respuesta de DNS de resolución de direcciones.

Esta función solo se DEBE usar desde otDnsAddressCallback.

Detalles
Parámetros
[in] aResponse
Un puntero para la respuesta.
[out] aNameBuffer
Es un búfer para enviar caracteres al resultado del nombre completo del host (NO DEBE ser NULO).
[in] aNameBufferSize
El tamaño de aNameBuffer.
Valores que se muestran
OT_ERROR_NONE
El nombre completo del host se leyó correctamente.
OT_ERROR_NO_BUFS
El nombre no cabe en aNameBuffer.

otDnsBrowseResponseGetHostAddress

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

Esta función obtiene la dirección IPv6 del host de una respuesta de navegación de DNS (enumeración de la instancia de servicio).

Esta función solo se DEBE usar desde otDnsBrowseCallback.

La respuesta puede incluir cero o más registros IPv6 de dirección. aIndex se puede usar para iterar a través de la lista de direcciones. El índice cero obtiene la primera dirección, y así sucesivamente. Cuando llegamos al final de la lista, se muestra OT_ERROR_NOT_FOUND.

Detalles
Parámetros
[in] aResponse
Un puntero para la respuesta.
[in] aHostName
El nombre de host para obtener la dirección (NO DEBE ser NULO).
[in] aIndex
El índice del registro de dirección que se debe recuperar.
[out] aAddress
Un puntero para una dirección IPv6 a fin de generar la dirección (NO DEBE ser NULO).
[out] aTtl
Un puntero para un uint32_t a fin de generar un TTL para la dirección. Puede ser NULO si el llamador no desea obtener el TTL.
Valores que se muestran
OT_ERROR_NONE
La dirección se leyó correctamente.
OT_ERROR_NOT_FOUND
No hay registros de dirección para aHostname en aResponse en aIndex.
OT_ERROR_PARSE
No se pudieron analizar los registros de aResponse.

otDnsBrowseResponseGetServiceInfo

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

Esta función obtiene información de una instancia de servicio de una respuesta de navegación de DNS (enumeración de la instancia de servicio).

Esta función solo se DEBE usar desde otDnsBrowseCallback.

Una respuesta de DNS de navegación debe incluir los registros SRV, TXT y AAAA para las instancias de servicio que se enumeran (ten en cuenta que es un DEBE y no es un requisito obligatorio). Esta función intenta recuperar esta información para una instancia de servicio determinada cuando está disponible.

  • Si no se encuentra ningún registro SRV que coincida en aResponse, se muestra OT_ERROR_NOT_FOUND.
  • Si se encuentra un registro SRV coincidente en aResponse, se actualiza aServiceInfo y se muestra OT_ERROR_NONE.
  • Si no se encuentra ningún registro TXT que coincida en aResponse, el valor de mTxtDataSize en aServiceInfo se establece en cero.
  • Si no se encuentra ningún registro AAAA que coincida en aResponse, mHostAddress is set to all zero or unspecified address.
  • If there are multiple AAAA records for the host name in @p aResponse,mHostAddressis set to the first one. The other addresses can be retrieved usingotDnsBrowseResponseGetHostAddress()

Detalles
Parámetros
[in] aResponse
Un puntero para la respuesta.
[in] aInstanceLabel
La etiqueta de la instancia de servicio (NO DEBE ser NULO).
[out] aServiceInfo
Un ServiceInfo para generar la información de la instancia de servicio (NO DEBE ser NULO)
Valores que se muestran
OT_ERROR_NONE
Se leyó la información de la instancia de servicio. Se actualizó aServiceInfo.
OT_ERROR_NOT_FOUND
No se pudo encontrar ningún registro SRV coincidente para aInstanceLabel.
OT_ERROR_NO_BUFS
El nombre del host o los datos TXT no caben en los búferes indicados.
OT_ERROR_PARSE
No se pudieron analizar los registros de aResponse.

otDnsBrowseResponseGetServiceInstance

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

Esta función obtiene una instancia de servicio asociada con una respuesta de navegación de DNS (enumeración de la instancia de servicio).

Esta función solo se DEBE usar desde otDnsBrowseCallback.

La respuesta puede incluir varios registros de instancia de servicio. Se puede usar aIndex para iterar a través de la lista. El índice cero otorga el primer registro. Cuando llegamos al final de la lista, se muestra OT_ERROR_NOT_FOUND.

Ten en cuenta que esta función obtiene la etiqueta de instancia de servicio y no el nombre completo de la instancia de servicio que tiene el formato ...

Detalles
Parámetros
[in] aResponse
Un puntero para la respuesta.
[in] aIndex
El índice de registro de la instancia de servicio que se debe recuperar.
[out] aLabelBuffer
Un búfer para char el arreglo a fin de generar la etiqueta de la instancia de servicio (NO DEBE ser NULO).
[in] aLabelBufferSize
El tamaño de aLabelBuffer.
Valores que se muestran
OT_ERROR_NONE
La instancia de servicio se leyó correctamente.
OT_ERROR_NO_BUFS
El nombre no cabe en aNameBuffer.
OT_ERROR_NOT_FOUND
No hay registros de instancias de servicio en aResponse a las aIndex.
OT_ERROR_PARSE
No se pudieron analizar los registros de aResponse.

otDnsBrowseResponseGetServiceName

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

Esta función obtiene el nombre del servicio asociado con una respuesta de navegación de DNS (enumeración de la instancia de servicio).

Esta función solo se DEBE usar desde otDnsBrowseCallback.

Detalles
Parámetros
[in] aResponse
Un puntero para la respuesta.
[out] aNameBuffer
Un búfer para enviar caracteres al resultado del nombre del servicio (NO DEBE ser NULO).
[in] aNameBufferSize
El tamaño de aNameBuffer.
Valores que se muestran
OT_ERROR_NONE
El nombre del servicio se leyó correctamente.
OT_ERROR_NO_BUFS
El nombre no cabe en aNameBuffer.

otDnsClientBrowse

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

Esta función envía una consulta de navegación de DNS (enumeración de la instancia de servicio) para un nombre de servicio determinado.

Esta función está disponible cuando se habilita OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE.

aConfig puede ser NULO. En este caso, la configuración predeterminada (de otDnsClientGetDefaultConfig()) se usará como la configuración para esta consulta. En un aConfig no NULL, algunos de los campos pueden dejarse sin especificar (valor cero). Los campos no especificados se reemplazan por los valores de la configuración predeterminada.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
[in] aServiceName
El nombre del servicio que se buscará (DEBE no ser NULO).
[in] aCallback
Un puntero de función que se llamará en la recepción de respuesta o tiempo de espera.
[in] aContext
Un puntero para información contextual arbitraria
[in] aConfig
Un puntero para el archivo de configuración que se usará en esta consulta.
Valores que se muestran
OT_ERROR_NONE
La consulta se envió correctamente. Se invocará aCallback para informar el estado.
OT_ERROR_NO_BUFS
No hay suficiente búfer para preparar y enviar la consulta.

otDnsClientGetDefaultConfig

const otDnsQueryConfig * otDnsClientGetDefaultConfig(
  otInstance *aInstance
)

Esta función obtiene la configuración de consulta predeterminada actual que utiliza el cliente de DNS.

Cuando se inicia la pila de OpenThread, la configuración de la consulta de DNS predeterminada se determina a partir de un conjunto de opciones de configuración de OT, como OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_SERVER_IP6_ADDRESS, _DEFAULT_SERVER_PORT, _DEFAULT_RESPONSE_TIMEOUT, etc. (consulta config/dns_client.h para ver todas las opciones de configuración relacionadas).

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
Qué muestra
Un puntero para la configuración predeterminada actual que está usando el cliente de DNS.

otDnsClientResolveAddress

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

Esta función envía una consulta de DNS de resolución de dirección para registros AAAA (IPv6) de un nombre de host determinado.

aConfig puede ser NULO. En este caso, la configuración predeterminada (de otDnsClientGetDefaultConfig()) se usará como la configuración para esta consulta. En un aConfig no NULL, algunos de los campos pueden dejarse sin especificar (valor cero). Los campos no especificados se reemplazan por los valores de la configuración predeterminada.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
[in] aHostName
El nombre de host para el que se consulta la dirección (NO DEBE ser NULO).
[in] aCallback
Un puntero de función que se llamará en la recepción de respuesta o tiempo de espera.
[in] aContext
Un puntero para información contextual arbitraria
[in] aConfig
Un puntero para el archivo de configuración que se usará en esta consulta.
Valores que se muestran
OT_ERROR_NONE
La consulta se envió correctamente. Se invocará aCallback para informar el estado.
OT_ERROR_NO_BUFS
No hay suficiente búfer para preparar y enviar la consulta.
OT_ERROR_INVALID_ARGS
El nombre del host no es un formato válido.
OT_ERROR_INVALID_STATE
No se puede enviar la consulta porque la interfaz de Thread no está activa.

otDnsClientResolveIp4Dirección

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

Esta función envía una consulta de DNS de resolución de dirección para los registros A (IPv4) de un nombre de host determinado.

Esta función requiere y está disponible cuando OPENTHREAD_CONFIG_DNS_CLIENT_NAT64_ENABLE está habilitado.

Cuando se recibe una respuesta correcta, las direcciones se muestran desde aCallback como versiones traducidas IPv6 de NAT64 de las direcciones IPv4 de la respuesta de la consulta.

aConfig puede ser NULO. En este caso, la configuración predeterminada (de otDnsClientGetDefaultConfig()) se usará como la configuración para esta consulta. En un aConfig no NULL, algunos de los campos pueden dejarse sin especificar (valor cero). Los campos no especificados se reemplazan por los valores de la configuración predeterminada.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
[in] aHostName
El nombre de host para el que se consulta la dirección (NO DEBE ser NULO).
[in] aCallback
Un puntero de función que se llamará en la recepción de respuesta o tiempo de espera.
[in] aContext
Un puntero para información contextual arbitraria
[in] aConfig
Un puntero para el archivo de configuración que se usará en esta consulta.
Valores que se muestran
OT_ERROR_NONE
La consulta se envió correctamente. Se invocará aCallback para informar el estado.
OT_ERROR_NO_BUFS
No hay suficiente búfer para preparar y enviar la consulta.
OT_ERROR_INVALID_ARGS
El nombre del host no tiene un formato válido o NAT64 no está habilitado en la configuración.
OT_ERROR_INVALID_STATE
No se puede enviar la consulta porque la interfaz de Thread no está activa.

otDnsClientResolveService

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

Esta función envía una consulta de resolución de instancias de servicio de DNS para una instancia de servicio determinada.

Esta función está disponible cuando se habilita OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE.

aConfig puede ser NULO. En este caso, la configuración predeterminada (de otDnsClientGetDefaultConfig()) se usará como la configuración para esta consulta. En un aConfig no NULL, algunos de los campos pueden dejarse sin especificar (valor cero). Los campos no especificados se reemplazan por los valores de la configuración predeterminada.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
[in] aInstanceLabel
Es la etiqueta de la instancia de servicio.
[in] aServiceName
El nombre del servicio (junto con aInstanceLabel, el nombre completo de la instancia).
[in] aCallback
Un puntero de función que se llamará en la recepción de respuesta o tiempo de espera.
[in] aContext
Un puntero para información contextual arbitraria
[in] aConfig
Un puntero para el archivo de configuración que se usará en esta consulta.
Valores que se muestran
OT_ERROR_NONE
La consulta se envió correctamente. Se invocará aCallback para informar el estado.
OT_ERROR_NO_BUFS
No hay suficiente búfer para preparar y enviar la consulta.
OT_ERROR_INVALID_ARGS
aInstanceLabel es NULO.

otDnsClientSetDefaultConfig

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

Esta función establece la configuración de consultas predeterminada en el cliente de DNS.

Nota: Cualquier consulta en curso seguirá usando la configuración desde que se inició. La nueva configuración predeterminada se usará para cualquier consulta de DNS en el futuro. aConfig puede ser NULO. En este caso, la configuración predeterminada se establecerá en los valores predeterminados de las opciones de configuración de OT OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_{}. Esto restablece la configuración de consulta predeterminada a la configuración cuando se inicia la pila de OpenThread.

En un aConfig no NULL, el emisor puede optar por dejar algunos de los campos en la instancia otDnsQueryConfig sin especificar (valor cero). Los campos no especificados se reemplazan por las definiciones de la opción de configuración del OT correspondientes OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_{} para formar la configuración de consulta predeterminada.

Cuando se habilita OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_SERVER_ADDRESS_AUTO_SET_ENABLE, el cliente de DNS establece y actualiza automáticamente la dirección IPv6 del servidor en la configuración predeterminada. Esto se realiza solo cuando el usuario no la establece o no la especifica explícitamente. Este comportamiento requiere que el cliente SRP y su función de inicio automático estén habilitadas. Luego, el cliente de SRP supervisará los datos de la red de Thread para entradas del servicio de DNS/SRP a fin de seleccionar un servidor de SRP. La dirección del servidor SRP seleccionada también se configura como la dirección del servidor DNS en la configuración predeterminada.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
[in] aConfig
Un puntero para la nueva configuración de consulta que se usará de forma predeterminada.

otDnsGetNextTxtEntry

otError otDnsGetNextTxtEntry(
  otDnsTxtEntryIterator *aIterator,
  otDnsTxtEntry *aEntry
)

Esta función analiza los datos TXT de un iterador y obtiene la siguiente entrada de registro TXT (par clave-valor).

aIterator DEBE inicializarse con otDnsInitTxtEntryIterator() antes de llamar a esta función, y el búfer de datos TXT que se usa para inicializar el iterador DEBE conservar y permanecer sin cambios. De lo contrario, el comportamiento de esta función no está definido.

Si la longitud de la string de la clave analizada es menor o igual que OT_DNS_TXT_KEY_MAX_LENGTH (la longitud máxima recomendada de la clave) se muestra en mKey en aEntry. Sin embargo, si la clave es más larga, se establece mKey en NULL y se muestra toda la string de entrada TXT codificada en mValue y mValueLength.

Detalles
Parámetros
[in] aIterator
Un puntero al iterador (NO DEBE ser NULO).
[out] aEntry
Un puntero para una estructura otDnsTxtEntry a fin de generar la entrada analizada o leída (NO DEBE ser NULO).
Valores que se muestran
OT_ERROR_NONE
Se analizó correctamente la siguiente entrada. Se actualizó aEntry.
OT_ERROR_NOT_FOUND
No hay más entradas en los datos TXT.
OT_ERROR_PARSE
Los datos en TXT de aIterator no están bien formados.

otDnsInitTxtEntryIterator

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

Esta función inicializa un iterador de registro TXT.

El puntero del búfer aTxtData y su contenido DEBEN conservar y permanecer sin cambios mientras se usa el objeto aIterator.

Detalles
Parámetros
[in] aIterator
Un puntero al iterador que se inicializará (NO DEBE ser NULO).
[in] aTxtData
Un puntero para búfer que contiene los datos TXT codificados.
[in] aTxtDataLength
Longitud (cantidad de bytes) de aTxtData

otDnsIsNameCompressionEnabled

bool otDnsIsNameCompressionEnabled(
  void
)

Esta función indica si el modo de compresión de nombres de DNS está habilitado o no.

Esto está diseñado solo para pruebas y está disponible cuando se habilita la configuración OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE.

Detalles
Qué muestra
VERDADERO si el modo de compresión de nombres de DNS está habilitado, de lo contrario, se configura como FALSO.

otDnsServiceResponseGetHostAddress

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

Esta función obtiene la dirección IPv6 del host de una respuesta de resolución de instancia de servicio de DNS.

Esta función solo se DEBE usar desde otDnsServiceCallback.

La respuesta puede incluir cero o más registros IPv6 de dirección. aIndex se puede usar para iterar a través de la lista de direcciones. El índice cero obtiene la primera dirección, y así sucesivamente. Cuando llegamos al final de la lista, se muestra OT_ERROR_NOT_FOUND.

Detalles
Parámetros
[in] aResponse
Un puntero para la respuesta.
[in] aHostName
El nombre de host para obtener la dirección (NO DEBE ser NULO).
[in] aIndex
El índice del registro de dirección que se debe recuperar.
[out] aAddress
Un puntero para una dirección IPv6 a fin de generar la dirección (NO DEBE ser NULO).
[out] aTtl
Un puntero para un uint32_t a fin de generar un TTL para la dirección. Puede ser NULO si el llamador no desea obtener el TTL.
Valores que se muestran
OT_ERROR_NONE
La dirección se leyó correctamente.
OT_ERROR_NOT_FOUND
No hay registros de dirección para aHostname en aResponse en aIndex.
OT_ERROR_PARSE
No se pudieron analizar los registros de aResponse.

otDnsServiceResponseGetServiceInfo

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

Esta función obtiene información de una instancia de servicio a partir de una respuesta de resolución de instancias de servicio de DNS.

Esta función solo se DEBE usar desde otDnsServiceCallback.

  • Si no se encuentra ningún registro SRV que coincida en aResponse, se muestra OT_ERROR_NOT_FOUND.
  • Si se encuentra un registro SRV coincidente en aResponse, se actualiza aServiceInfo y se muestra OT_ERROR_NONE.
  • Si no se encuentra ningún registro TXT que coincida en aResponse, el valor de mTxtDataSize en aServiceInfo se establece en cero.
  • Si no se encuentra ningún registro AAAA que coincida en aResponse, mHostAddress is set to all zero or unspecified address.
  • If there are multiple AAAA records for the host name in @p aResponse,mHostAddressis set to the first one. The other addresses can be retrieved usingotDnsServiceResponseGetHostAddress()`.

Detalles
Parámetros
[in] aResponse
Un puntero para la respuesta.
[out] aServiceInfo
Un ServiceInfo para generar la información de la instancia de servicio (NO DEBE ser NULO)
Valores que se muestran
OT_ERROR_NONE
Se leyó la información de la instancia de servicio. Se actualizó aServiceInfo.
OT_ERROR_NOT_FOUND
No se pudo encontrar ningún registro SRV en aResponse.
OT_ERROR_NO_BUFS
El nombre del host o los datos TXT no caben en los búferes indicados.
OT_ERROR_PARSE
No se pudieron analizar los registros de aResponse.

otDnsServiceResponseGetServiceName

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

Esta función obtiene el nombre de la instancia de servicio asociado con una respuesta de resolución de instancia de servicio de DNS.

Esta función solo se DEBE usar desde otDnsServiceCallback.

Detalles
Parámetros
[in] aResponse
Un puntero para la respuesta.
[out] aLabelBuffer
Un búfer para char el arreglo a fin de generar la etiqueta de la instancia de servicio (NO DEBE ser NULO).
[in] aLabelBufferSize
El tamaño de aLabelBuffer.
[out] aNameBuffer
Es un búfer que usará la matriz de caracteres para la salida del resto del nombre del servicio (puede ser NULO si el usuario no está interesado en obtener el nombre).
[in] aNameBufferSize
El tamaño de aNameBuffer.
Valores que se muestran
OT_ERROR_NONE
El nombre del servicio se leyó correctamente.
OT_ERROR_NO_BUFS
El nombre o la etiqueta no caben en los búferes indicados.

otDnsSetNameCompressionEnabled

void otDnsSetNameCompressionEnabled(
  bool aEnabled
)

Esta función habilita o inhabilita el modo de compresión de nombres de DNS.

La compresión de nombres de DNS está habilitada de forma predeterminada. Cuando se inhabilita, los nombres de DNS se agregan como completos y nunca se comprimen. Esto se aplica a los módulos cliente y de servidor de DNS y SRP de OpenThread.

Esto está diseñado solo para pruebas y está disponible cuando se habilita la configuración OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE.

Ten en cuenta que, en caso de que se use OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_ENABLE, este modo se aplica a todas las instancias de OpenThread (es decir, llamar a esta función habilita o inhabilita el modo de compresión en todas las instancias de OpenThread).

Detalles
Parámetros
[in] aEnabled
TRUE para habilitar el modo de compresión de nombre de DNS: FALSE para inhabilitarlo.

Macros

OT_DNS_MAX_LABEL_SIZE

 OT_DNS_MAX_LABEL_SIZE 64

Tamaño máximo de la string de etiquetas (incluye un carácter nulo al final de la string).

OT_DNS_MAX_NAME_SIZE

 OT_DNS_MAX_NAME_SIZE 255

Tamaño máximo de la string de nombre (incluye el carácter nulo en el final de la string).

OT_DNS_TXT_KEY_MAX_LENGTH

 OT_DNS_TXT_KEY_MAX_LENGTH 9

Longitud máxima recomendada de la string de clave de registro TXT (RFC 6763, sección 6.4).

OT_DNS_TXT_KEY_MIN_LENGTH

 OT_DNS_TXT_KEY_MIN_LENGTH 1

Longitud mínima de la string de la clave de registro TXT (RFC 6763, sección 6.4).

Recursos

Los temas de referencia de la API de OpenThread se originan en el código fuente, disponible en GitHub. Para obtener más información o colaborar con nuestra documentación, consulta Recursos.