Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.
Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

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 un 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 de resolución de dirección.
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 consulta 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 de servicio de DNS.
otDnsServiceResponse typedef
Este tipo es una representación opaca de una respuesta a una consulta de DNS de resolución de instancia 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 conjuntos de registros TXT (pares clave-valor).

Funciones

otDnsAddressResponseGetAddress(const otDnsAddressResponse *aResponse, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
Esta función obtiene una dirección IPv6 asociada con una respuesta DNS de resolución de dirección.
otDnsAddressResponseGetHostName(const otDnsAddressResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize)
Esta función obtiene el nombre de host completo asociado con una respuesta DNS de resolución de dirección.
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 exploració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 para una instancia de servicio a partir de una respuesta de exploració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 exploració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 exploració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 exploració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 usa 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 los 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 consulta 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 registros 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 instancia 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 instancias 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 de 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 conjuntos de registros TXT (pares clave-valor).

Enumeraciones

otDnsNat64Mode

 otDnsNat64Mode

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

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

Propiedades
OT_DNS_NAT64_ALLOW

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

OT_DNS_NAT64_DISALLOW

No permitir la traducción de direcciones NAT64 durante la resolución de direcciones de 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.

Propiedades
OT_DNS_FLAG_NO_RECURSION

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

OT_DNS_FLAG_RECURSION_DESIRED

Indica que el servidor de nombres de 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.

En esta devolución de llamada, el usuario puede usar 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, después de regresar de esta función, no seguirá siendo válido, por lo que 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 no es NULL).
[in] aContext
Un puntero al contexto específico de la aplicación.

  • OT_ERROR_NONE La respuesta se recibió correctamente.
  • OT_ERROR_ABORT La pila anuló una transacción de DNS.
  • OT_ERROR_RESPONSE_TIMEOUT No se recibió ninguna respuesta DNS dentro del tiempo de espera.

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

  • (0) ERROR correcto (sin condición de error) -> OT_ERROR_NONE
  • (1) El servidor de FORMERR no puede interpretar la operación debido a un error de formato -> OT_ERROR_PARSE
  • (2) SERVFAIL El servidor ha detectado un error interno -> OT_ERROR_FAILED
  • (3) Nombre de NXDOMAIN que debería existir, no existe -> OT_ERROR_NOT_FOUND
  • (4) El servidor NOTIMP no admite el tipo de consulta (OpCode). -> OT_ERROR_NOT_IMPLEMENTED
  • (5) REFUSED El servidor se rechazó por motivos relacionados con la política o la seguridad -> OT_ERROR_SECURITY
  • (6) YXDOMAIN Algunos nombres que no deben existir, existen -> OT_ERROR_DUPLICATED
  • (7) YXRRSET Algunos conjuntos de RR que no deben existir existen -> OT_ERROR_DUPLICATED
  • (8) NXRRSET Algunos RRset que deberían existir no existen -> OT_ERROR_NOT_FOUND
  • (9) El servicio NOTAUTH no está autorizado para la zona -> OT_ERROR_SECURITY
  • (10) NOTZONE Un nombre no está en la zona -> OT_ERROR_PARSE
  • (20) BADNAME Nombre erróneo -> OT_ERROR_PARSE
  • (21) Algoritmo BADALG erróneo - OT_ERROR_SECURITY
  • (22) BADTRUN Mal truncamiento -> OT_ERROR_PARSE
  • Otros códigos de respuesta -> OT_ERROR_FAILED

otDnsAddressResponse

struct otDnsAddressResponse otDnsAddressResponse

Este tipo es una representación opaca de una respuesta a una consulta de DNS de resolución de dirección.

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 consulta de navegación (enumeración de la instancia de servicio).

En esta devolución de llamada, el usuario puede usar 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, después de regresar de esta función, no seguirá siendo válido, por lo que el usuario NO DEBE retener el puntero aResponse para usarlo más adelante.

