DNS
En este módulo, se incluyen 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 Type representa el modo NAT64 en una otDnsQueryConfig . |
otDnsRecursionFlag{
|
enum El tipo representa la marca "Recursion Desired" (RD) en un otDnsQueryConfig . |
otDnsServiceMode{
|
enum Type representa el modo de resolución del servicio en una otDnsQueryConfig . |
otDnsTransportProto{
|
enum Type 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 DNS para una consulta de resolución de dirección. |
otDnsAddressResponse
|
typedefstruct otDnsAddressResponse
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)
|
typedefvoid(*
Se llama al puntero cuando se recibe una respuesta DNS para una consulta de navegación (Enumeración de instancias de servicio). |
otDnsBrowseResponse
|
typedefstruct otDnsBrowseResponse
Representación opaca de una respuesta a una consulta de DNS de navegación (enumeración de instancias 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 DNS para una consulta de resolución de instancia de servicio. |
otDnsServiceInfo
|
typedefstruct otDnsServiceInfo
Proporciona información para una instancia de servicio de DNS. |
otDnsServiceResponse
|
typedefstruct otDnsServiceResponse
Representación opaca de una respuesta a una consulta de DNS de resolución de instancia 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 registro TXT (pares clave-valor). |
remotas |
|
---|---|
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 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)
|
Obtiene la dirección IPv6 del host a partir de una respuesta del navegador 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 desde una respuesta de navegación de DNS (enumeración de instancias de servicio).
|
otDnsBrowseResponseGetServiceInstance(const otDnsBrowseResponse *aResponse, uint16_t aIndex, char *aLabelBuffer, uint8_t aLabelBufferSize)
|
Obtiene una instancia de servicio asociada con una respuesta de navegación de DNS (enumeración de instancias de servicio).
|
otDnsBrowseResponseGetServiceName(const otDnsBrowseResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize)
|
Obtiene el nombre del servicio asociado con una respuesta de navegación de DNS (enumeración de instancias de servicio).
|
otDnsClientBrowse(otInstance *aInstance, const char *aServiceName, otDnsBrowseCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
Envía una consulta de navegación de DNS (enumeración de instancias de servicio) para un nombre de servicio determinado.
|
otDnsClientGetDefaultConfig(otInstance *aInstance)
|
const otDnsQueryConfig *
Obtiene la configuración de consultas predeterminada actual que usa el cliente DNS.
|
otDnsClientResolveAddress(otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
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)
|
Envía una consulta de DNS sobre la resolución de direcciones 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)
|
Inicia una resolución de 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 una resolución de 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 consultas predeterminada en el cliente 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 (con el siguiente formato especificado por RFC 6763).
|
otDnsGetNextTxtEntry(otDnsTxtEntryIterator *aIterator, otDnsTxtEntry *aEntry)
|
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
Inicializa un iterador de registros TXT.
|
otDnsIsNameCompressionEnabled(void)
|
bool
Indica si el modo “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)
|
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 para 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)
|
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 de 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 registro TXT (pares clave-valor). |
Enumeraciones
otDnsNat64Mode
otDnsNat64Mode
Type 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 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
|
Permitir la traducción de direcciones NAT64 durante la resolución de la dirección del cliente DNS |
OT_DNS_NAT64_DISALLOW
|
No permitir la traducción de direcciones NAT64 durante la resolución de la dirección del cliente DNS |
OT_DNS_NAT64_UNSPECIFIED
|
No se especificó el modo NAT64. Usa el modo NAT64 predeterminado. |
otDnsRecursionFlag
otDnsRecursionFlag
El tipo 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 manera recurrente. |
OT_DNS_FLAG_RECURSION_DESIRED
|
Indica que el servidor de nombres de DNS puede resolver la consulta de manera recursiva. |
OT_DNS_FLAG_UNSPECIFIED
|
Indica que no se especificó la marca. |
otDnsServiceMode
otDnsServiceMode
Type representa el modo de resolución del servicio en una otDnsQueryConfig
.
Solo se usa durante la resolución otDnsClientResolveService()
del servicio de cliente de DNS. Determina qué tipos de registros consultar.
Propiedades | |
---|---|
OT_DNS_SERVICE_MODE_SRV
|
Consulta solo para registro SRV. |
OT_DNS_SERVICE_MODE_SRV_TXT
|
Consulta registros SRV y TXT en el mismo mensaje. |
OT_DNS_SERVICE_MODE_SRV_TXT_OPTIMIZE
|
Primero, realiza consultas juntas para TXT/SRV. Si falla, haz una consulta por separado. |
OT_DNS_SERVICE_MODE_SRV_TXT_SEPARATE
|
Consulta en paralelo para SRV y TXT con mensajes separados. |
OT_DNS_SERVICE_MODE_TXT
|
Consulta solo el registro TXT. |
OT_DNS_SERVICE_MODE_UNSPECIFIED
|
No se especificó el modo. Usar el modo de servicio predeterminado |
otDnsTransportProto
otDnsTransportProto
Type 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
|
No se especificó el transporte de DNS. |
Typedefs
otDnsAddressCallback
void(* otDnsAddressCallback)(otError aError, const otDnsAddressResponse *aResponse, void *aContext)
Se llama al puntero cuando se recibe una respuesta DNS para una consulta de resolución de dirección.
Dentro de 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 mostrarla desde esta función, no será válido, por lo que el usuario NO DEBE retener el puntero aResponse
para usarlo más adelante.
El aError
puede tener lo siguiente:
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
- OT_ERROR_NONE Se recibió correctamente una respuesta.
- OT_ERROR_ABORT La pila anuló una transacción de DNS.
- OT_ERROR_RESPONSE_TIMEOUT No se recibió ninguna respuesta de DNS en el 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) NOERROR correcto (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 experimentó una falla interna -> 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 de política o seguridad -> OT_ERROR_SECURITY
- (6) YXDOMAIN Algunos nombres que no deberían existir, sí existen -> OT_ERROR_DUPLICATED.
- (7) YXRRSET Algunos RRset que no deberían existir, sí existen -> 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) BADALG Algoritmo incorrecto -> OT_ERROR_SECURITY
- (22) BADTRUN Truncamiento incorrecto -> OT_ERROR_PARSE
- Otros códigos de respuesta -> OT_ERROR_FAILED
otDnsAddressResponse
struct otDnsAddressResponse otDnsAddressResponse
Representación opaca de una respuesta a una consulta de DNS de resolución de dirección.
Los punteros a la instancia 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 DNS para una consulta de navegación (Enumeración de instancias de servicio).
Dentro de 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 mostrarla desde esta función, no será 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 |
|
otDnsBrowseResponse
struct otDnsBrowseResponse otDnsBrowseResponse
Representación opaca de una respuesta a una consulta de DNS de navegación (enumeración de instancias de servicio).
Los punteros a la instancia de este tipo se proporcionan desde la devolución de llamada otDnsBrowseCallback
.
otDnsQueryConfig
struct otDnsQueryConfig otDnsQueryConfig
Representa una configuración de consulta de DNS.
Cualquier campo de esta estructura se puede establecer en cero para indicar que no está especificado. La forma en que se tratan los campos sin especificar está determinada por 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 DNS para una consulta de resolución de instancia de servicio.
Dentro de 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 mostrarla desde esta función, no será 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 |
|
otDnsServiceInfo
struct otDnsServiceInfo otDnsServiceInfo
Proporciona información para una instancia de servicio de DNS.
otDnsServiceResponse
struct otDnsServiceResponse otDnsServiceResponse
Representación opaca de una respuesta a una consulta de DNS de resolución de instancia de servicio.
Los punteros a la instancia de este tipo se proporcionan desde la devolución de llamada otDnsAddressCallback
.
otDnsTxtEntry
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 string a los que apuntan mKey
y mValue
DEBEN persistir y permanecer sin cambios después de que una instancia de esa estructura se pase a OpenThread (como parte de la instancia otSrpClientService
).
Se usa un array de entradas otDnsTxtEntry
en otSrpClientService
para especificar el registro TXT completo (una lista de entradas).
otDnsTxtEntryIterator
struct otDnsTxtEntryIterator otDnsTxtEntryIterator
Representa un iterador para entradas de registro TXT (pares clave-valor).
Los campos de datos de esta estructura están diseñados para que los use OpenThread Core, y el llamador no debe leerlos ni modificarlos.
remotas
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 DEBE usarse desde otDnsAddressCallback
.
La respuesta puede incluir varios registros de direcciones IPv6. aIndex
se puede usar para iterar en 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 de host completo asociado con una respuesta DNS de resolución de dirección.
Solo DEBE usarse 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 a partir de una respuesta del navegador DNS (enumeración de la instancia de servicio).
Solo DEBE usarse desde otDnsBrowseCallback
.
La respuesta puede incluir cero o más registros de direcciones IPv6. aIndex
se puede usar para iterar en 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 desde una respuesta de navegación de DNS (enumeración de instancias de servicio).
Solo DEBE usarse desde otDnsBrowseCallback
.
Una respuesta de DNS de navegación puede incluir registros SRV, TXT y AAAA para las instancias de servicio que se enumeran. Este es un requisito DEBIDO y no obligatorio, y no es necesario que los servidores o agentes de resolución lo proporcionen. Esta función intenta recuperar esta información de una instancia de servicio determinada cuando está disponible.
- Si no se encuentra ningún registro SRV que coincida en
aResponse
, se muestraOT_ERROR_NOT_FOUND
. En este caso, no se leen 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
enaServiceInfo
se establece en cero. - 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 navegación de DNS (enumeración de instancias de servicio).
Solo DEBE usarse 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 muestra 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 |
|
||||||||
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 navegación de DNS (enumeración de instancias de servicio).
Solo DEBE usarse 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 navegación de DNS (enumeración de instancias de servicio) para un nombre de servicio determinado.
Está disponible cuando se habilita 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 un aConfig
que no es NULO, 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 |
|
||||||||||
Valores que se muestran |
|
otDnsClientGetDefaultConfig
const otDnsQueryConfig * otDnsClientGetDefaultConfig( otInstance *aInstance )
Obtiene la configuración de consultas predeterminada actual que usa el cliente DNS.
Cuando se inicia la pila de OpenThread, la configuración predeterminada de la consulta 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 a la configuración predeterminada actual que usa el cliente DNS.
|
otDnsClientResolveAddress
otError otDnsClientResolveAddress( otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
Envía una consulta de DNS de resolución de dirección para los 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 un aConfig
que no es NULO, 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 |
|
||||||||||
Valores que se muestran |
|
otDnsClientResolveIp4Address
otError otDnsClientResolveIp4Address( otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
Envía una consulta de DNS sobre la resolución de direcciones para los registros A (IPv4) de un nombre de host determinado.
Requiere y está disponible cuando se habilita OPENTHREAD_CONFIG_DNS_CLIENT_NAT64_ENABLE
.
Cuando se recibe una respuesta correcta, las direcciones se muestran desde aCallback
como versiones traducidas de IPv6 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 un aConfig
que no es NULO, 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 |
|
||||||||||
Valores que se muestran |
|
otDnsClientResolveService
otError otDnsClientResolveService( otInstance *aInstance, const char *aInstanceLabel, const char *aServiceName, otDnsServiceCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
Inicia una resolución de instancia de servicio de DNS para una instancia de servicio determinada.
Está disponible cuando se habilita 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 un aConfig
que no es NULO, algunos de los campos pueden dejarse sin especificar (valor cero). Los campos sin especificar se reemplazan por los valores de la configuración predeterminada.
La función envía consultas sobre registros SRV o TXT para la instancia de servicio determinada. El campo mServiceMode
de otDnsQueryConfig
determina qué registros consultar (solo SRV, solo TXT o ambos SRV y TXT) y cómo realizar la consulta (juntos en el mismo mensaje, por separado en paralelo o en modo optimizado, en el que el cliente intentará primero el mismo mensaje y, luego, por separado si no obtiene una respuesta).
El registro SRV proporciona información sobre el puerto, la prioridad y el peso del servicio junto con el nombre de host asociado con la instancia de servicio. Esta función NO realiza la resolución de direcciones para el nombre de host descubierto en el registro SRV. El servidor o el agente de resolución pueden 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 con otDnsServiceResponseGetServiceInfo()
en otDnsServiceCallback
. Los usuarios de esta API NO DEBEN dar por sentado que la dirección del host siempre estará disponible a partir de 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 una resolución de 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.
Está disponible cuando se habilita 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 un aConfig
que no es NULO, algunos de los campos pueden dejarse sin especificar (valor cero). 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 como OT_DNS_SERVICE_MODE_TXT
(es decir, para consultar solo el registro TXT) y mostrará OT_ERROR_INVALID_ARGS
.
Se comporta de manera similar a otDnsClientResolveService()
cuando envía consultas para registros SRV y TXT. Sin embargo, si el servidor o el agente de resolución no proporcionan registros AAAA/A para el nombre del host en la respuesta a la consulta SRV (en la sección Datos adicionales), se realizará la resolución de nombres de host (enviando una consulta AAAA) para el nombre de host descubierto del registro SRV. Se invoca la devolución de llamada aCallback
cuando se reciben respuestas para todas las consultas (es decir, cuando finalizan las resoluciones de dirección del host y del servicio).
Detalles | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
||||||||||||
Valores que se muestran |
|
otDnsClientSetDefaultConfig
void otDnsClientSetDefaultConfig( otInstance *aInstance, const otDnsQueryConfig *aConfig )
Establece la configuración de consultas predeterminada en el cliente DNS.
ElaConfig
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
que no es NULL, el llamador puede optar por dejar algunos de los campos de la instancia otDnsQueryConfig
sin especificar (valor cero). Los campos sin especificar se reemplazan por las definiciones de la 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 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 no lo especifica explícitamente. Este comportamiento requiere que el cliente de SRP y su función de inicio automático estén habilitadas. Luego, el cliente SRP supervisará los datos de red de Thread en busca de entradas del servicio de DNS/SRP para seleccionar un servidor de SRP. La dirección del servidor de SRP seleccionada también se establece 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 (con el siguiente formato especificado por 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 de registro TXT (par clave-valor).
aIterator
se DEBE inicializar con otDnsInitTxtEntryIterator()
antes de llamar a esta función, y el búfer de datos TXT que se usa para inicializar el iterador DEBE permanecer 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_ITER_MAX_LENGTH
, la string de clave se muestra en mKey
, en aEntry
. Pero si la clave es más larga, mKey
se establece en 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 de búfer aTxtData
y su contenido DEBEN persistir 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 de DNS” está habilitado o no.
Está destinado solo para pruebas y está disponible cuando se habilita la configuración de OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE
.
Detalles | |
---|---|
Qué muestra |
TRUE si el modo "Compresión de nombres de DNS" está habilitado, FALSE de lo contrario.
|
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 DEBE usarse desde otDnsServiceCallback
.
La respuesta puede incluir cero o más registros de direcciones IPv6. aIndex
se puede usar para iterar en 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 para una instancia de servicio a partir de una respuesta de resolución de instancia de servicio de DNS.
Solo DEBE usarse desde un otDnsServiceCallback
activado desde otDnsClientResolveService()
o otDnsClientResolveServiceAndHostAddress()
.
Cuando se usa desde una devolución de llamada de otDnsClientResolveService()
, la respuesta de DNS del servidor o del agente de resolución puede incluir registros AAAA en su sección de datos adicionales para el nombre de host asociado con la instancia de servicio que se resuelve. Este es un requisito NO OBLIGATORIO, por lo que los servidores o los agentes de resolución no tienen la obligación de 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 del 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 proporcionan registros AAAA en la respuesta de la consulta de SRV).
- Si se encuentra un registro SRV coincidente en
aResponse
, se actualizaaServiceInfo
. - Si no se encuentra ningún registro SRV que coincida, se muestra
OT_ERROR_NOT_FOUND
, a menos que la configuración de consulta para esta consulta useOT_DNS_SERVICE_MODE_TXT
enmServiceMode
(lo que significa que la solicitud era solo para el registro TXT). En este caso, intentamos 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
enaServiceInfo
se establece en cero. - 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 DEBE usarse desde otDnsServiceCallback
.
Detalles | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
||||||||||
Valores que se muestran |
|
otDnsSetNameCompressionEnabled
void otDnsSetNameCompressionEnabled( bool aEnabled )
Habilita o inhabilita el modo “Compresión de nombres de DNS”.
La compresión de nombres de DNS está habilitada de forma predeterminada. Si 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.
Está destinado 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 usar 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 |
|
Macros
OT_DNS_MAX_LABEL_SIZE
OT_DNS_MAX_LABEL_SIZE 64
Tamaño máximo de la cadena de etiqueta (incluye caracteres nulos al final de la cadena).
OT_DNS_MAX_NAME_SIZE
OT_DNS_MAX_NAME_SIZE 255
Tamaño máximo de la cadena de nombre (incluye caracteres nulos al final de la cadena).
OT_DNS_TXT_KEY_ITER_MAX_LENGTH
OT_DNS_TXT_KEY_ITER_MAX_LENGTH 64
La longitud máxima de la string de clave TXT es compatible con otDnsTxtEntryIterator
.
OT_DNS_TXT_KEY_MAX_LENGTH
OT_DNS_TXT_KEY_MAX_LENGTH 9
La 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
La 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 a nuestra documentación, consulta Recursos.