DNS
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{
|
Enum El tipo representa el modo NAT64 en un otDnsQueryConfig . |
otDnsRecursionFlag{
|
Enum El tipo representa la marca "Recursion Desired" (RD) en una otDnsQueryConfig . |
otDnsServiceMode{
|
Enum El tipo representa el modo de resolución del servicio en un otDnsQueryConfig . |
otDnsTransportProto{
|
Enum El tipo representa el protocolo de transporte de DNS en un otDnsQueryConfig . |
Typedefs |
|
---|---|
otDnsAddressCallback)(otError aError, const otDnsAddressResponse *aResponse, void *aContext)
|
typedefvoid(*
Se llama al puntero cuando se recibe una respuesta de DNS para una consulta de resolución de dirección. |
otDnsAddressResponse
|
typedefstruct otDnsAddressResponse
Una representación opaca de una respuesta a una consulta de DNS de resolución de direcciones. |
otDnsBrowseCallback)(otError aError, const otDnsBrowseResponse *aResponse, void *aContext)
|
typedefvoid(*
Se llama al puntero cuando se recibe una respuesta de DNS para una consulta de navegación (enumeración de la instancia de servicio). |
otDnsBrowseResponse
|
typedefstruct otDnsBrowseResponse
Una representación opaca de una respuesta a una consulta de DNS de navegación (enumeración de la instancia de servicio). |
otDnsQueryConfig
|
typedefstruct otDnsQueryConfig
Representa una configuración de consulta de DNS. |
otDnsServiceCallback)(otError aError, const otDnsServiceResponse *aResponse, void *aContext)
|
typedefvoid(*
Se llama al puntero cuando se recibe una respuesta de DNS para una consulta de resolución de una instancia de servicio. |
otDnsServiceInfo
|
typedefstruct otDnsServiceInfo
Proporciona información para una instancia de servicio de DNS. |
otDnsServiceResponse
|
typedefstruct otDnsServiceResponse
Una representación opaca de una respuesta a una consulta de DNS de resolución de instancias de servicio. |
otDnsTxtEntry
|
typedefstruct otDnsTxtEntry
Representa una entrada de registro TXT que representa un par clave-valor (RFC 6763, sección 6.3). |
otDnsTxtEntryIterator
|
typedefstruct otDnsTxtEntryIterator
Representa un iterador para entradas de registros TXT (pares clave-valor). |
Funciones |
|
---|---|
otDnsAddressResponseGetAddress(const otDnsAddressResponse *aResponse, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
|
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)
|
Obtiene el nombre completo del host 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)
|
Obtiene la dirección IPv6 del host desde una respuesta de exploración de DNS (enumeración de la instancia de servicio).
|
otDnsBrowseResponseGetServiceInfo(const otDnsBrowseResponse *aResponse, const char *aInstanceLabel, otDnsServiceInfo *aServiceInfo)
|
Obtiene información de 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)
|
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)
|
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)
|
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)
|
const otDnsQueryConfig *
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)
|
Envía una consulta de DNS de resolución de direcciones para registros AAAA (IPv6) de un nombre de host determinado.
|
otDnsClientResolveIp4Address(otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
Envía una consulta de DNS de resolución de direcciones para 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)
|
Inicia la resolución de una instancia de servicio de DNS para una instancia de servicio determinada.
|
otDnsClientResolveServiceAndHostAddress(otInstance *aInstance, const char *aInstanceLabel, const char *aServiceName, otDnsServiceCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
Inicia la resolución de una instancia de servicio de DNS para una instancia de servicio determinada, con una posible resolución de dirección de seguimiento para el nombre de host descubierto para la instancia de servicio.
|
otDnsClientSetDefaultConfig(otInstance *aInstance, const otDnsQueryConfig *aConfig)
|
void
Establece la configuración de consulta predeterminada en el cliente de DNS.
|
otDnsEncodeTxtData(const otDnsTxtEntry *aTxtEntries, uint16_t aNumTxtEntries, uint8_t *aTxtData, uint16_t *aTxtDataLength)
|
Codifica una lista determinada de entradas de registro TXT (pares clave-valor) en datos TXT (según el formato que especifica RFC 6763).
|
otDnsGetNextTxtEntry(otDnsTxtEntryIterator *aIterator, otDnsTxtEntry *aEntry)
|
Analiza los datos TXT de un iterador y obtiene la siguiente entrada del registro TXT (par clave-valor).
|
otDnsInitTxtEntryIterator(otDnsTxtEntryIterator *aIterator, const uint8_t *aTxtData, uint16_t aTxtDataLength)
|
void
Inicializa un iterador de registros TXT.
|
otDnsIsNameCompressionEnabled(void)
|
bool
Indica si el modo "Compresión de nombres DNS" está habilitado o no.
|
otDnsServiceResponseGetHostAddress(const otDnsServiceResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
|
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)
|
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)
|
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
Habilita o inhabilita el modo "Compresión de nombres DNS".
|
Structs |
|
---|---|
otDnsQueryConfig; |
Representa una configuración de consulta de DNS. |
otDnsServiceInfo; |
Proporciona información para una instancia de servicio de DNS. |
otDnsTxtEntry |
Representa una entrada de registro TXT que representa un par clave-valor (RFC 6763, sección 6.3). |
otDnsTxtEntryIterator |
Representa un iterador para entradas de registros TXT (pares clave-valor). |
Enumeraciones
otDnsNat64Modo
otDnsNat64Mode
El tipo 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 direcciones cliente de DNS. Este modo solo se usa cuando OPENTHREAD_CONFIG_DNS_CLIENT_NAT64_ENABLE
está habilitado.
Propiedades | |
---|---|
OT_DNS_NAT64_ALLOW
|
Permitir la traducción de direcciones NAT64 durante la resolución de direcciones cliente de DNS |
OT_DNS_NAT64_DISALLOW
|
No permitir la traducción de direcciones NAT64 durante la resolución de direcciones del cliente de DNS |
OT_DNS_NAT64_UNSPECIFIED
|
No se especificó el modo NAT64. Usa el modo predeterminado NAT64. |
otDReResionsionFlag
otDnsRecursionFlag
El tipo representa la marca "Recursion Desired" (RD) en una otDnsQueryConfig
.
Propiedades | |
---|---|
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 no se especificó la marca. |
oDsServiceMode
otDnsServiceMode
El tipo representa el modo de resolución del servicio en un otDnsQueryConfig
.
Solo se usa durante la resolución de servicio del cliente de DNS otDnsClientResolveService()
. Determina qué tipos de registros se deben consultar.
Propiedades | |
---|---|
OT_DNS_SERVICE_MODE_SRV
|
Consulta solo para el registro SRV. |
OT_DNS_SERVICE_MODE_SRV_TXT
|
Consulta los registros SRV y TXT en el mismo mensaje. |
OT_DNS_SERVICE_MODE_SRV_TXT_OPTIMIZE
|
Primero consulta si hay TXT/SRV juntos; de lo contrario, consulta por separado. |
OT_DNS_SERVICE_MODE_SRV_TXT_SEPARATE
|
Realiza consultas en paralelo para SRV y TXT mediante mensajes separados. |
OT_DNS_SERVICE_MODE_TXT
|
Consulta solo para el registro TXT. |
OT_DNS_SERVICE_MODE_UNSPECIFIED
|
No se especificó el modo. Usa el modo de servicio predeterminado. |
oDsTransportProto
otDnsTransportProto
El tipo representa el protocolo de transporte de DNS en un otDnsQueryConfig
.
Este OT_DNS_TRANSPORT_TCP
solo se admite cuando OPENTHREAD_CONFIG_DNS_CLIENT_OVER_TCP_ENABLE
está habilitado.
Propiedades | |
---|---|
OT_DNS_TRANSPORT_TCP
|
La consulta de DNS se debe enviar a través de UDP. |
OT_DNS_TRANSPORT_UDP
|
El transporte de DNS no está especificado. |
Typedefs
otDnsAddressCallback
void(* otDnsAddressCallback)(otError aError, const otDnsAddressResponse *aResponse, void *aContext)
Se llama al puntero 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 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, 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 |
|
- OT_ERROR_NONE Recibimos una respuesta.
- OT_ERROR_ABORT La pila anuló una transacción de DNS.
- OT_ERROR_RESPONSE_TIMEOUT No se recibió ninguna respuesta de DNS dentro del tiempo de espera.
Si el servidor rechaza la resolución de la dirección, el código de error del servidor se asigna de la siguiente manera:
- (0) SIN ERROR (sin condición de error) -> OT_ERROR_NONE
- (1) El servidor de FORMERR no puede interpretarse debido a un error de formato -> OT_ERROR_PARSE
- (2) El servidor SERVFAIL encontró un error interno -> OT_ERROR_FAILED
- (3) Nombre de NXDOMAIN que debe existir, no existe -> OT_ERROR_NOT_FOUND
- (4) El servidor NOTIMP no admite el tipo de consulta (Código de Op) -> OT_ERROR_NOT_IMPLEMENTED
- (5) REFUSED Server se rechazó por motivos de política o seguridad -> OT_ERROR_SECURITY
- (6) YXDOMAIN El nombre que no debe existir, existe -> OT_ERROR_DUPLICATED
- (7) YXRRSET Si bien hay un RRset que no debería existir, existe -> OT_ERROR_DUPLICATED
- (8) NXRRSET Algunos RRset que deberían existir, no existen -> OT_ERROR_NOT_FOUND
- (9) El servicio NOTAUTH no es autorizado para la zona -> OT_ERROR_SECURITY
- (10) NOTZONE Un nombre no está en la zona -> OT_ERROR_PARSE
- (20) BADNAME Nombre incorrecto -> OT_ERROR_PARSE
- (21) Algoritmo incorrecto de BADALG -> OT_ERROR_SECURITY
- (22) BADTRUN Mal truncado -> OT_ERROR_PARSE
- Otros códigos de respuesta -> OT_ERROR_FAILED
otDnsAddressResponse
struct otDnsAddressResponse otDnsAddressResponse
Una representación opaca de una respuesta a una consulta de DNS de 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 al puntero 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 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, 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 la lista completa de posibles valores de aError
, consulta otDnsAddressCallback()
.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
otDnsBrowseResponse
struct otDnsBrowseResponse otDnsBrowseResponse
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
.
oDsQueryConfig
struct otDnsQueryConfig otDnsQueryConfig
Representa una configuración de consulta de DNS.
Cualquiera de los campos en esta estructura se puede establecer en cero para indicar que no se especifica. La forma en que se tratan los campos sin especificar se determina con la función que usa la instancia de otDnsQueryConfig
.
otDnsServiceCallback
void(* otDnsServiceCallback)(otError aError, const otDnsServiceResponse *aResponse, void *aContext)
Se llama al puntero cuando se recibe una respuesta de DNS para una consulta de resolución de una instancia de servicio.
En 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, 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 la lista completa de posibles valores de aError
, consulta otDnsAddressCallback()
.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
otDnsServiceInfo
struct otDnsServiceInfo otDnsServiceInfo
Proporciona información para una instancia de servicio de DNS.
otDnsServiceResponse
struct otDnsServiceResponse otDnsServiceResponse
Una representación opaca de una respuesta a una consulta de DNS de resolución de instancias de servicio.
Los punteros a instancias de este tipo se proporcionan desde la devolución de llamada otDnsAddressCallback
.
otDnsTxtEntrada
struct otDnsTxtEntry otDnsTxtEntry
Representa una entrada de registro TXT que representa un par clave-valor (RFC 6763, sección 6.3).
Los búferes de strings a los que apuntan mKey
y mValue
DEBEN conservarse y no cambiarse después de que se pase una instancia de esa estructura a OpenThread (como parte de la instancia otSrpClientService
).
En otSrpClientService
, se usa un array de entradas de otDnsTxtEntry
para especificar el registro TXT completo (una lista de entradas).
otDnsTxtEntryIterator
struct otDnsTxtEntryIterator otDnsTxtEntryIterator
Representa un iterador para entradas 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 )
Obtiene una dirección IPv6 asociada con una respuesta DNS de resolución de direcció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 |
|
||||||||
Valores que se muestran |
|
otDnsAddressResponseGetHostName
otError otDnsAddressResponseGetHostName( const otDnsAddressResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize )
Obtiene el nombre completo del host asociado con una respuesta de DNS de resolución de direcciones.
Solo se debe usar desde otDnsAddressCallback
.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
||||||
Valores que se muestran |
|
otDnsBrowseResponseGetHostAddress
otError otDnsBrowseResponseGetHostAddress( const otDnsBrowseResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl )
Obtiene la dirección IPv6 del host desde una respuesta de exploración de DNS (enumeración de la instancia de servicio).
Solo se 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 |
|
||||||||||
Valores que se muestran |
|
otDnsBrowseResponseGetServiceInfo
otError otDnsBrowseResponseGetServiceInfo( const otDnsBrowseResponse *aResponse, const char *aInstanceLabel, otDnsServiceInfo *aServiceInfo )
Obtiene información de una instancia de servicio a partir de una respuesta de exploración de DNS (enumeración de la instancia de servicio).
Solo se debe usar desde otDnsBrowseCallback
.
Una respuesta de DNS de exploración puede incluir registros SRV, TXT y AAAA para las instancias de servicio que se enumeran. Es OBLIGATORIO y no es obligatorio, y los servidores o agentes de resolución no están obligados a proporcionarlo. 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 coincidente en
aResponse
, se muestraOT_ERROR_NOT_FOUND
. En este caso, no se leen los registros adicionales (sin TXT ni AAAA). - Si se encuentra un registro SRV coincidente en
aResponse
, se actualizaaServiceInfo
y se muestraOT_ERROR_NONE
. - Si no se encuentra ningún registro TXT que coincida en
aResponse
,mTxtDataSize
se establece enaServiceInfo
. - Si la longitud de los datos TXT es mayor que
mTxtDataSize
, se lee de forma parcial ymTxtDataTruncated
se establece como verdadero. - 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 using
otDnsBrowseResponseGetHostAddress().
Detalles | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
||||||||
Valores que se muestran |
|
otDnsBrowseResponseGetServiceInstance
otError otDnsBrowseResponseGetServiceInstance( const otDnsBrowseResponse *aResponse, uint16_t aIndex, char *aLabelBuffer, uint8_t aLabelBufferSize )
Obtiene una instancia de servicio asociada con una respuesta de exploración de DNS (enumeración de la instancia de servicio).
Solo se debe usar desde otDnsBrowseCallback
.
La respuesta puede incluir varios registros de instancias 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 que tiene el formato
.
Detalles | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
||||||||
Valores que se muestran |
|
otDnsBrowseResponseGetServiceName
otError otDnsBrowseResponseGetServiceName( const otDnsBrowseResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize )
Obtiene el nombre del servicio asociado con una respuesta de exploración de DNS (enumeración de la instancia de servicio).
Solo se debe usar desde otDnsBrowseCallback
.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
||||||
Valores que se muestran |
|
otDnsClientBrowse
otError otDnsClientBrowse( otInstance *aInstance, const char *aServiceName, otDnsBrowseCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
Envía una consulta de exploración de DNS (enumeración de la instancia de servicio) para un nombre de servicio determinado.
Estará disponible cuando se habilite OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE
.
El aConfig
puede ser NULO. En este caso, se usará la configuración predeterminada (de otDnsClientGetDefaultConfig()
) como la configuración para esta consulta. En una aConfig
que no es NULL, algunos de los campos pueden dejarse sin especificar (valor cero). Luego, los campos sin especificar se reemplazan por los valores de la configuración predeterminada.
Detalles | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
||||||||||
Valores que se muestran |
|
otDnsClientGetDefaultConfig
const otDnsQueryConfig * otDnsClientGetDefaultConfig( otInstance *aInstance )
Obtiene la configuración de consulta predeterminada actual que usa el cliente de DNS.
Cuando se inicia la pila de OpenThread, la configuración predeterminada de las consultas de DNS 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 |
|
||
Qué muestra |
Un puntero para la configuración predeterminada actual que utiliza el cliente de DNS
|
oDnsClientResolveAddress
otError otDnsClientResolveAddress( otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
Envía una consulta de DNS de resolución de direcciones para registros AAAA (IPv6) de un nombre de host determinado.
El aConfig
puede ser NULO. En este caso, se usará la configuración predeterminada (de otDnsClientGetDefaultConfig()
) como la configuración para esta consulta. En una aConfig
que no es NULL, algunos de los campos pueden dejarse sin especificar (valor cero). Luego, los campos sin especificar se reemplazan por los valores de la configuración predeterminada.
Detalles | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
||||||||||
Valores que se muestran |
|
otDnsClientResolveIp4Dirección
otError otDnsClientResolveIp4Address( otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
Envía una consulta de DNS de resolución de direcciones para registros A (IPv4) de un nombre de host determinado.
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.
El aConfig
puede ser NULO. En este caso, se usará la configuración predeterminada (de otDnsClientGetDefaultConfig()
) como la configuración para esta consulta. En una aConfig
que no es NULL, algunos de los campos pueden dejarse sin especificar (valor cero). Luego, los campos sin especificar se reemplazan por los valores de la configuración predeterminada.
Detalles | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
||||||||||
Valores que se muestran |
|
oDsClientResolveService
otError otDnsClientResolveService( otInstance *aInstance, const char *aInstanceLabel, const char *aServiceName, otDnsServiceCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
Inicia la resolución de una instancia de servicio de DNS para una instancia de servicio determinada.
Estará disponible cuando se habilite OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE
.
El aConfig
puede ser NULO. En este caso, se usará la configuración predeterminada (de otDnsClientGetDefaultConfig()
) como la configuración para esta consulta. En una aConfig
que no es NULL, algunos de los campos pueden dejarse sin especificar (valor cero). Luego, los campos sin especificar se reemplazan por los valores de la configuración predeterminada.
La función envía consultas de registros SRV o TXT para la instancia de servicio determinada. El campo mServiceMode
de otDnsQueryConfig
determina qué registros consultar (solo SRV, solo TXT, o bien SRV y TXT) y cómo realizar la consulta (juntos en el mismo mensaje, por separado o en modo optimizado, en los que el cliente intentará primero ingresar en el mismo mensaje y, luego, si no obtendrá una respuesta).
El registro SRV proporciona información sobre el puerto de servicio, la prioridad y el peso, junto con el nombre del host asociado con la instancia de servicio. Esta función NO ejecuta la resolución de la dirección del nombre de host que se descubrió en el registro SRV. El servidor o agente de resolución puede proporcionar registros AAAA/A para el nombre del host en la sección Datos adicionales de la respuesta a la consulta SRV/TXT. Esta información se puede recuperar mediante otDnsServiceResponseGetServiceInfo()
en otDnsServiceCallback
. Los usuarios de esta API NO DEBEN suponer que la dirección del host siempre estará disponible desde otDnsServiceResponseGetServiceInfo()
.
Detalles | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
||||||||||||
Valores que se muestran |
|
otDnsClientResolveServiceAndHostAddress
otError otDnsClientResolveServiceAndHostAddress( otInstance *aInstance, const char *aInstanceLabel, const char *aServiceName, otDnsServiceCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
Inicia la resolución de una instancia de servicio de DNS para una instancia de servicio determinada, con una posible resolución de dirección de seguimiento para el nombre de host descubierto para la instancia de servicio.
Estará disponible cuando se habilite OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE
.
El aConfig
puede ser NULO. En este caso, se usará la configuración predeterminada (de otDnsClientGetDefaultConfig()
) como la configuración para esta consulta. En una aConfig
que no es NULL, algunos de los campos pueden dejarse sin especificar (valor cero). Luego, los campos sin especificar se reemplazan por los valores de la configuración predeterminada. Esta función no se puede usar con mServiceMode
en la configuración de DNS establecida en OT_DNS_SERVICE_MODE_TXT
(es decir, cuando se consulta solo el registro TXT) y se mostrará OT_ERROR_INVALID_ARGS
.
Se comporta de manera similar a otDnsClientResolveService()
que envía consultas para registros SRV y TXT. Sin embargo, si el servidor o el agente de resolución no proporciona registros AAAA/A para el nombre del host en respuesta a la consulta SRV (en la sección de datos adicionales), realizará la resolución del nombre de host (envío de una consulta AAAA) para el nombre de host detectado desde el registro SRV. Se invoca la devolución de llamada aCallback
cuando se reciben respuestas para todas las consultas (es decir, finalizan las resoluciones de dirección del servicio y del host).
Detalles | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
||||||||||||
Valores que se muestran |
|
otDnsClientSetDefaultConfig
void otDnsClientSetDefaultConfig( otInstance *aInstance, const otDnsQueryConfig *aConfig )
Establece la configuración de consulta predeterminada en el cliente de DNS.
ElaConfig
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 NULO, el llamador 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 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 de DNS establece y actualiza automáticamente la dirección IPv6 del servidor en la configuración predeterminada. Esto se hace solo cuando el usuario no lo establece o 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 red de Thread para las entradas del servicio de DNS/SRP a fin de seleccionar un servidor de SRP. La dirección del servidor SRP también se configura como la dirección del servidor DNS en la configuración predeterminada.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
otDnsEncodeTxtData
otError otDnsEncodeTxtData( const otDnsTxtEntry *aTxtEntries, uint16_t aNumTxtEntries, uint8_t *aTxtData, uint16_t *aTxtDataLength )
Codifica una lista determinada de entradas de registro TXT (pares clave-valor) en datos TXT (según el formato que especifica RFC 6763).
Detalles | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
||||||||
Valores que se muestran |
|
otDnsGetNextTxtEntry
otError otDnsGetNextTxtEntry( otDnsTxtEntryIterator *aIterator, otDnsTxtEntry *aEntry )
Analiza los datos TXT de un iterador y obtiene la siguiente entrada del registro TXT (par clave-valor).
El 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 clave analizada es menor o igual que OT_DNS_TXT_KEY_MAX_LENGTH
(longitud máxima de la clave recomendada), la string de clave se muestra en mKey
en aEntry
. Sin embargo, si la clave es más larga, se establece mKey
como NULL y toda la string de entrada TXT codificada se muestra en mValue
y mValueLength
.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
||||||
Valores que se muestran |
|
otDnsInitTxtEntryIterator
void otDnsInitTxtEntryIterator( otDnsTxtEntryIterator *aIterator, const uint8_t *aTxtData, uint16_t aTxtDataLength )
Inicializa un iterador de registros TXT.
El puntero del búfer aTxtData
y su contenido DEBEN permanecer y permanecer sin cambios mientras se usa el objeto aIterator
.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
otDnsIsNameCompressionEnabled
bool otDnsIsNameCompressionEnabled( void )
Indica si el modo "Compresión de nombres DNS" está habilitado o no.
Esto está diseñado solo para pruebas y está disponible cuando la configuración OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE
está habilitada.
Detalles | |
---|---|
Qué muestra |
TRUE si está habilitado el modo de "compresión de nombres DNS", de lo contrario, FALSE.
|
otDnsServiceResponseGetHostAddress
otError otDnsServiceResponseGetHostAddress( const otDnsServiceResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl )
Obtiene la dirección IPv6 del host de una respuesta de resolución de instancia de servicio de DNS.
Solo se 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 |
|
||||||||||
Valores que se muestran |
|
otDnsServiceResponseGetServiceInfo
otError otDnsServiceResponseGetServiceInfo( const otDnsServiceResponse *aResponse, otDnsServiceInfo *aServiceInfo )
Obtiene información de una instancia de servicio a partir de una respuesta de resolución de instancias de servicio de DNS.
Solo se debe usar desde un otDnsServiceCallback
activado desde otDnsClientResolveService()
o otDnsClientResolveServiceAndHostAddress()
.
Cuando se usa desde una devolución de llamada otDnsClientResolveService()
, la respuesta de DNS del servidor o el agente de resolución puede incluir registros AAAA en la sección de datos adicionales para el nombre de host asociado con la instancia de servicio que se resuelve. Este es un DEBE y no es un requisito obligatorio, por lo que los servidores o agentes de resolución no están obligados a proporcionarlo. Esta función intenta analizar los registros AAAA si se incluyen en la respuesta. Si no se incluye, mHostAddress
se establece en ceros (dirección no especificada). Para resolver también la dirección del host, el usuario puede usar la función otDnsClientResolveServiceAndHostAddress()
de la API de cliente de DNS, que realizará la resolución del servicio seguida de una consulta de resolución de la dirección del nombre del host (cuando el servidor o el agente de resolución no proporcionen registros AAAA en la respuesta de la consulta del SRV).
- Si se encuentra un registro SRV coincidente en
aResponse
, se actualizaaServiceInfo
. - Si no se encuentra ningún registro SRV coincidente, se muestra
OT_ERROR_NOT_FOUND
, a menos que la configuración de esta consulta haya usadoOT_DNS_SERVICE_MODE_TXT
paramServiceMode
(es decir, la solicitud era solo para el registro TXT). En este caso, intentaremos analizar el registro SRV de la sección de datos adicionales de la respuesta (en caso de que el servidor haya proporcionado la información). - Si no se encuentra ningún registro TXT que coincida en
aResponse
,mTxtDataSize
se establece enaServiceInfo
. - Si la longitud de los datos TXT es mayor que
mTxtDataSize
, se lee de forma parcial ymTxtDataTruncated
se establece como verdadero. - 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 using
otDnsServiceResponseGetHostAddress().
Detalles | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
||||||||
Valores que se muestran |
|
otDnsServiceResponseGetServiceName
otError otDnsServiceResponseGetServiceName( const otDnsServiceResponse *aResponse, char *aLabelBuffer, uint8_t aLabelBufferSize, char *aNameBuffer, uint16_t aNameBufferSize )
Obtiene el nombre de la instancia de servicio asociado con una respuesta de resolución de instancia de servicio de DNS.
Solo se debe usar desde otDnsServiceCallback
.
Detalles | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
||||||||||
Valores que se muestran |
|
otDnsSetNameCompressionEnabled
void otDnsSetNameCompressionEnabled( bool aEnabled )
Habilita o inhabilita el modo "Compresión de nombres 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 de cliente/servidor de SRP y DNS de OpenThread.
Esto está diseñado solo para pruebas y está disponible cuando la configuración OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE
está habilitada.
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 |
|
Macros
TS_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)
TS_DNS_MAX_NAME_SIZE
OT_DNS_MAX_NAME_SIZE 255
Tamaño máximo de la string de nombre (incluye un 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).
OT_DNS_TXT_KEY_MIN_LENGTH
OT_DNS_TXT_KEY_MIN_LENGTH 1
Longitud mínima de la string de clave del 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 colaborar con nuestra documentación, consulta la sección Recursos.