Para obtener una lista completa de los valores posibles de 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 no es NULL).
[in] aContext
Un puntero al 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 especificó. 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.

En esta devolución de llamada, el usuario puede usar 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, después de regresar de esta función, no seguirá siendo válido, por lo que el usuario NO DEBE retener el puntero aResponse para usarlo más adelante.

Para obtener una lista completa de los valores posibles de 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 no es NULL).
[in] aContext
Un puntero al contexto específico de la aplicación.

otDnsServiceInfo

struct otDnsServiceInfo otDnsServiceInfo

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

otDnsServiceResponse

struct otDnsServiceResponse otDnsServiceResponse

Este tipo es una representación opaca de una respuesta a una consulta de DNS de resolución de instancia 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 apunta mKey y mValue DEBEN conservar y permanecer intactos después de que una instancia de esa estructura se pasa 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 conjuntos de registros 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 el emisor no debe leerlos ni modificarlos.

Funciones

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 DNS de resolución de dirección.

Esta función solo 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 direcciones que se recuperará.
[out] aAddress
Un puntero para una dirección IPv6 que muestra la dirección (NO DEBE ser NULO).
[out] aTtl
Un puntero para un uint32_t a fin de generar TTL para la dirección. Puede ser NULO si el emisor no desea obtener el TTL.
Valores de retorno
OT_ERROR_NONE
La dirección se ha leído correctamente.
OT_ERROR_NOT_FOUND
No hay ningún registro 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 se permite NAT64).

otDnsAddressResponseGetHostName

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

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

Esta función solo DEBE usar desde otDnsAddressCallback.

Detalles
Parámetros
[in] aResponse
Un puntero para la respuesta.
[out] aNameBuffer
Un búfer para mostrar un arreglo que da como resultado el nombre completo del host (NO DEBE ser NULO).
[in] aNameBufferSize
El tamaño de aNameBuffer.
Valores de retorno
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 exploración de DNS (enumeración de la instancia de servicio).

Esta función solo DEBE usar desde otDnsBrowseCallback.

La respuesta puede incluir cero o más 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] aHostName
El nombre de host para obtener la dirección (NO DEBE ser NULO).
[in] aIndex
El índice del registro de direcciones que se recuperará.
[out] aAddress
Un puntero para una dirección IPv6 que muestra la dirección (NO DEBE ser NULO).
[out] aTtl
Un puntero para un uint32_t a fin de generar TTL para la dirección. Puede ser NULO si el emisor no desea obtener el TTL.
Valores de retorno
OT_ERROR_NONE
La dirección se ha leído correctamente.
OT_ERROR_NOT_FOUND
No hay ningún registro de dirección para aHostname en aResponse a 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 para una instancia de servicio a partir de una respuesta de exploración de DNS (enumeración de la instancia de servicio).

Esta función solo 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 DEBE y no es 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, 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 de retorno
OT_ERROR_NONE
Se leyó la información de la instancia de servicio. Se actualizó aServiceInfo.
OT_ERROR_NOT_FOUND
No se encontró ningún registro de SRV que coincida con aInstanceLabel.
OT_ERROR_NO_BUFS
El nombre de host o los datos TXT no caben en los búferes dados.
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 exploración de DNS (enumeración de la instancia de servicio).

Esta función solo DEBE usar desde otDnsBrowseCallback.

La respuesta puede incluir varios registros de instancias de servicio. aIndex se puede usar 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 recuperará.
[out] aLabelBuffer
Un búfer para aplicar caracteres a la salida a fin de generar la etiqueta de la instancia de servicio (NO DEBE ser NULO).
[in] aLabelBufferSize
El tamaño de aLabelBuffer.
Valores de retorno
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.

otDnsBrowseResponseGetGetName

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

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

