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