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{
|
enum Este tipo de enumeración representa el modo NAT64 en una otDnsQueryConfig . |
otDnsRecursionFlag{
|
enum Este tipo de enumeración representa la marca &;; Recursion Desired (RD) en un otDnsQueryConfig . |
Typedefs |
|
---|---|
otDnsAddressCallback)(otError aError, const otDnsAddressResponse *aResponse, void *aContext)
|
typedefvoid(*
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
|
typedefstruct otDnsAddressResponse
Este tipo es una representación opaca de una respuesta a una consulta de DNS para la resolución de direcciones. |
otDnsBrowseCallback)(otError aError, const otDnsBrowseResponse *aResponse, void *aContext)
|
typedefvoid(*
Se llama a este puntero de función cuando se recibe una respuesta de DNS para una búsqueda de navegación (enumeración de la instancia de servicio). |
otDnsBrowseResponse
|
typedefstruct 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). |
otDnsQueryConfig
|
typedefstruct otDnsQueryConfig
Esta estructura representa una configuración de consulta de DNS. |
otDnsServiceCallback)(otError aError, const otDnsServiceResponse *aResponse, void *aContext)
|
typedefvoid(*
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
|
typedefstruct otDnsServiceInfo
Esta estructura proporciona información para una instancia del servicio de DNS. |
otDnsServiceResponse
|
typedefstruct otDnsServiceResponse
Este tipo es una representación opaca de una respuesta a una consulta de DNS para la resolución de instancias de servicio. |
otDnsTxtEntry
|
typedefstruct otDnsTxtEntry
Esta estructura representa una entrada de registro TXT que representa un par clave-valor (RFC 6763 - sección 6.3). |
otDnsTxtEntryIterator
|
typedefstruct otDnsTxtEntryIterator
Esta estructura representa un iterador para todo el registro TXT (pares clave-valor). |
Functions |
|
---|---|
otDnsAddressResponseGetAddress(const otDnsAddressResponse *aResponse, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
|
Esta función obtiene una dirección IPv6 asociada con una respuesta de DNS de resolución de direcciones.
|
otDnsAddressResponseGetHostName(const otDnsAddressResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize)
|
Esta función obtiene el nombre de host completo asociado con una respuesta de DNS de resolución de direcciones.
|
otDnsBrowseResponseGetHostAddress(const otDnsBrowseResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
|
Esta función obtiene la dirección IPv6 del host de una respuesta de navegación de DNS (enumeración de la instancia de servicio).
|
otDnsBrowseResponseGetServiceInfo(const otDnsBrowseResponse *aResponse, const char *aInstanceLabel, otDnsServiceInfo *aServiceInfo)
|
Esta función obtiene información de una instancia de servicio de una respuesta de navegación de DNS (enumeración de la instancia de servicio).
|
otDnsBrowseResponseGetServiceInstance(const otDnsBrowseResponse *aResponse, uint16_t aIndex, char *aLabelBuffer, uint8_t aLabelBufferSize)
|
Esta función obtiene una instancia de servicio asociada con una respuesta de navegación de DNS (enumeración de la instancia de servicio).
|
otDnsBrowseResponseGetServiceName(const otDnsBrowseResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize)
|
Esta función obtiene el nombre del servicio asociado con una respuesta de navegación de DNS (enumeración de la instancia de servicio).
|
otDnsClientBrowse(otInstance *aInstance, const char *aServiceName, otDnsBrowseCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
Esta función envía una consulta de navegación de DNS (enumeración de la instancia de servicio) para un nombre de servicio determinado.
|
otDnsClientGetDefaultConfig(otInstance *aInstance)
|
const otDnsQueryConfig *
Esta función obtiene la configuración de consulta predeterminada actual que utiliza el cliente de DNS.
|
otDnsClientResolveAddress(otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
Esta función envía una consulta de DNS de resolución de dirección para registros AAAA (IPv6) de un nombre de host determinado.
|
otDnsClientResolveIp4Address(otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
Esta función envía una consulta de DNS de resolución de dirección para los registros A (IPv4) de un nombre de host determinado.
|
otDnsClientResolveService(otInstance *aInstance, const char *aInstanceLabel, const char *aServiceName, otDnsServiceCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
Esta función envía una consulta de resolución de instancias de servicio de DNS para una instancia de servicio determinada.
|
otDnsClientSetDefaultConfig(otInstance *aInstance, const otDnsQueryConfig *aConfig)
|
void
Esta función establece la configuración de consultas predeterminada en el cliente de DNS.
|
otDnsGetNextTxtEntry(otDnsTxtEntryIterator *aIterator, otDnsTxtEntry *aEntry)
|
Esta función analiza los datos TXT de un iterador y obtiene la siguiente entrada de registro TXT (par clave-valor).
|
otDnsInitTxtEntryIterator(otDnsTxtEntryIterator *aIterator, const uint8_t *aTxtData, uint16_t aTxtDataLength)
|
void
Esta función inicializa un iterador de registro TXT.
|
otDnsIsNameCompressionEnabled(void)
|
bool
Esta función indica si el modo de compresión de nombres de DNS está habilitado o no.
|
otDnsServiceResponseGetHostAddress(const otDnsServiceResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
|
Esta función obtiene la dirección IPv6 del host de una respuesta de resolución de instancia de servicio de DNS.
|
otDnsServiceResponseGetServiceInfo(const otDnsServiceResponse *aResponse, otDnsServiceInfo *aServiceInfo)
|
Esta función obtiene información de una instancia de servicio a partir de una respuesta de resolución de instancias de servicio de DNS.
|
otDnsServiceResponseGetServiceName(const otDnsServiceResponse *aResponse, char *aLabelBuffer, uint8_t aLabelBufferSize, char *aNameBuffer, uint16_t aNameBufferSize)
|
Esta función obtiene el nombre de la instancia de servicio asociado con una respuesta de resolución de instancia de servicio de DNS.
|
otDnsSetNameCompressionEnabled(bool aEnabled)
|
void
Esta función habilita o inhabilita el modo de compresión de nombres de DNS.
|
Structs |
|
---|---|
otDnsQueryConfig |
Esta estructura representa una configuración de consulta de DNS. |
otDnsServiceInfo |
Esta estructura proporciona información para una instancia del servicio de DNS. |
otDnsTxtEntry |
Esta estructura representa una entrada de registro TXT que representa un par clave-valor (RFC 6763 - sección 6.3). |
otDnsTxtEntryIterator |
Esta estructura representa un iterador para todo el registro TXT (pares clave-valor). |
Enumeraciones
otDnsNat64Mode
otDnsNat64Mode
Este tipo de enumeración representa el modo NAT64 en una otDnsQueryConfig
.
El modo NAT64 indica si se permite o no la traducción de direcciones NAT64 durante la resolución de direcciones del cliente DNS. Este modo solo se usa cuando OPENTHREAD_CONFIG_DNS_CLIENT_NAT64_ENABLE
está habilitado.
Properties | |
---|---|
OT_DNS_NAT64_ALLOW
|
Permite la traducción de direcciones NAT64 durante la resolución de direcciones del cliente DNS. |
OT_DNS_NAT64_DISALLOW
|
No permitir la traducción de direcciones NAT64 durante la resolución de direcciones del cliente DNS. |
OT_DNS_NAT64_UNSPECIFIED
|
No se especificó el modo NAT64. Usa el modo NAT64 predeterminado. |
otDnsRecursionFlag
otDnsRecursionFlag
Este tipo de enumeración representa la marca &;; Recursion Desired (RD) en un otDnsQueryConfig
.
Properties | |
---|---|
OT_DNS_FLAG_NO_RECURSION
|
Indica que el servidor de nombres del DNS no puede resolver la consulta de forma recursiva. |
OT_DNS_FLAG_RECURSION_DESIRED
|
Indica que el servidor de nombres del DNS puede resolver la consulta de forma recursiva. |
OT_DNS_FLAG_UNSPECIFIED
|
Indica que la marca no está especificada. |
Typedefs
otDnsAddressCallback
void(* otDnsAddressCallback)(otError aError, const otDnsAddressResponse *aResponse, void *aContext)
Se llama a este puntero de función cuando se recibe una respuesta de DNS para una consulta de resolución de dirección.
Dentro de esta devolución de llamada, el usuario puede usar las funciones otDnsAddressResponseGet{Item}()
junto con el puntero aResponse
para obtener más información sobre la respuesta.
El puntero aResponse
solo se puede usar dentro de esta devolución de llamada y, cuando regresa de esta función, no será válido. Por lo tanto, el usuario NO DEBE retener el puntero aResponse
para usarlo más adelante.
aError
puede tener lo siguiente:
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
- OT_ERROR_NONE Recibió una respuesta A correctamente.
- OT_ERROR_ABORT anuló una pila de transacciones de DNS.
- OT_ERROR_RESPONSE_TIMEOUT No se recibió ninguna respuesta de DNS en el tiempo de espera.
Si el servidor rechaza la resolución de la dirección, solicita el código de error del servidor de la siguiente manera:
- (0) NOERROR correctamente (sin condición de error) -&tt; OT_ERROR_NONE
- (1) El servidor FORMERR no puede interpretarlo debido al error de formato -> OT_ERROR_PARSE
- (2) El servidor SERVFAIL detectó un error interno -> OT_ERROR_fail
- (3) Nombre de NXDOMAIN que debería existir, no existe -> OT_ERROR_NOT_FOUND
- (4) El servidor NOTIMP no es compatible con el tipo de consulta (Código Op). -&tt; OT_ERROR_NOT_IMPLEMENTED
- (5) REFUSED Servidor rechazado por cuestiones de seguridad o de políticas -> OT_ERROR_SECURITY
- (6) YXDOMAIN Algunos nombres que no deberían existir existen -&tt; OT_ERROR_DUPLICATED
- (7) YXRRSET Algunos RRset que no existen, existen -> OT_ERROR_DUPLICATED
- (8) NXRRSET Algunos RRset que deberían existir, no existen -> OT_ERROR_NOT_FOUND
- (9) El servicio NOTAUTH no es confiable para la zona -&tt; OT_ERROR_SECURITY
- (10) NOTZONE A: el nombre no está en la zona -> OT_ERROR_PARSE
- (20) BADNAME Nombre incorrecto -> OT_ERROR_PARSE
- (21) Algoritmo BADALG incorrecto -&tt; OT_ERROR_SECURITY
- (22) BADTRUN Mal truncado -> OT_ERROR_PARSE
- Otros códigos de respuesta -&tt; OT_ERROR_fail
otDnsAddressResponse
struct otDnsAddressResponse otDnsAddressResponse
Este tipo es una representación opaca de una respuesta a una consulta de DNS para la resolución de direcciones.
Los punteros a instancias de este tipo se proporcionan desde la devolución de llamada otDnsAddressCallback
.
otDnsBrowseCallback
void(* otDnsBrowseCallback)(otError aError, const otDnsBrowseResponse *aResponse, void *aContext)
Se llama a este puntero de función cuando se recibe una respuesta de DNS para una búsqueda de navegación (enumeración de la instancia de servicio).
Dentro de esta devolución de llamada, el usuario puede usar las funciones otDnsBrowseResponseGet{Item}()
junto con el puntero aResponse
para obtener más información sobre la respuesta.
El puntero aResponse
solo se puede usar dentro de esta devolución de llamada y, cuando regresa de esta función, no será válido. Por lo tanto, el usuario NO DEBE retener el puntero aResponse
para usarlo más adelante.
A fin de obtener una lista completa de los valores posibles para aError
, consulta otDnsAddressCallback()
.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
otDnsBrowseResponse
struct otDnsBrowseResponse otDnsBrowseResponse
Este tipo es una representación opaca de una respuesta a una consulta de DNS de navegación (enumeración de la instancia de servicio).
Los punteros a instancias de este tipo se proporcionan desde la devolución de llamada otDnsBrowseCallback
.
otDnsQueryConfig
struct otDnsQueryConfig otDnsQueryConfig
Esta estructura representa una configuración de consulta de DNS.
Cualquiera de los campos de esta estructura se puede establecer en cero para indicar que no se especifica. La forma en que se tratan los campos no especificados se determina mediante la función que usa la instancia de otDnsQueryConfig
.
otDnsServiceCallback
void(* otDnsServiceCallback)(otError aError, const otDnsServiceResponse *aResponse, void *aContext)
Se llama a este puntero de función cuando se recibe una respuesta de DNS para una consulta de resolución de instancia de servicio.
Dentro de esta devolución de llamada, el usuario puede usar las funciones otDnsServiceResponseGet{Item}()
junto con el puntero aResponse
para obtener más información sobre la respuesta.
El puntero aResponse
solo se puede usar dentro de esta devolución de llamada y, cuando regresa de esta función, no será válido. Por lo tanto, el usuario NO DEBE retener el puntero aResponse
para usarlo más adelante.
A fin de obtener una lista completa de los valores posibles para aError
, consulta otDnsAddressCallback()
.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
otDnsServiceInfo
struct otDnsServiceInfo otDnsServiceInfo
Esta estructura proporciona información para una instancia del servicio de DNS.
otDnsServiceResponse
struct otDnsServiceResponse otDnsServiceResponse
Este tipo es una representación opaca de una respuesta a una consulta de DNS para la resolución de instancias de servicio.
Los punteros a instancias de este tipo se proporcionan desde la devolución de llamada otDnsAddressCallback
.
otDnsTxtEntry
struct otDnsTxtEntry otDnsTxtEntry
Esta estructura representa una entrada de registro TXT que representa un par clave-valor (RFC 6763 - sección 6.3).
Los búferes de string a los que apuntan mKey
y mValue
DEBEN conservarse y permanecer intactos después de pasar una instancia de esta estructura a OpenThread (como parte de la instancia otSrpClientService
).
En otSrpClientService
, se usa un arreglo de entradas otDnsTxtEntry
para especificar el registro TXT completo (una lista de entradas).
otDnsTxtEntryIterator
struct otDnsTxtEntryIterator otDnsTxtEntryIterator
Esta estructura representa un iterador para todo el registro TXT (pares clave-valor).
Los campos de datos de esta estructura están diseñados para que los use el núcleo de OpenThread y los emisores no deben leerlos ni cambiarlos.
Functions
otDnsAddressResponseGetAddress
otError otDnsAddressResponseGetAddress( const otDnsAddressResponse *aResponse, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl )
Esta función obtiene una dirección IPv6 asociada con una respuesta de DNS de resolución de direcciones.
Esta función solo se DEBE usar desde otDnsAddressCallback
.
La respuesta puede incluir varios registros de dirección IPv6. aIndex
se puede usar para iterar a través de la lista de direcciones. El índice cero obtiene la primera dirección, y así sucesivamente. Cuando llegamos al final de la lista, se muestra OT_ERROR_NOT_FOUND
.
Detalles | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
||||||||
Valores que se muestran |
|
otDnsAddressResponseGetHostName
otError otDnsAddressResponseGetHostName( const otDnsAddressResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize )
Esta función obtiene el nombre de host completo asociado con una respuesta de DNS de resolución de direcciones.
Esta función solo se DEBE usar desde otDnsAddressCallback
.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
||||||
Valores que se muestran |
|
otDnsBrowseResponseGetHostAddress
otError otDnsBrowseResponseGetHostAddress( const otDnsBrowseResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl )
Esta función obtiene la dirección IPv6 del host de una respuesta de navegación de DNS (enumeración de la instancia de servicio).
Esta función solo se DEBE usar desde otDnsBrowseCallback
.
La respuesta puede incluir cero o más registros IPv6 de dirección. aIndex
se puede usar para iterar a través de la lista de direcciones. El índice cero obtiene la primera dirección, y así sucesivamente. Cuando llegamos al final de la lista, se muestra OT_ERROR_NOT_FOUND
.
Detalles | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
||||||||||
Valores que se muestran |
|
otDnsBrowseResponseGetServiceInfo
otError otDnsBrowseResponseGetServiceInfo( const otDnsBrowseResponse *aResponse, const char *aInstanceLabel, otDnsServiceInfo *aServiceInfo )
Esta función obtiene información de una instancia de servicio de una respuesta de navegación de DNS (enumeración de la instancia de servicio).
Esta función solo se DEBE usar desde otDnsBrowseCallback
.
Una respuesta de DNS de navegación debe incluir los registros SRV, TXT y AAAA para las instancias de servicio que se enumeran (ten en cuenta que es un DEBE y no es un requisito obligatorio). Esta función intenta recuperar esta información para una instancia de servicio determinada cuando está disponible.
- Si no se encuentra ningún registro SRV que coincida en
aResponse
, se muestraOT_ERROR_NOT_FOUND
. - 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
, el valor demTxtDataSize
enaServiceInfo
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 using
otDnsBrowseResponseGetHostAddress()”
Detalles | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
||||||||
Valores que se muestran |
|
otDnsBrowseResponseGetServiceInstance
otError otDnsBrowseResponseGetServiceInstance( const otDnsBrowseResponse *aResponse, uint16_t aIndex, char *aLabelBuffer, uint8_t aLabelBufferSize )
Esta función obtiene una instancia de servicio asociada con una respuesta de navegación de DNS (enumeración de la instancia de servicio).
Esta función solo se DEBE usar desde otDnsBrowseCallback
.
La respuesta puede incluir varios registros de instancia de servicio. Se puede usar aIndex
para iterar a través de la lista. El índice cero otorga el primer registro. Cuando llegamos al final de la lista, se muestra OT_ERROR_NOT_FOUND
.
Ten en cuenta que esta función obtiene la etiqueta de instancia de servicio y no el nombre completo de la instancia de servicio que tiene el formato
.
Detalles | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
||||||||
Valores que se muestran |
|
otDnsBrowseResponseGetServiceName
otError otDnsBrowseResponseGetServiceName( const otDnsBrowseResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize )
Esta función obtiene el nombre del servicio asociado con una respuesta de navegación de DNS (enumeración de la instancia de servicio).
Esta función solo se DEBE usar desde otDnsBrowseCallback
.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
||||||
Valores que se muestran |
|
otDnsClientBrowse
otError otDnsClientBrowse( otInstance *aInstance, const char *aServiceName, otDnsBrowseCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
Esta función envía una consulta de navegación de DNS (enumeración de la instancia de servicio) para un nombre de servicio determinado.
Esta función está disponible cuando se habilita OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE
.
aConfig
puede ser NULO. En este caso, la configuración predeterminada (de otDnsClientGetDefaultConfig()
) se usará como la configuración para esta consulta. En un aConfig
no NULL, algunos de los campos pueden dejarse sin especificar (valor cero). Los campos no especificados se reemplazan por los valores de la configuración predeterminada.
Detalles | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
||||||||||
Valores que se muestran |
|
otDnsClientGetDefaultConfig
const otDnsQueryConfig * otDnsClientGetDefaultConfig( otInstance *aInstance )
Esta función obtiene la configuración de consulta predeterminada actual que utiliza el cliente de DNS.
Cuando se inicia la pila de OpenThread, la configuración de la consulta de DNS predeterminada se determina a partir de un conjunto de opciones de configuración de OT, como OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_SERVER_IP6_ADDRESS
, _DEFAULT_SERVER_PORT
, _DEFAULT_RESPONSE_TIMEOUT
, etc. (consulta config/dns_client.h
para ver todas las opciones de configuración relacionadas).
Detalles | |||
---|---|---|---|
Parámetros |
|
||
Qué muestra |
Un puntero para la configuración predeterminada actual que está usando el cliente de DNS.
|
otDnsClientResolveAddress
otError otDnsClientResolveAddress( otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
Esta función envía una consulta de DNS de resolución de dirección para registros AAAA (IPv6) de un nombre de host determinado.
aConfig
puede ser NULO. En este caso, la configuración predeterminada (de otDnsClientGetDefaultConfig()
) se usará como la configuración para esta consulta. En un aConfig
no NULL, algunos de los campos pueden dejarse sin especificar (valor cero). Los campos no especificados se reemplazan por los valores de la configuración predeterminada.
Detalles | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
||||||||||
Valores que se muestran |
|
otDnsClientResolveIp4Dirección
otError otDnsClientResolveIp4Address( otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
Esta función envía una consulta de DNS de resolución de dirección para los registros A (IPv4) de un nombre de host determinado.
Esta función requiere y está disponible cuando OPENTHREAD_CONFIG_DNS_CLIENT_NAT64_ENABLE
está habilitado.
Cuando se recibe una respuesta correcta, las direcciones se muestran desde aCallback
como versiones traducidas IPv6 de NAT64 de las direcciones IPv4 de la respuesta de la consulta.
aConfig
puede ser NULO. En este caso, la configuración predeterminada (de otDnsClientGetDefaultConfig()
) se usará como la configuración para esta consulta. En un aConfig
no NULL, algunos de los campos pueden dejarse sin especificar (valor cero). Los campos no especificados se reemplazan por los valores de la configuración predeterminada.
Detalles | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
||||||||||
Valores que se muestran |
|
otDnsClientResolveService
otError otDnsClientResolveService( otInstance *aInstance, const char *aInstanceLabel, const char *aServiceName, otDnsServiceCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
Esta función envía una consulta de resolución de instancias de servicio de DNS para una instancia de servicio determinada.
Esta función está disponible cuando se habilita OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE
.
aConfig
puede ser NULO. En este caso, la configuración predeterminada (de otDnsClientGetDefaultConfig()
) se usará como la configuración para esta consulta. En un aConfig
no NULL, algunos de los campos pueden dejarse sin especificar (valor cero). Los campos no especificados se reemplazan por los valores de la configuración predeterminada.
Detalles | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
||||||||||||
Valores que se muestran |
|
otDnsClientSetDefaultConfig
void otDnsClientSetDefaultConfig( otInstance *aInstance, const otDnsQueryConfig *aConfig )
Esta función establece la configuración de consultas predeterminada en el cliente de DNS.
Nota: Cualquier consulta en curso seguirá usando la configuración desde que se inició. La nueva configuración predeterminada se usará para cualquier consulta de DNS en el futuro.
aConfig
puede ser NULO. En este caso, la configuración predeterminada se establecerá en los valores predeterminados de las opciones de configuración de OT OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_{}
. Esto restablece la configuración de consulta predeterminada a la configuración cuando se inicia la pila de OpenThread.
En un aConfig
no NULL, el emisor puede optar por dejar algunos de los campos en la instancia otDnsQueryConfig
sin especificar (valor cero). Los campos no especificados se reemplazan por las definiciones de la opción de configuración del OT correspondientes OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_{}
para formar la configuración de consulta predeterminada.
Cuando se habilita OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_SERVER_ADDRESS_AUTO_SET_ENABLE
, el cliente de DNS establece y actualiza automáticamente la dirección IPv6 del servidor en la configuración predeterminada. Esto se realiza solo cuando el usuario no la establece o no la especifica explícitamente. Este comportamiento requiere que el cliente SRP y su función de inicio automático estén habilitadas. Luego, el cliente de SRP supervisará los datos de la red de Thread para entradas del servicio de DNS/SRP a fin de seleccionar un servidor de SRP. La dirección del servidor SRP seleccionada también se configura como la dirección del servidor DNS en la configuración predeterminada.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
otDnsGetNextTxtEntry
otError otDnsGetNextTxtEntry( otDnsTxtEntryIterator *aIterator, otDnsTxtEntry *aEntry )
Esta función analiza los datos TXT de un iterador y obtiene la siguiente entrada de registro TXT (par clave-valor).
aIterator
DEBE inicializarse con otDnsInitTxtEntryIterator()
antes de llamar a esta función, y el búfer de datos TXT que se usa para inicializar el iterador DEBE conservar y permanecer sin cambios. De lo contrario, el comportamiento de esta función no está definido.
Si la longitud de la string de la clave analizada es menor o igual que OT_DNS_TXT_KEY_MAX_LENGTH
(la longitud máxima recomendada de la clave) se muestra en mKey
en aEntry
. Sin embargo, si la clave es más larga, se establece mKey
en NULL y se muestra toda la string de entrada TXT codificada en mValue
y mValueLength
.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
||||||
Valores que se muestran |
|
otDnsInitTxtEntryIterator
void otDnsInitTxtEntryIterator( otDnsTxtEntryIterator *aIterator, const uint8_t *aTxtData, uint16_t aTxtDataLength )
Esta función inicializa un iterador de registro TXT.
El puntero del búfer aTxtData
y su contenido DEBEN conservar y permanecer sin cambios mientras se usa el objeto aIterator
.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
otDnsIsNameCompressionEnabled
bool otDnsIsNameCompressionEnabled( void )
Esta función indica si el modo de compresión de nombres de DNS está habilitado o no.
Esto está diseñado solo para pruebas y está disponible cuando se habilita la configuración OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE
.
Detalles | |
---|---|
Qué muestra |
VERDADERO si el modo de compresión de nombres de DNS está habilitado, de lo contrario, se configura como FALSO.
|
otDnsServiceResponseGetHostAddress
otError otDnsServiceResponseGetHostAddress( const otDnsServiceResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl )
Esta función obtiene la dirección IPv6 del host de una respuesta de resolución de instancia de servicio de DNS.
Esta función solo se DEBE usar desde otDnsServiceCallback
.
La respuesta puede incluir cero o más registros IPv6 de dirección. aIndex
se puede usar para iterar a través de la lista de direcciones. El índice cero obtiene la primera dirección, y así sucesivamente. Cuando llegamos al final de la lista, se muestra OT_ERROR_NOT_FOUND
.
Detalles | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
||||||||||
Valores que se muestran |
|
otDnsServiceResponseGetServiceInfo
otError otDnsServiceResponseGetServiceInfo( const otDnsServiceResponse *aResponse, otDnsServiceInfo *aServiceInfo )
Esta función obtiene información de una instancia de servicio a partir de una respuesta de resolución de instancias de servicio de DNS.
Esta función solo se DEBE usar desde otDnsServiceCallback
.
- Si no se encuentra ningún registro SRV que coincida en
aResponse
, se muestraOT_ERROR_NOT_FOUND
. - 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
, el valor demTxtDataSize
enaServiceInfo
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 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 )
Esta función obtiene el nombre de la instancia de servicio asociado con una respuesta de resolución de instancia de servicio de DNS.
Esta función solo se DEBE usar desde otDnsServiceCallback
.
Detalles | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
||||||||||
Valores que se muestran |
|
otDnsSetNameCompressionEnabled
void otDnsSetNameCompressionEnabled( bool aEnabled )
Esta función habilita o inhabilita el modo de compresión de nombres de DNS.
La compresión de nombres de DNS está habilitada de forma predeterminada. Cuando se inhabilita, los nombres de DNS se agregan como completos y nunca se comprimen. Esto se aplica a los módulos cliente y de servidor de DNS y SRP de OpenThread.
Esto está diseñado solo para pruebas y está disponible cuando se habilita la configuración OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE
.
Ten en cuenta que, en caso de que se use OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_ENABLE
, este modo se aplica a todas las instancias de OpenThread (es decir, llamar a esta función habilita o inhabilita el modo de compresión en todas las instancias de OpenThread).
Detalles | |||
---|---|---|---|
Parámetros |
|
Macros
OT_DNS_MAX_LABEL_SIZE
OT_DNS_MAX_LABEL_SIZE 64
Tamaño máximo de la string de etiquetas (incluye un carácter nulo al final de la string).
OT_DNS_MAX_NAME_SIZE
OT_DNS_MAX_NAME_SIZE 255
Tamaño máximo de la string de nombre (incluye el carácter nulo en el final de la string).
OT_DNS_TXT_KEY_MAX_LENGTH
OT_DNS_TXT_KEY_MAX_LENGTH 9
Longitud máxima recomendada de la string de clave de registro TXT (RFC 6763, sección 6.4).
OT_DNS_TXT_KEY_MIN_LENGTH
OT_DNS_TXT_KEY_MIN_LENGTH 1
Longitud mínima de la string de la clave de registro TXT (RFC 6763, sección 6.4).
Recursos
Los temas de referencia de la API de OpenThread se originan en el código fuente, disponible en GitHub. Para obtener más información o colaborar con nuestra documentación, consulta Recursos.