Esta función solo 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 de retorno
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 exploració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, se usará la configuración predeterminada (de otDnsClientGetDefaultConfig()) para esta consulta. En una aConfig no NULL, algunos de los campos pueden dejarse sin especificar (valor cero). Los campos sin especificar 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 debe consultar (NO DEBE ser NULO).
[in] aCallback
Un puntero de función que se llamará en la recepción de la respuesta o en el tiempo de espera.
[in] aContext
Un puntero a información contextual arbitraria.
[in] aConfig
Un puntero para la configuración que se usará en esta consulta.
Valores de retorno
OT_ERROR_NONE
La consulta se envió correctamente. Se invocará a aCallback para informar el estado.
OT_ERROR_NO_BUFS
El búfer es insuficiente para preparar y enviar la consulta.

otDnsClientGetDefaultConfig

const otDnsQueryConfig * otDnsClientGetDefaultConfig(
  otInstance *aInstance
)

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

Cuando se inicia la pila de OpenThread, la configuración de 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 obtener 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 los registros AAAA (IPv6) de un nombre de host determinado.

aConfig puede ser NULO. En este caso, se usará la configuración predeterminada (de otDnsClientGetDefaultConfig()) para esta consulta. En una aConfig no NULL, algunos de los campos pueden dejarse sin especificar (valor cero). Los campos sin especificar 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 consultará la dirección (NO DEBE ser NULO).
[in] aCallback
Un puntero de función que se llamará en la recepción de la respuesta o en el tiempo de espera.
[in] aContext
Un puntero a información contextual arbitraria.
[in] aConfig
Un puntero para la configuración que se usará en esta consulta.
Valores de retorno
OT_ERROR_NONE
La consulta se envió correctamente. Se invocará a aCallback para informar el estado.
OT_ERROR_NO_BUFS
El búfer es insuficiente para preparar y enviar la consulta.
OT_ERROR_INVALID_ARGS
El nombre de 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.

Dirección otDnsClientResolveIp4

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 exitosa, las direcciones se muestran desde aCallback como versiones traducidas NAT64 de las direcciones IPv4 de la respuesta a la consulta.

aConfig puede ser NULO. En este caso, se usará la configuración predeterminada (de otDnsClientGetDefaultConfig()) para esta consulta. En una aConfig no NULL, algunos de los campos pueden dejarse sin especificar (valor cero). Los campos sin especificar 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 consultará la dirección (NO DEBE ser NULO).
[in] aCallback
Un puntero de función que se llamará en la recepción de la respuesta o en el tiempo de espera.
[in] aContext
Un puntero a información contextual arbitraria.
[in] aConfig
Un puntero para la configuración que se usará en esta consulta.
Valores de retorno
OT_ERROR_NONE
La consulta se envió correctamente. Se invocará a aCallback para informar el estado.
OT_ERROR_NO_BUFS
El búfer es insuficiente para preparar y enviar la consulta.
OT_ERROR_INVALID_ARGS
El nombre de 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, se usará la configuración predeterminada (de otDnsClientGetDefaultConfig()) para esta consulta. En una aConfig no NULL, algunos de los campos pueden dejarse sin especificar (valor cero). Los campos sin especificar se reemplazan por los valores de la configuración predeterminada.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
[in] aInstanceLabel
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 la respuesta o en el tiempo de espera.
[in] aContext
Un puntero a información contextual arbitraria.
[in] aConfig
Un puntero para la configuración que se usará en esta consulta.
Valores de retorno
OT_ERROR_NONE
La consulta se envió correctamente. Se invocará a aCallback para informar el estado.
OT_ERROR_NO_BUFS
El búfer es insuficiente 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 consulta predeterminada en el cliente de DNS.

Nota: Cualquier consulta en curso continuará usando la configuración desde que se inició. Se usará la nueva configuración predeterminada para futuras consultas de DNS. aConfig puede ser NULO. En este caso, la configuración predeterminada se establecerá con 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 NULO, el emisor puede optar por dejar algunos de los campos en la instancia otDnsQueryConfig sin especificar (valor cero). Los campos sin especificar se reemplazan por las definiciones de opción de configuración de 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 del 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 lo establece o especifica de manera explícita. Este comportamiento requiere que el cliente SRP y su función de inicio automático estén habilitadas. Luego, el cliente SRP supervisará los datos de red de subprocesos para las entradas del servicio DNS/SRP a fin de seleccionar un servidor 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 configuración de consulta nueva que se usará como 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 persistir y no modificarse. De lo contrario, el comportamiento de esta función no está definido.

