DNS
Este módulo inclui funções que controlam a comunicação DNS.
Resumo
As funções neste módulo só estarão disponíveis se o recurso OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE
estiver ativado.
Enumerações |
|
---|---|
otDnsNat64Mode{
|
enum Type representa o modo NAT64 em uma otDnsQueryConfig . |
otDnsRecursionFlag{
|
enum O tipo representa a flag de "Recursão desejada" (RD) em uma otDnsQueryConfig . |
otDnsServiceMode{
|
enum Type representa o modo de resolução do serviço em uma otDnsQueryConfig . |
otDnsTransportProto{
|
enum "Type" representa o protocolo de transporte DNS em um otDnsQueryConfig . |
Typedefs |
|
---|---|
otDnsAddressCallback)(otError aError, const otDnsAddressResponse *aResponse, void *aContext)
|
typedefvoid(*
O ponteiro é chamado quando uma resposta DNS é recebida para uma consulta de resolução de endereço. |
otDnsAddressResponse
|
typedefstruct otDnsAddressResponse
Uma representação opaca de uma resposta a uma consulta DNS de resolução de endereço. |
otDnsBrowseCallback)(otError aError, const otDnsBrowseResponse *aResponse, void *aContext)
|
typedefvoid(*
O ponteiro é chamado quando uma resposta DNS é recebida para uma consulta de navegação (enumeração de instância de serviço). |
otDnsBrowseResponse
|
typedefstruct otDnsBrowseResponse
Uma representação opaca de uma resposta a uma consulta DNS de navegação (enumeração de instância de serviço). |
otDnsQueryConfig
|
typedefstruct otDnsQueryConfig
Representa uma configuração de consulta DNS. |
otDnsServiceCallback)(otError aError, const otDnsServiceResponse *aResponse, void *aContext)
|
typedefvoid(*
O ponteiro é chamado quando uma resposta DNS é recebida para uma consulta de resolução de instância de serviço. |
otDnsServiceInfo
|
typedefstruct otDnsServiceInfo
Fornece informações para uma instância de serviço DNS. |
otDnsServiceResponse
|
typedefstruct otDnsServiceResponse
Uma representação opaca de uma resposta a uma consulta DNS de resolução de instância de serviço. |
otDnsTxtEntry
|
typedefstruct otDnsTxtEntry
Representa uma entrada de registro TXT que representa um par de chave-valor (RFC 6763 - seção 6.3). |
otDnsTxtEntryIterator
|
typedefstruct otDnsTxtEntryIterator
Representa um iterador para entradas de registro TXT (pares de chave-valor). |
remotas |
|
---|---|
otDnsAddressResponseGetAddress(const otDnsAddressResponse *aResponse, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
|
Recebe um endereço IPv6 associado a uma resposta DNS de resolução de endereço.
|
otDnsAddressResponseGetHostName(const otDnsAddressResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize)
|
Recebe o nome completo do host associado a uma resposta DNS de resolução de endereço.
|
otDnsBrowseResponseGetHostAddress(const otDnsBrowseResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
|
Recebe o endereço IPv6 do host de uma resposta de navegação (enumeração de instância de serviço).
|
otDnsBrowseResponseGetServiceInfo(const otDnsBrowseResponse *aResponse, const char *aInstanceLabel, otDnsServiceInfo *aServiceInfo)
|
Recebe informações de uma instância de serviço de uma resposta de navegação (enumeração de instância de serviço).
|
otDnsBrowseResponseGetServiceInstance(const otDnsBrowseResponse *aResponse, uint16_t aIndex, char *aLabelBuffer, uint8_t aLabelBufferSize)
|
Recebe uma instância de serviço associada a uma resposta de navegação (enumeração de instância de serviço).
|
otDnsBrowseResponseGetServiceName(const otDnsBrowseResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize)
|
Recebe o nome do serviço associado a uma resposta de navegação de DNS (enumeração de instância de serviço).
|
otDnsClientBrowse(otInstance *aInstance, const char *aServiceName, otDnsBrowseCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
Envia uma consulta de navegação DNS (enumeração de instância de serviço) para um determinado nome de serviço.
|
otDnsClientGetDefaultConfig(otInstance *aInstance)
|
const otDnsQueryConfig *
Recebe a configuração de consulta padrão atual usada pelo cliente DNS.
|
otDnsClientResolveAddress(otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
Envia uma consulta DNS de resolução de endereço para registros AAAA (IPv6) para um determinado nome de host.
|
otDnsClientResolveIp4Address(otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
Envia uma consulta DNS de resolução de endereço para registros A (IPv4) de um determinado nome de host.
|
otDnsClientResolveService(otInstance *aInstance, const char *aInstanceLabel, const char *aServiceName, otDnsServiceCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
Inicia uma resolução de instância de serviço DNS para uma determinada instância de serviço.
|
otDnsClientResolveServiceAndHostAddress(otInstance *aInstance, const char *aInstanceLabel, const char *aServiceName, otDnsServiceCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
Inicia uma resolução de instância de serviço DNS para determinada instância de serviço, com uma possível resolução de endereço de acompanhamento para o nome do host descoberto na instância de serviço.
|
otDnsClientSetDefaultConfig(otInstance *aInstance, const otDnsQueryConfig *aConfig)
|
void
Define a configuração de consulta padrão no cliente DNS.
|
otDnsEncodeTxtData(const otDnsTxtEntry *aTxtEntries, uint16_t aNumTxtEntries, uint8_t *aTxtData, uint16_t *aTxtDataLength)
|
Codifica uma determinada lista de entradas de registro TXT (pares de chave/valor) em dados TXT (seguindo o formato especificado pela RFC 6763).
|
otDnsGetNextTxtEntry(otDnsTxtEntryIterator *aIterator, otDnsTxtEntry *aEntry)
|
Analisa os dados TXT de um iterador e recebe a próxima entrada de registro TXT (par de chave-valor).
|
otDnsInitTxtEntryIterator(otDnsTxtEntryIterator *aIterator, const uint8_t *aTxtData, uint16_t aTxtDataLength)
|
void
Inicializa um iterador de registro TXT.
|
otDnsIsNameCompressionEnabled(void)
|
bool
Indica se o modo "Compactação de nome DNS" está ativado ou não.
|
otDnsServiceResponseGetHostAddress(const otDnsServiceResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
|
Recebe o endereço IPv6 do host de uma resposta de resolução da instância do serviço DNS.
|
otDnsServiceResponseGetServiceInfo(const otDnsServiceResponse *aResponse, otDnsServiceInfo *aServiceInfo)
|
Recebe informações de uma instância de serviço de uma resposta de resolução de instância de serviço DNS.
|
otDnsServiceResponseGetServiceName(const otDnsServiceResponse *aResponse, char *aLabelBuffer, uint8_t aLabelBufferSize, char *aNameBuffer, uint16_t aNameBufferSize)
|
Recebe o nome da instância de serviço associado a uma resposta de resolução de instância de serviço DNS.
|
otDnsSetNameCompressionEnabled(bool aEnabled)
|
void
Ativa/desativa o modo "compactação de nome DNS".
|
Estruturas |
|
---|---|
otDnsQueryConfig |
Representa uma configuração de consulta DNS. |
otDnsServiceInfo |
Fornece informações para uma instância de serviço DNS. |
otDnsTxtEntry |
Representa uma entrada de registro TXT que representa um par de chave-valor (RFC 6763 - seção 6.3). |
otDnsTxtEntryIterator |
Representa um iterador para entradas de registro TXT (pares de chave-valor). |
Enumerações
otDnsNat64Mode
otDnsNat64Mode
Type representa o modo NAT64 em uma otDnsQueryConfig
.
O modo NAT64 indica se é permitido ou não permitir a conversão de endereços NAT64 durante a resolução do endereço do cliente DNS. Este modo só é usado quando o OPENTHREAD_CONFIG_DNS_CLIENT_NAT64_ENABLE
está ativado.
Propriedades | |
---|---|
OT_DNS_NAT64_ALLOW
|
Permitir a conversão de endereços NAT64 durante a resolução de endereços do cliente DNS. |
OT_DNS_NAT64_DISALLOW
|
Não permitir a conversão de endereços NAT64 durante a resolução de endereços do cliente DNS. |
OT_DNS_NAT64_UNSPECIFIED
|
O modo NAT64 não está especificado. Use o modo NAT64 padrão. |
otDnsRecursionFlag
otDnsRecursionFlag
O tipo representa a flag de "Recursão desejada" (RD) em uma otDnsQueryConfig
.
Propriedades | |
---|---|
OT_DNS_FLAG_NO_RECURSION
|
Indica que o servidor de nomes DNS não pode resolver a consulta recursivamente. |
OT_DNS_FLAG_RECURSION_DESIRED
|
Indica que o servidor de nomes DNS pode resolver a consulta recursivamente. |
OT_DNS_FLAG_UNSPECIFIED
|
Indica que a sinalização não está especificada. |
otDnsServiceMode
otDnsServiceMode
Type representa o modo de resolução do serviço em uma otDnsQueryConfig
.
Isso é usado apenas durante a resolução otDnsClientResolveService()
do serviço do cliente DNS. Ele determina quais tipos de registro são consultados.
Propriedades | |
---|---|
OT_DNS_SERVICE_MODE_SRV
|
Consulta apenas para registro SRV. |
OT_DNS_SERVICE_MODE_SRV_TXT
|
Consulte os registros SRV e TXT na mesma mensagem. |
OT_DNS_SERVICE_MODE_SRV_TXT_OPTIMIZE
|
Consulte o TXT/SRV juntos primeiro. Se falhar, faça a consulta separadamente. |
OT_DNS_SERVICE_MODE_SRV_TXT_SEPARATE
|
Consulte em paralelo SRV e TXT usando mensagens separadas. |
OT_DNS_SERVICE_MODE_TXT
|
Consulta apenas para registro TXT. |
OT_DNS_SERVICE_MODE_UNSPECIFIED
|
Modo não especificado. Usa o modo de serviço padrão. |
otDnsTransportProto
otDnsTransportProto
"Type" representa o protocolo de transporte DNS em um otDnsQueryConfig
.
Este OT_DNS_TRANSPORT_TCP
só é compatível quando OPENTHREAD_CONFIG_DNS_CLIENT_OVER_TCP_ENABLE
está ativado.
Propriedades | |
---|---|
OT_DNS_TRANSPORT_TCP
|
A consulta DNS deve ser enviada por UDP. |
OT_DNS_TRANSPORT_UDP
|
O transporte DNS não está especificado. |
Typedefs
otDnsAddressCallback
void(* otDnsAddressCallback)(otError aError, const otDnsAddressResponse *aResponse, void *aContext)
O ponteiro é chamado quando uma resposta DNS é recebida para uma consulta de resolução de endereço.
Nesse callback, o usuário pode usar funções otDnsAddressResponseGet{Item}()
com o ponteiro aResponse
para ter mais informações sobre a resposta.
O ponteiro aResponse
só pode ser usado nesse callback e, depois de retornar dessa função, ele não vai continuar válido. Portanto, o usuário NÃO pode reter o ponteiro aResponse
para uso posterior.
O aError
pode ter o seguinte:
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
- OT_ERROR_NONE Uma resposta foi recebida.
- OT_ERROR_ABORT Uma transação de DNS foi cancelada pela pilha.
- OT_ERROR_RESPONSE_TIMEOUT Nenhuma resposta DNS foi recebida dentro do tempo limite.
Se o servidor rejeitar a solicitação de resolução de endereço, o código de erro do servidor será mapeado da seguinte maneira:
- (0) NOERROR Sucesso (sem condição de erro) -> OT_ERROR_NONE
- (1) O servidor FORMERR não pode interpretar devido a um erro de formato -> OT_ERROR_PARSE
- (2) O servidor SERVFAIL encontrou uma falha interna -> OT_ERROR_FAILED
- (3) Nome NXDOMAIN que deveria existir, não existe -> OT_ERROR_NOT_FOUND
- (4) O Servidor NOTIMP não aceita o tipo de consulta (OpCode) -> OT_ERROR_NOT_IMPLEMENTED
- (5) Servidor RECUSADO recusado por motivos de política/segurança -> OT_ERROR_SECURITY
- (6) YXDOMAIN Um nome que não deveria existir, existe -> OT_ERROR_DUPLICATED
- (7) YXRRSET Algum RRset que não deveria existir, existe -> OT_ERROR_DUPLICATED
- (8) NXRRSET Algum RRset que deveria existir, não existe -> OT_ERROR_NOT_FOUND
- (9) O serviço NOTAUTH não é autoritativo para a zona -> OT_ERROR_SECURITY
- (10) NOTZONE Um nome não está na zona -> OT_ERROR_PARSE
- (20) BADNAME Nome incorreto -> OT_ERROR_PARSE
- (21) BADALG Algoritmo inválido -> OT_ERROR_SECURITY
- (22) BADTRUN Truncamento incorreto -> OT_ERROR_PARSE
- Outros códigos de resposta -> OT_ERROR_FAILED
otDnsAddressResponse
struct otDnsAddressResponse otDnsAddressResponse
Uma representação opaca de uma resposta a uma consulta DNS de resolução de endereço.
Os ponteiros para a instância desse tipo são fornecidos pelo callback otDnsAddressCallback
.
otDnsBrowseCallback
void(* otDnsBrowseCallback)(otError aError, const otDnsBrowseResponse *aResponse, void *aContext)
O ponteiro é chamado quando uma resposta DNS é recebida para uma consulta de navegação (enumeração de instância de serviço).
Nesse callback, o usuário pode usar funções otDnsBrowseResponseGet{Item}()
com o ponteiro aResponse
para ter mais informações sobre a resposta.
O ponteiro aResponse
só pode ser usado nesse callback e, depois de retornar dessa função, ele não vai continuar válido. Portanto, o usuário NÃO pode reter o ponteiro aResponse
para uso posterior.
Para acessar a lista completa de valores possíveis para aError
, consulte otDnsAddressCallback()
.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
otDnsBrowseResponse
struct otDnsBrowseResponse otDnsBrowseResponse
Uma representação opaca de uma resposta a uma consulta DNS de navegação (enumeração de instância de serviço).
Os ponteiros para a instância desse tipo são fornecidos pelo callback otDnsBrowseCallback
.
otDnsQueryConfig
struct otDnsQueryConfig otDnsQueryConfig
Representa uma configuração de consulta DNS.
Qualquer um dos campos nesta estrutura pode ser definido como zero para indicar que não está especificado. A forma como os campos não especificados são tratados é determinada pela função que usa a instância de otDnsQueryConfig
.
otDnsServiceCallback
void(* otDnsServiceCallback)(otError aError, const otDnsServiceResponse *aResponse, void *aContext)
O ponteiro é chamado quando uma resposta DNS é recebida para uma consulta de resolução de instância de serviço.
Nesse callback, o usuário pode usar funções otDnsServiceResponseGet{Item}()
com o ponteiro aResponse
para ter mais informações sobre a resposta.
O ponteiro aResponse
só pode ser usado nesse callback e, depois de retornar dessa função, ele não vai continuar válido. Portanto, o usuário NÃO pode reter o ponteiro aResponse
para uso posterior.
Para acessar a lista completa de valores possíveis para aError
, consulte otDnsAddressCallback()
.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
otDnsServiceInfo
struct otDnsServiceInfo otDnsServiceInfo
Fornece informações para uma instância de serviço DNS.
otDnsServiceResponse
struct otDnsServiceResponse otDnsServiceResponse
Uma representação opaca de uma resposta a uma consulta DNS de resolução de instância de serviço.
Os ponteiros para a instância desse tipo são fornecidos pelo callback otDnsAddressCallback
.
otDnsTxtEntry
struct otDnsTxtEntry otDnsTxtEntry
Representa uma entrada de registro TXT que representa um par de chave-valor (RFC 6763 - seção 6.3).
Os buffers de string apontados por mKey
e mValue
PRECISAM permanecer e permanecer inalterados depois que uma instância dessa estrutura é transmitida para o OpenThread (como parte da instância otSrpClientService
).
Uma matriz de entradas otDnsTxtEntry
é usada em otSrpClientService
para especificar o registro TXT completo (uma lista de entradas).
otDnsTxtEntryIterator
struct otDnsTxtEntryIterator otDnsTxtEntryIterator
Representa um iterador para entradas de registro TXT (pares de chave-valor).
Os campos de dados nessa estrutura são destinados ao uso pelo núcleo do OpenThread e o autor da chamada não deve lê-los nem alterá-los.
remotas
otDnsAddressResponseGetAddress
otError otDnsAddressResponseGetAddress( const otDnsAddressResponse *aResponse, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl )
Recebe um endereço IPv6 associado a uma resposta DNS de resolução de endereço.
PRECISA ser usado apenas a partir de otDnsAddressCallback
.
A resposta pode incluir vários registros de endereço IPv6. aIndex
pode ser usado para iterar a lista de endereços. O índice zero recebe o primeiro endereço e assim por diante. Quando chegarmos ao fim da lista, OT_ERROR_NOT_FOUND
será retornado.
Detalhes | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||||
Valores de retorno |
|
otDnsAddressResponseGetHostName
otError otDnsAddressResponseGetHostName( const otDnsAddressResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize )
Recebe o nome completo do host associado a uma resposta DNS de resolução de endereço.
PRECISA ser usado apenas a partir de otDnsAddressCallback
.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||
Valores de retorno |
|
otDnsBrowseResponseGetHostAddress
otError otDnsBrowseResponseGetHostAddress( const otDnsBrowseResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl )
Recebe o endereço IPv6 do host de uma resposta de navegação (enumeração de instância de serviço).
PRECISA ser usado apenas a partir de otDnsBrowseCallback
.
A resposta pode incluir zero ou mais registros de endereço IPv6. aIndex
pode ser usado para iterar a lista de endereços. O índice zero recebe o primeiro endereço e assim por diante. Quando chegarmos ao fim da lista, OT_ERROR_NOT_FOUND
será retornado.
Detalhes | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||||||
Valores de retorno |
|
otDnsBrowseResponseGetServiceInfo
otError otDnsBrowseResponseGetServiceInfo( const otDnsBrowseResponse *aResponse, const char *aInstanceLabel, otDnsServiceInfo *aServiceInfo )
Recebe informações de uma instância de serviço de uma resposta de navegação (enumeração de instância de serviço).
PRECISA ser usado apenas a partir de otDnsBrowseCallback
.
Uma resposta de DNS de navegação pode incluir registros SRV, TXT e AAAA para as instâncias de serviço enumeradas. Esse é um requisito OBRIGATÓRIO, e não OBRIGATÓRIO, e servidores/resolvedores não precisam fornecer isso. Essa função tenta recuperar essas informações para uma determinada instância de serviço, quando disponível.
- Se nenhum registro SRV correspondente for encontrado em
aResponse
,OT_ERROR_NOT_FOUND
será retornado. Nesse caso, nenhum registro adicional (sem TXT e/ou AAAA) será lido. - Se um registro SRV correspondente for encontrado em
aResponse
,aServiceInfo
será atualizado eOT_ERROR_NONE
será retornado. - Se nenhum registro TXT correspondente for encontrado em
aResponse
,mTxtDataSize
emaServiceInfo
será definido como zero. - Se o comprimento dos dados TXT for maior que
mTxtDataSize
, eles serão lidos parcialmente emTxtDataTruncated
será definido como verdadeiro. - Se nenhum registro AAAA correspondente for encontrado em
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().
Detalhes | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||||
Valores de retorno |
|
otDnsBrowseResponseGetServiceInstance
otError otDnsBrowseResponseGetServiceInstance( const otDnsBrowseResponse *aResponse, uint16_t aIndex, char *aLabelBuffer, uint8_t aLabelBufferSize )
Recebe uma instância de serviço associada a uma resposta de navegação (enumeração de instância de serviço).
PRECISA ser usado apenas a partir de otDnsBrowseCallback
.
A resposta pode incluir vários registros de instância de serviço. aIndex
pode ser usada para iterar a lista. O índice zero fornece o primeiro registro. Quando chegarmos ao fim da lista, OT_ERROR_NOT_FOUND
será retornado.
Observe que essa função recebe o rótulo da instância de serviço e não o nome completo da instância de serviço, que está no formato
.
Detalhes | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||||
Valores de retorno |
|
otDnsBrowseResponseGetServiceName
otError otDnsBrowseResponseGetServiceName( const otDnsBrowseResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize )
Recebe o nome do serviço associado a uma resposta de navegação de DNS (enumeração de instância de serviço).
PRECISA ser usado apenas a partir de otDnsBrowseCallback
.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||
Valores de retorno |
|
otDnsClientBrowse
otError otDnsClientBrowse( otInstance *aInstance, const char *aServiceName, otDnsBrowseCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
Envia uma consulta de navegação DNS (enumeração de instância de serviço) para um determinado nome de serviço.
Disponível quando o OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE
está ativado.
O aConfig
pode ser NULL. Nesse caso, a configuração padrão (de otDnsClientGetDefaultConfig()
) será usada para esta consulta. Em um aConfig
não NULL, alguns dos campos podem ser deixados não especificados (valor zero). Os campos não especificados são substituídos pelos valores da configuração padrão.
Detalhes | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||||||
Valores de retorno |
|
otDnsClientGetDefaultConfig
const otDnsQueryConfig * otDnsClientGetDefaultConfig( otInstance *aInstance )
Recebe a configuração de consulta padrão atual usada pelo cliente DNS.
Quando a pilha do OpenThread é iniciada, a configuração de consulta DNS padrão é determinada com base em um conjunto de opções de configuração de OT, como OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_SERVER_IP6_ADDRESS
, _DEFAULT_SERVER_PORT
, _DEFAULT_RESPONSE_TIMEOUT
etc. (consulte config/dns_client.h
para ver todas as opções de configuração relacionadas).
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
Retorna |
Um ponteiro para a configuração padrão atual que está sendo usada pelo cliente DNS.
|
otDnsClientResolveAddress
otError otDnsClientResolveAddress( otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
Envia uma consulta DNS de resolução de endereço para registros AAAA (IPv6) para um determinado nome de host.
O aConfig
pode ser NULL. Nesse caso, a configuração padrão (de otDnsClientGetDefaultConfig()
) será usada para esta consulta. Em um aConfig
não NULL, alguns dos campos podem ser deixados não especificados (valor zero). Os campos não especificados são substituídos pelos valores da configuração padrão.
Detalhes | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||||||
Valores de retorno |
|
otDnsClientResolveIp4Address
otError otDnsClientResolveIp4Address( otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
Envia uma consulta DNS de resolução de endereço para registros A (IPv4) de um determinado nome de host.
Requer e está disponível quando OPENTHREAD_CONFIG_DNS_CLIENT_NAT64_ENABLE
está ativado.
Quando uma resposta bem-sucedida é recebida, os endereços são retornados de aCallback
como versões NAT64 IPv6 traduzidas dos endereços IPv4 da resposta da consulta.
O aConfig
pode ser NULL. Nesse caso, a configuração padrão (de otDnsClientGetDefaultConfig()
) será usada para esta consulta. Em um aConfig
não NULL, alguns dos campos podem ser deixados não especificados (valor zero). Os campos não especificados são substituídos pelos valores da configuração padrão.
Detalhes | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||||||
Valores de retorno |
|
otDnsClientResolveService
otError otDnsClientResolveService( otInstance *aInstance, const char *aInstanceLabel, const char *aServiceName, otDnsServiceCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
Inicia uma resolução de instância de serviço DNS para uma determinada instância de serviço.
Disponível quando o OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE
está ativado.
O aConfig
pode ser NULL. Nesse caso, a configuração padrão (de otDnsClientGetDefaultConfig()
) será usada para esta consulta. Em um aConfig
não NULL, alguns dos campos podem ser deixados não especificados (valor zero). Os campos não especificados são substituídos pelos valores da configuração padrão.
A função envia consultas para registros SRV e/ou TXT para a instância de serviço especificada. O campo mServiceMode
em otDnsQueryConfig
determina quais registros consultar (somente SRV, apenas TXT ou SRV e TXT) e como realizar a consulta (juntos na mesma mensagem, separadamente em paralelo ou no modo otimizado), em que o cliente tenta primeiro a mesma mensagem e depois separadamente se não receber uma resposta.
O registro SRV fornece informações sobre porta, prioridade e peso do serviço, além do nome do host associado à instância de serviço. Esta função NÃO executa a resolução de endereços para o nome do host descoberto no registro SRV. O servidor/resolver pode fornecer registros AAAA/A para o nome do host na seção "Dados adicionais" da resposta à consulta SRV/TXT, e essas informações podem ser recuperadas usando otDnsServiceResponseGetServiceInfo()
em otDnsServiceCallback
. Os usuários desta API NÃO PODEM presumir que o endereço do host sempre estará disponível em otDnsServiceResponseGetServiceInfo()
.
Detalhes | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||||||||
Valores de retorno |
|
otDnsClientResolveServiceAndHostAddress
otError otDnsClientResolveServiceAndHostAddress( otInstance *aInstance, const char *aInstanceLabel, const char *aServiceName, otDnsServiceCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
Inicia uma resolução de instância de serviço DNS para determinada instância de serviço, com uma possível resolução de endereço de acompanhamento para o nome do host descoberto na instância de serviço.
Disponível quando o OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE
está ativado.
O aConfig
pode ser NULL. Nesse caso, a configuração padrão (de otDnsClientGetDefaultConfig()
) será usada para esta consulta. Em um aConfig
não NULL, alguns dos campos podem ser deixados não especificados (valor zero). Os campos não especificados são substituídos pelos valores da configuração padrão. Não é possível usar esta função com mServiceMode
na configuração de DNS definida como OT_DNS_SERVICE_MODE_TXT
(ou seja, consultar somente o registro TXT) e retornará OT_ERROR_INVALID_ARGS
.
Funciona de forma semelhante a otDnsClientResolveService()
ao enviar consultas para registros SRV e TXT. No entanto, se o servidor/resolver não fornecer registros AAAA/A para o nome do host na resposta à consulta SRV (na seção Dados adicionais), ele executará a resolução do nome do host (enviando uma consulta AAAA) para o nome de host descoberto do registro SRV. O callback aCallback
é invocado quando as respostas para todas as consultas são recebidas (ou seja, as resoluções do serviço e do endereço do host são concluídas).
Detalhes | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||||||||
Valores de retorno |
|
otDnsClientSetDefaultConfig
void otDnsClientSetDefaultConfig( otInstance *aInstance, const otDnsQueryConfig *aConfig )
Define a configuração de consulta padrão no cliente DNS.
OaConfig
pode ser NULL. Nesse caso, a configuração padrão será definida com os valores padrão das opções de configuração de OT OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_{}
. Isso redefine a configuração de consulta padrão de volta à configuração quando a pilha do OpenThread é iniciada.
Em um aConfig
não NULL, o autor da chamada pode optar por deixar alguns dos campos na instância otDnsQueryConfig
não especificados (valor zero). Os campos não especificados são substituídos pelas definições correspondentes das opções de configuração de OT OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_{}
para formar a configuração de consulta padrão.
Quando OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_SERVER_ADDRESS_AUTO_SET_ENABLE
estiver ativado, o endereço IPv6 do servidor na configuração padrão será definido e atualizado automaticamente pelo cliente DNS. Isso é feito apenas quando o usuário não o define ou especifica explicitamente. Esse comportamento exige que o cliente SRP e o recurso de início automático dele estejam ativados. O cliente SRP vai monitorar os dados da rede Thread para entradas de serviço DNS/SRP para selecionar um servidor SRP. O endereço do servidor SRP selecionado também é definido como o endereço do servidor DNS na configuração padrão.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
otDnsEncodeTxtData
otError otDnsEncodeTxtData( const otDnsTxtEntry *aTxtEntries, uint16_t aNumTxtEntries, uint8_t *aTxtData, uint16_t *aTxtDataLength )
Codifica uma determinada lista de entradas de registro TXT (pares de chave/valor) em dados TXT (seguindo o formato especificado pela RFC 6763).
Detalhes | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||||
Valores de retorno |
|
otDnsGetNextTxtEntry
otError otDnsGetNextTxtEntry( otDnsTxtEntryIterator *aIterator, otDnsTxtEntry *aEntry )
Analisa os dados TXT de um iterador e recebe a próxima entrada de registro TXT (par de chave-valor).
O aIterator
PRECISA ser inicializado usando otDnsInitTxtEntryIterator()
antes de chamar essa função, e o buffer de dados TXT usado para inicializar o iterador PRECISA permanecer e permanecer inalterado. Caso contrário, o comportamento dessa função será indefinido.
Se o comprimento da string da chave analisada for menor ou igual a OT_DNS_TXT_KEY_ITER_MAX_LENGTH
, a string da chave vai ser retornada em mKey
no método aEntry
. No entanto, se a chave for maior, mKey
será definido como NULL e toda a string de entrada TXT codificada será retornada em mValue
e mValueLength
.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||
Valores de retorno |
|
otDnsInitTxtEntryIterator
void otDnsInitTxtEntryIterator( otDnsTxtEntryIterator *aIterator, const uint8_t *aTxtData, uint16_t aTxtDataLength )
Inicializa um iterador de registro TXT.
O ponteiro do buffer aTxtData
e o conteúdo dele PRECISAM persistir e permanecer inalterados enquanto o objeto aIterator
estiver sendo usado.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
otDnsIsNameCompressionEnabled
bool otDnsIsNameCompressionEnabled( void )
Indica se o modo "Compactação de nome DNS" está ativado ou não.
Destinado a testes e está disponível quando a configuração OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE
está ativada.
Detalhes | |
---|---|
Retorna |
TRUE se o modo "Compactação de nome DNS" estiver ativado; caso contrário, FALSE.
|
otDnsServiceResponseGetHostAddress
otError otDnsServiceResponseGetHostAddress( const otDnsServiceResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl )
Recebe o endereço IPv6 do host de uma resposta de resolução da instância do serviço DNS.
PRECISA ser usado apenas a partir de otDnsServiceCallback
.
A resposta pode incluir zero ou mais registros de endereço IPv6. aIndex
pode ser usado para iterar a lista de endereços. O índice zero recebe o primeiro endereço e assim por diante. Quando chegarmos ao fim da lista, OT_ERROR_NOT_FOUND
será retornado.
Detalhes | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||||||
Valores de retorno |
|
otDnsServiceResponseGetServiceInfo
otError otDnsServiceResponseGetServiceInfo( const otDnsServiceResponse *aResponse, otDnsServiceInfo *aServiceInfo )
Recebe informações de uma instância de serviço de uma resposta de resolução de instância de serviço DNS.
PRECISA ser usado apenas em um otDnsServiceCallback
acionado por otDnsClientResolveService()
ou otDnsClientResolveServiceAndHostAddress()
.
Quando ele é usado em um callback otDnsClientResolveService()
, a resposta DNS do servidor/resolver pode incluir registros AAAA na seção "Dados adicionais" do nome do host associado à instância de serviço resolvida. Esse requisito DEVE e não é OBRIGATÓRIO. Portanto, servidores/resolvedores não precisam fornecer isso. Essa função tenta analisar registros AAAA se incluídos na resposta. Se não for incluído, mHostAddress
vai ser definido como zeros (endereço não especificado). Para resolver o endereço do host, o usuário pode usar a função otDnsClientResolveServiceAndHostAddress()
da API do cliente DNS que vai realizar a resolução do serviço seguida por uma consulta de resolução do endereço do nome do host (quando os registros AAAA não são fornecidos pelo servidor/resolver na resposta da consulta SRV).
- Se um registro SRV correspondente for encontrado em
aResponse
, oaServiceInfo
será atualizado. - Se nenhum registro SRV correspondente for encontrado,
OT_ERROR_NOT_FOUND
será retornado, a menos que a configuração da consulta para essa consulta tenha usadoOT_DNS_SERVICE_MODE_TXT
paramServiceMode
(ou seja, a solicitação foi apenas para o registro TXT). Nesse caso, ainda tentamos analisar o registro SRV da seção de dados adicionais da resposta (caso o servidor tenha fornecido as informações). - Se nenhum registro TXT correspondente for encontrado em
aResponse
,mTxtDataSize
emaServiceInfo
será definido como zero. - Se o comprimento dos dados TXT for maior que
mTxtDataSize
, eles serão lidos parcialmente emTxtDataTruncated
será definido como verdadeiro. - Se nenhum registro AAAA correspondente for encontrado em
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().
Detalhes | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||||
Valores de retorno |
|
otDnsServiceResponseGetServiceName
otError otDnsServiceResponseGetServiceName( const otDnsServiceResponse *aResponse, char *aLabelBuffer, uint8_t aLabelBufferSize, char *aNameBuffer, uint16_t aNameBufferSize )
Recebe o nome da instância de serviço associado a uma resposta de resolução de instância de serviço DNS.
PRECISA ser usado apenas a partir de otDnsServiceCallback
.
Detalhes | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||||||
Valores de retorno |
|
otDnsSetNameCompressionEnabled
void otDnsSetNameCompressionEnabled( bool aEnabled )
Ativa/desativa o modo "compactação de nome DNS".
Por padrão, a compactação de nomes de DNS está ativada. Quando desativado, os nomes DNS são anexados como completos e nunca compactados. Aplica-se aos módulos de cliente/servidor DNS e SRP do OpenThread.
Destinado a testes e está disponível quando a configuração OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE
está ativada.
Observe que, no caso de OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_ENABLE
ser usado, esse modo se aplica a todas as instâncias do OpenThread, ou seja, chamar essa função ativa/desativa o modo de compactação em todas as instâncias do OpenThread.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
Macros
OT_DNS_MAX_LABEL_SIZE
OT_DNS_MAX_LABEL_SIZE 64
Tamanho máximo da string de rótulos (inclua um caractere nulo no final da string).
OT_DNS_MAX_NAME_SIZE
OT_DNS_MAX_NAME_SIZE 255
Tamanho máximo da string de nome (inclui um caractere nulo no final da string).
OT_DNS_TXT_KEY_ITER_MAX_LENGTH
OT_DNS_TXT_KEY_ITER_MAX_LENGTH 64
Tamanho máximo da string de chave TXT compatível com otDnsTxtEntryIterator
.
OT_DNS_TXT_KEY_MAX_LENGTH
OT_DNS_TXT_KEY_MAX_LENGTH 9
Comprimento máximo recomendado da string da chave de registro TXT (RFC 6763 — seção 6.4).
OT_DNS_TXT_KEY_MIN_LENGTH
OT_DNS_TXT_KEY_MIN_LENGTH 1
Tamanho mínimo da string da chave de registro TXT (RFC 6763 — seção 6.4).
Recursos
Os tópicos de Referência da API OpenThread são originados do código-fonte, disponível no GitHub. Para mais informações ou para contribuir com nossa documentação, consulte Recursos.