Si la longitud de la string de clave analizada es menor o igual que OT_DNS_TXT_KEY_MAX_LENGTH (longitud máxima de la clave recomendada), se muestra la string de clave en mKey en aEntry. Sin embargo, si la clave es más larga, se establece mKey como 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 de retorno
OT_ERROR_NONE
La siguiente entrada se analizó correctamente. Se actualizó aEntry.
OT_ERROR_NOT_FOUND
No hay más entradas en los datos TXT.
OT_ERROR_PARSE
Los datos TXT de aIterator no tienen el formato correcto.

otDnsInitTxtEntryIterator

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

Esta función inicializa un iterador de registros TXT.

El puntero del búfer aTxtData y su contenido DEBEN conservar y permanecer intactos 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 almacenar en búfer los datos TXT codificados.
[in] aTxtDataLength
La 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 de OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE.

Detalles
Qué muestra
VERDADERO si el modo de compresión de nombres de DNS está habilitado; de lo contrario, está establecido en 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 DEBE usar desde otDnsServiceCallback.

La respuesta puede incluir cero o más 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] aHostName
El nombre de host para obtener la dirección (NO DEBE ser NULO).
[in] aIndex
El índice del registro de direcciones que se recuperará.
[out] aAddress
Un puntero para una dirección IPv6 que muestra la dirección (NO DEBE ser NULO).
[out] aTtl
Un puntero para un uint32_t a fin de generar TTL para la dirección. Puede ser NULO si el emisor no desea obtener el TTL.
Valores de retorno
OT_ERROR_NONE
La dirección se ha leído correctamente.
OT_ERROR_NOT_FOUND
No hay ningún registro de dirección para aHostname en aResponse a 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 instancia de servicio de DNS.

Esta función solo 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, 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 de retorno
OT_ERROR_NONE
Se leyó la información de la instancia de servicio. Se actualizó aServiceInfo.
OT_ERROR_NOT_FOUND
No se encontró ningún registro SRV que coincida en aResponse.
OT_ERROR_NO_BUFS
El nombre de host o los datos TXT no caben en los búferes dados.
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 instancias de servicio de DNS.

Esta función solo DEBE usar desde otDnsServiceCallback.

Detalles
Parámetros
[in] aResponse
Un puntero para la respuesta.
[out] aLabelBuffer
Un búfer para aplicar caracteres a la salida a fin de generar la etiqueta de la instancia de servicio (NO DEBE ser NULO).
[in] aLabelBufferSize
El tamaño de aLabelBuffer.
[out] aNameBuffer
Un búfer para agregar caracteres a 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 de retorno
OT_ERROR_NONE
El nombre del servicio se leyó correctamente.
OT_ERROR_NO_BUFS
La etiqueta o el nombre no caben en los búferes dados.

otDnsSetNameCompressionEnabled

void otDnsSetNameCompressionEnabled(
  bool aEnabled
)

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

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

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

Ten en cuenta que, en el caso de que se use OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_ENABLE, este modo se aplica a todas las instancias de OpenThread (es decir, cuando se llama a esta función se 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 nombres de DNS; FALSE para inhabilitarlo.

Macros

TS_DNS_MAX_LABEL_SIZE

 OT_DNS_MAX_LABEL_SIZE 64

Tamaño máximo de la string de la etiqueta (incluye el carácter nulo al final de la string)

TS_DNS_MAX_NAME_SIZE

 OT_DNS_MAX_NAME_SIZE 255

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

TS_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).

TS_DNS_TXT_KEY_MIN_LENGTH

 OT_DNS_TXT_KEY_MIN_LENGTH 1

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

Recursos

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