O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

DNSv6

Este módulo inclui funções que controlam a comunicação DNS.

Resumo

As funções neste módulo estão disponíveis apenas se o recurso OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE estiver ativado.

Enumerações

otDnsNat64Mode {
OT_DNS_NAT64_UNSPECIFIED = 0,
OT_DNS_NAT64_ALLOW = 1,
OT_DNS_NAT64_DISALLOW = 2
}
enum
Este tipo de enumeração representa o modo NAT64 em um otDnsQueryConfig .
otDnsRecursionFlag {
OT_DNS_FLAG_UNSPECIFIED = 0,
OT_DNS_FLAG_RECURSION_DESIRED = 1,
OT_DNS_FLAG_NO_RECURSION = 2
}
enum
Esse tipo de enumeração representa o sinalizador "Recursion Desired" (RD) em um otDnsQueryConfig .

Typedefs

otDnsAddressCallback )(otError aError, const otDnsAddressResponse *aResponse, void *aContext) typedef
void(*
Este ponteiro de função é chamado quando uma resposta DNS é recebida para uma consulta de resolução de endereço.
otDnsAddressResponse typedef
Este tipo é 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) typedef
void(*
Este ponteiro de função é chamado quando uma resposta DNS é recebida para uma consulta de navegação (enumeração de instância de serviço).
otDnsBrowseResponse typedef
Este tipo é uma representação opaca de uma resposta a uma consulta DNS de navegação (enumeração de instância de serviço).
otDnsQueryConfig typedef
Esta estrutura representa uma configuração de consulta DNS.
otDnsServiceCallback )(otError aError, const otDnsServiceResponse *aResponse, void *aContext) typedef
void(*
Este ponteiro de função é chamado quando uma resposta DNS é recebida para uma consulta de resolução de instância de serviço.
otDnsServiceInfo typedef
Esta estrutura fornece informações para uma instância de serviço DNS.
otDnsServiceResponse typedef
Este tipo é uma representação opaca de uma resposta a uma consulta DNS de resolução de instância de serviço.
otDnsTxtEntry typedef
Esta estrutura representa uma entrada de registro TXT que representa um par chave / valor (RFC 6763 - seção 6.3).
otDnsTxtEntryIterator typedef
Esta estrutura representa um iterador para entradas de registro TXT (pares chave / valor).

Funções

otDnsAddressResponseGetAddress (const otDnsAddressResponse *aResponse, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
Esta função obtém um endereço IPv6 associado a uma resposta DNS de resolução de endereço.
otDnsAddressResponseGetHostName (const otDnsAddressResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize)
Esta função obtém 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)
Esta função obtém o endereço IPv6 do host de uma resposta do navegador DNS (enumeração de instância de serviço).
otDnsBrowseResponseGetServiceInfo (const otDnsBrowseResponse *aResponse, const char *aInstanceLabel, otDnsServiceInfo *aServiceInfo)
Esta função obtém informações para uma instância de serviço de uma resposta do navegador DNS (enumeração de instância de serviço).
otDnsBrowseResponseGetServiceInstance (const otDnsBrowseResponse *aResponse, uint16_t aIndex, char *aLabelBuffer, uint8_t aLabelBufferSize)
Esta função obtém uma instância de serviço associada a uma resposta do navegador DNS (enumeração de instância de serviço).
otDnsBrowseResponseGetServiceName (const otDnsBrowseResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize)
Esta função obtém o nome do serviço associado a uma resposta do navegador DNS (enumeração da instância do serviço).
otDnsClientBrowse ( otInstance *aInstance, const char *aServiceName, otDnsBrowseCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
Esta função 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)
Esta função obtém 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)
Esta função envia uma consulta DNS de resolução de endereço para registro (s) AAAA (IPv6) para um determinado nome de host.
otDnsClientResolveService ( otInstance *aInstance, const char *aInstanceLabel, const char *aServiceName, otDnsServiceCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
Esta função envia uma consulta de resolução de instância de serviço DNS para uma determinada instância de serviço.
otDnsClientSetDefaultConfig ( otInstance *aInstance, const otDnsQueryConfig *aConfig)
void
Esta função define a configuração de consulta padrão no cliente DNS.
otDnsGetNextTxtEntry ( otDnsTxtEntryIterator *aIterator, otDnsTxtEntry *aEntry)
Esta função analisa os dados TXT de um iterador e obtém a próxima entrada de registro TXT (par chave / valor).
otDnsInitTxtEntryIterator ( otDnsTxtEntryIterator *aIterator, const uint8_t *aTxtData, uint16_t aTxtDataLength)
void
Esta função inicializa um iterador de registro TXT.
otDnsIsNameCompressionEnabled (void)
bool
Esta função indica se o modo "compressão de nome DNS" está habilitado ou não.
otDnsServiceResponseGetHostAddress (const otDnsServiceResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
Esta função obtém o endereço IPv6 do host de uma resposta de resolução de instância de serviço DNS.
otDnsServiceResponseGetServiceInfo (const otDnsServiceResponse *aResponse, otDnsServiceInfo *aServiceInfo)
Esta função obtém informações para 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)
Esta função obtém o nome da instância do serviço associado a uma resposta de resolução da instância do serviço DNS.
otDnsSetNameCompressionEnabled (bool aEnabled)
void
Esta função ativa / desativa o modo "compressão de nome DNS".

Structs

otDnsQueryConfig

Esta estrutura representa uma configuração de consulta DNS.

otDnsServiceInfo

Esta estrutura fornece informações para uma instância de serviço DNS.

otDnsTxtEntry

Esta estrutura representa uma entrada de registro TXT que representa um par chave / valor (RFC 6763 - seção 6.3).

otDnsTxtEntryIterator

Esta estrutura representa um iterador para entradas de registro TXT (pares chave / valor).

Enumerações

otDnsNat64Mode

 otDnsNat64Mode

Este tipo de enumeração representa o modo NAT64 em um otDnsQueryConfig .

O modo NAT64 indica se deve permitir ou não a tradução de endereço NAT64 durante a resolução de endereço de cliente DNS. Este modo é usado apenas quando OPENTHREAD_CONFIG_DNS_CLIENT_NAT64_ENABLE está habilitado.

Propriedades
OT_DNS_NAT64_ALLOW

Permitir tradução de endereço NAT64 durante a resolução de endereço de cliente DNS.

OT_DNS_NAT64_DISALLOW

Não permita a conversão de endereço NAT64 durante a resolução de endereço de cliente DNS.

OT_DNS_NAT64_UNSPECIFIED

O modo NAT64 não é especificado. Use o modo NAT64 padrão.

otDnsRecursionFlag

 otDnsRecursionFlag

Esse tipo de enumeração representa o sinalizador "Recursion Desired" (RD) em um 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 o sinalizador não foi especificado.

Typedefs

otDnsAddressCallback

void(* otDnsAddressCallback)(otError aError, const otDnsAddressResponse *aResponse, void *aContext)

Este ponteiro de função é chamado quando uma resposta DNS é recebida para uma consulta de resolução de endereço.

Nesse retorno de chamada, o usuário pode usar as otDnsAddressResponseGet{Item}() junto com o ponteiro aResponse para obter mais informações sobre a resposta.

O ponteiro aResponse só pode ser usado dentro deste callback e depois de retornar desta função não permanecerá válido, então o usuário NÃO DEVE reter o ponteiro aResponse para uso posterior.

O aError pode ter o seguinte:

Detalhes
Parâmetros
[in] aError
O resultado da transação DNS.
[in] aResponse
Um ponteiro para a resposta (é sempre diferente de NULL).
[in] aContext
Um ponteiro para o contexto específico do aplicativo.

  • OT_ERROR_NONE Uma resposta foi recebida com sucesso.
  • OT_ERROR_ABORT Uma transação DNS foi abortada por 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 forma:

  • (0) NOERROR Sucesso (sem condição de erro) -> OT_ERROR_NONE
  • (1) FORMERR Server incapaz de interpretar devido a erro de formato -> OT_ERROR_PARSE
  • (2) O servidor SERVFAIL encontrou uma falha interna -> OT_ERROR_FAILED
  • (3) NXDOMAIN Nome que deveria existir, não existe -> OT_ERROR_NOT_FOUND
  • (4) NOTIMP Server não suporta o tipo de consulta (OpCode) -> OT_ERROR_NOT_IMPLEMENTED
  • (5) RECUSADO Servidor recusado por razões de política / segurança -> OT_ERROR_SECURITY
  • (6) YXDOMAIN Algum 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 tem autoridade para a zona -> OT_ERROR_SECURITY
  • (10) NOTZONE Um nome não está na zona -> OT_ERROR_PARSE
  • (20) Mau nome de BADNAME -> OT_ERROR_PARSE
  • (21) BADALG Algoritmo ruim -> OT_ERROR_SECURITY
  • (22) BADTRUN Truncamento ruim -> OT_ERROR_PARSE
  • Outros códigos de resposta -> OT_ERROR_FAILED

otDnsAddressResponse

struct otDnsAddressResponse otDnsAddressResponse

Este tipo é 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 no retorno de chamada otDnsAddressCallback .

otDnsBrowseCallback

void(* otDnsBrowseCallback)(otError aError, const otDnsBrowseResponse *aResponse, void *aContext)

Este ponteiro de função é chamado quando uma resposta DNS é recebida para uma consulta de navegação (enumeração de instância de serviço).

Nesse retorno de chamada, o usuário pode usar as otDnsBrowseResponseGet{Item}() junto com o ponteiro aResponse para obter mais informações sobre a resposta.

O ponteiro aResponse só pode ser usado dentro deste callback e depois de retornar desta função não permanecerá válido, então o usuário NÃO DEVE reter o ponteiro aResponse para uso posterior.

Para obter a lista completa de valores possíveis para aError , consulte otDnsAddressCallback() .

Detalhes
Parâmetros
[in] aError
O resultado da transação DNS.
[in] aResponse
Um ponteiro para a resposta (é sempre diferente de NULL).
[in] aContext
Um ponteiro para o contexto específico do aplicativo.

otDnsBrowseResponse

struct otDnsBrowseResponse otDnsBrowseResponse

Este tipo é 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 no retorno de chamada otDnsBrowseCallback .

otDnsQueryConfig

struct otDnsQueryConfig otDnsQueryConfig

Esta estrutura representa uma configuração de consulta DNS.

Qualquer um dos campos nesta estrutura pode ser definido como zero para indicar que não foi especificado. O modo como os campos não especificados são tratados é determinado pela função que usa a instância de otDnsQueryConfig .

otDnsServiceCallback

void(* otDnsServiceCallback)(otError aError, const otDnsServiceResponse *aResponse, void *aContext)

Este ponteiro de função é chamado quando uma resposta DNS é recebida para uma consulta de resolução de instância de serviço.

Nesse retorno de chamada, o usuário pode usar as otDnsServiceResponseGet{Item}() junto com o ponteiro aResponse para obter mais informações sobre a resposta.

O ponteiro aResponse só pode ser usado dentro deste callback e depois de retornar desta função não permanecerá válido, então o usuário NÃO DEVE reter o ponteiro aResponse para uso posterior.

Para obter a lista completa de valores possíveis para aError , consulte otDnsAddressCallback() .

Detalhes
Parâmetros
[in] aError
O resultado da transação DNS.
[in] aResponse
Um ponteiro para a resposta (é sempre diferente de NULL).
[in] aContext
Um ponteiro para o contexto específico do aplicativo.

otDnsServiceInfo

struct otDnsServiceInfo otDnsServiceInfo

Esta estrutura fornece informações para uma instância de serviço DNS.

otDnsServiceResponse

struct otDnsServiceResponse otDnsServiceResponse

Este tipo é 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 no retorno de chamada otDnsAddressCallback .

otDnsTxtEntry

struct otDnsTxtEntry otDnsTxtEntry

Esta estrutura representa uma entrada de registro TXT que representa um par chave / valor (RFC 6763 - seção 6.3).

Os buffers de string apontados por mKey e mValue DEVEM persistir e permanecer inalterados depois que uma instância dessa estrutura é passada 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

Esta estrutura representa um iterador para entradas de registro TXT (pares chave / valor).

Os campos de dados nesta estrutura são destinados ao uso do núcleo OpenThread e o chamador não deve lê-los ou alterá-los.

Funções

otDnsAddressResponseGetAddress

otError otDnsAddressResponseGetAddress(
  const otDnsAddressResponse *aResponse,
  uint16_t aIndex,
  otIp6Address *aAddress,
  uint32_t *aTtl
)

Esta função obtém um endereço IPv6 associado a uma resposta DNS de resolução de endereço.

Esta função DEVE ser usada apenas a partir de otDnsAddressCallback .

A resposta pode incluir vários registros de endereço IPv6. aIndex pode ser usado para percorrer a lista de endereços. O índice zero obtém o primeiro endereço e assim por diante. Quando alcançamos o final da lista, OT_ERROR_NOT_FOUND é retornado.

Detalhes
Parâmetros
[in] aResponse
Um indicador para a resposta.
[in] aIndex
O índice de registro de endereço a ser recuperado.
[out] aAddress
Um ponteiro para um endereço IPv6 para a saída do endereço (NÃO DEVE ser NULL).
[out] aTtl
Um ponteiro para um uint32_t para saída TTL para o endereço. Pode ser NULL se o chamador não quiser obter o TTL.
Valores Retornados
OT_ERROR_NONE
O endereço foi lido com sucesso.
OT_ERROR_NOT_FOUND
Nenhum registro de endereço em aResponse em aIndex .
OT_ERROR_PARSE
Não foi possível analisar os registros no aResponse .

otDnsAddressResponseGetHostName

otError otDnsAddressResponseGetHostName(
  const otDnsAddressResponse *aResponse,
  char *aNameBuffer,
  uint16_t aNameBufferSize
)

Esta função obtém o nome completo do host associado a uma resposta DNS de resolução de endereço.

Esta função DEVE ser usada apenas a partir de otDnsAddressCallback .

Detalhes
Parâmetros
[in] aResponse
Um indicador para a resposta.
[out] aNameBuffer
Um buffer para char array para produzir o nome completo do host (NÃO DEVE ser NULL).
[in] aNameBufferSize
O tamanho de aNameBuffer .
Valores Retornados
OT_ERROR_NONE
O nome completo do host foi lido com sucesso.
OT_ERROR_NO_BUFS
O nome não cabe em aNameBuffer .

otDnsBrowseResponseGetHostAddress

otError otDnsBrowseResponseGetHostAddress(
  const otDnsBrowseResponse *aResponse,
  const char *aHostName,
  uint16_t aIndex,
  otIp6Address *aAddress,
  uint32_t *aTtl
)

Esta função obtém o endereço IPv6 do host de uma resposta do navegador DNS (enumeração de instância de serviço).

Esta função DEVE ser usada apenas a partir de otDnsBrowseCallback .

A resposta pode incluir zero ou mais registros de endereço IPv6. aIndex pode ser usado para percorrer a lista de endereços. O índice zero obtém o primeiro endereço e assim por diante. Quando alcançamos o final da lista, OT_ERROR_NOT_FOUND é retornado.

Detalhes
Parâmetros
[in] aResponse
Um indicador para a resposta.
[in] aHostName
O nome do host para obter o endereço (NÃO DEVE ser NULL).
[in] aIndex
O índice de registro de endereço a ser recuperado.
[out] aAddress
Um ponteiro para um endereço IPv6 para a saída do endereço (NÃO DEVE ser NULL).
[out] aTtl
Um ponteiro para um uint32_t para saída TTL para o endereço. Pode ser NULL se o chamador não quiser obter o TTL.
Valores Retornados
OT_ERROR_NONE
O endereço foi lido com sucesso.
OT_ERROR_NOT_FOUND
Nenhum registro de endereço para aHostname em aResponse em aIndex .
OT_ERROR_PARSE
Não foi possível analisar os registros no aResponse .

otDnsBrowseResponseGetServiceInfo

otError otDnsBrowseResponseGetServiceInfo(
  const otDnsBrowseResponse *aResponse,
  const char *aInstanceLabel,
  otDnsServiceInfo *aServiceInfo
)

Esta função obtém informações para uma instância de serviço de uma resposta do navegador DNS (enumeração de instância de serviço).

Esta função DEVE ser usada apenas a partir de otDnsBrowseCallback .

Uma resposta DNS do navegador deve incluir os registros SRV, TXT e AAAA para as instâncias de serviço enumeradas (observe que é um DEVER e não um requisito OBRIGATÓRIO). Esta 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.
  • Se um registro SRV correspondente for encontrado em aResponse , aServiceInfo será atualizado e OT_ERROR_NONE será retornado.
  • Se nenhum registro TXT correspondente for encontrado em aResponse , mTxtDataSize em aServiceInfo é definido como zero.
  • 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, mHostAddress is set to the first one. The other addresses can be retrieved using otDnsBrowseResponseGetHostAddress () `.

Detalhes
Parâmetros
[in] aResponse
Um indicador para a resposta.
[in] aInstanceLabel
O rótulo da instância de serviço (NÃO DEVE ser NULL).
[out] aServiceInfo
Um ServiceInfo para ServiceInfo as informações da instância de serviço (NÃO DEVE ser NULL).
Valores Retornados
OT_ERROR_NONE
As informações da instância de serviço foram lidas. aServiceInfo é atualizado.
OT_ERROR_NOT_FOUND
Não foi possível encontrar um registro SRV correspondente para aInstanceLabel .
OT_ERROR_NO_BUFS
O nome do host e / ou os dados TXT não cabem nos buffers fornecidos.
OT_ERROR_PARSE
Não foi possível analisar os registros no aResponse .

otDnsBrowseResponseGetServiceInstance

otError otDnsBrowseResponseGetServiceInstance(
  const otDnsBrowseResponse *aResponse,
  uint16_t aIndex,
  char *aLabelBuffer,
  uint8_t aLabelBufferSize
)

Esta função obtém uma instância de serviço associada a uma resposta do navegador DNS (enumeração de instância de serviço).

Esta função DEVE ser usada apenas a partir de otDnsBrowseCallback .

A resposta pode incluir vários registros de instância de serviço. aIndex pode ser usado para percorrer a lista. O índice zero fornece o primeiro registro. Quando alcançamos o final da lista, OT_ERROR_NOT_FOUND é retornado.

Observe que esta função obtém 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
[in] aResponse
Um indicador para a resposta.
[in] aIndex
O índice de registro da instância de serviço a ser recuperado.
[out] aLabelBuffer
Um buffer para o array char para produzir o rótulo da instância do serviço (NÃO DEVE ser NULL).
[in] aLabelBufferSize
O tamanho de aLabelBuffer .
Valores Retornados
OT_ERROR_NONE
A instância do serviço foi lida com sucesso.
OT_ERROR_NO_BUFS
O nome não cabe em aNameBuffer .
OT_ERROR_NOT_FOUND
Nenhum registro de instância de serviço em aResponse em aIndex .
OT_ERROR_PARSE
Não foi possível analisar os registros no aResponse .

otDnsBrowseResponseGetServiceName

otError otDnsBrowseResponseGetServiceName(
  const otDnsBrowseResponse *aResponse,
  char *aNameBuffer,
  uint16_t aNameBufferSize
)

Esta função obtém o nome do serviço associado a uma resposta do navegador DNS (enumeração da instância do serviço).

Esta função DEVE ser usada apenas a partir de otDnsBrowseCallback .

Detalhes
Parâmetros
[in] aResponse
Um indicador para a resposta.
[out] aNameBuffer
Um buffer para char array para produzir o nome do serviço (NÃO DEVE ser NULL).
[in] aNameBufferSize
O tamanho de aNameBuffer .
Valores Retornados
OT_ERROR_NONE
O nome do serviço foi lido com sucesso.
OT_ERROR_NO_BUFS
O nome não cabe em aNameBuffer .

otDnsClientBrowse

otError otDnsClientBrowse(
  otInstance *aInstance,
  const char *aServiceName,
  otDnsBrowseCallback aCallback,
  void *aContext,
  const otDnsQueryConfig *aConfig
)

Esta função envia uma consulta de navegação DNS (enumeração de instância de serviço) para um determinado nome de serviço.

Esta função está disponível quando OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE está habilitado.

O aConfig pode ser NULL. Neste caso, a configuração padrão (de otDnsClientGetDefaultConfig() ) será usada como a configuração para esta consulta. Em um aConfig não NULL, alguns dos campos podem ser deixados sem especificação (valor zero). Os campos não especificados são então substituídos pelos valores da configuração padrão.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância OpenThread.
[in] aServiceName
O nome do serviço a ser consultado (NÃO DEVE ser NULL).
[in] aCallback
Um ponteiro de função que deve ser chamado na recepção da resposta ou no tempo limite.
[in] aContext
Um ponteiro para informações de contexto arbitrário.
[in] aConfig
Um ponteiro para a configuração a ser usada para esta consulta.
Valores Retornados
OT_ERROR_NONE
Consulta enviada com sucesso. aCallback será invocado para relatar o status.
OT_ERROR_NO_BUFS
Buffer insuficiente para preparar e enviar a consulta.

otDnsClientGetDefaultConfig

const otDnsQueryConfig * otDnsClientGetDefaultConfig(
  otInstance *aInstance
)

Esta função obtém a configuração de consulta padrão atual usada pelo cliente DNS.

Quando a pilha OpenThread é iniciada, a configuração da consulta DNS padrão é determinada a partir de um conjunto de opções de configuração OT, como OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_SERVER_IP6_ADDRESS , _DEFAULT_SERVER_PORT , _DEFAULT_RESPONSE_TIMEOUT , etc. (consulte config/dns_client.h para todas as opções de configuração relacionadas).

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância OpenThread.
Devoluções
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
)

Esta função envia uma consulta DNS de resolução de endereço para registro (s) AAAA (IPv6) para um determinado nome de host.

O aConfig pode ser NULL. Neste caso, a configuração padrão (de otDnsClientGetDefaultConfig() ) será usada como configuração para esta consulta. Em um aConfig não NULL, alguns dos campos podem ser deixados sem especificação (valor zero). Os campos não especificados são então substituídos pelos valores da configuração padrão.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância OpenThread.
[in] aHostName
O nome do host para o qual o endereço será consultado (NÃO DEVE ser NULL).
[in] aCallback
Um ponteiro de função que deve ser chamado na recepção da resposta ou no tempo limite.
[in] aContext
Um ponteiro para informações de contexto arbitrário.
[in] aConfig
Um ponteiro para a configuração a ser usada para esta consulta.
Valores Retornados
OT_ERROR_NONE
Consulta enviada com sucesso. aCallback será invocado para relatar o status.
OT_ERROR_NO_BUFS
Buffer insuficiente para preparar e enviar a consulta.

otDnsClientResolveService

otError otDnsClientResolveService(
  otInstance *aInstance,
  const char *aInstanceLabel,
  const char *aServiceName,
  otDnsServiceCallback aCallback,
  void *aContext,
  const otDnsQueryConfig *aConfig
)

Esta função envia uma consulta de resolução de instância de serviço DNS para uma determinada instância de serviço.

Esta função está disponível quando OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE está habilitado.

O aConfig pode ser NULL. Neste caso, a configuração padrão (de otDnsClientGetDefaultConfig() ) será usada como a configuração para esta consulta. Em um aConfig não NULL, alguns dos campos podem ser deixados sem especificação (valor zero). Os campos não especificados são então substituídos pelos valores da configuração padrão.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância OpenThread.
[in] aInstanceLabel
O rótulo da instância de serviço.
[in] aServiceName
O nome do serviço (junto com um nome de instância completo do formulário aInstanceLabel ).
[in] aCallback
Um ponteiro de função que deve ser chamado na recepção da resposta ou no tempo limite.
[in] aContext
Um ponteiro para informações de contexto arbitrário.
[in] aConfig
Um ponteiro para a configuração a ser usada para esta consulta.
Valores Retornados
OT_ERROR_NONE
Consulta enviada com sucesso. aCallback será invocado para relatar o status.
OT_ERROR_NO_BUFS
Buffer insuficiente para preparar e enviar a consulta.
OT_ERROR_INVALID_ARGS
aInstanceLabel é NULL.

otDnsClientSetDefaultConfig

void otDnsClientSetDefaultConfig(
  otInstance *aInstance,
  const otDnsQueryConfig *aConfig
)

Esta função define a configuração de consulta padrão no cliente DNS.

Nota: Qualquer consulta em andamento continuará a usar a configuração de quando foi iniciada. A nova configuração padrão será usada para quaisquer consultas DNS futuras. O aConfig pode ser NULL. Neste caso, a configuração padrão será definida para os padrões das opções de configuração do OT OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_{} . Isso redefine a configuração da consulta padrão de volta à configuração quando a pilha OpenThread é iniciada.

Em um aConfig não NULL, o chamador pode escolher 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 de opção de configuração OT correspondentes OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_{} para formar a configuração de consulta padrão.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância OpenThread.
[in] aConfig
Um ponteiro para a nova configuração de consulta a ser usada como padrão.

otDnsGetNextTxtEntry

otError otDnsGetNextTxtEntry(
  otDnsTxtEntryIterator *aIterator,
  otDnsTxtEntry *aEntry
)

Esta função analisa os dados TXT de um iterador e obtém a próxima entrada de registro TXT (par chave / valor).

O aIterator DEVE ser inicializado usando otDnsInitTxtEntryIterator() antes de chamar esta função e o buffer de dados TXT usado para inicializar o iterador DEVE persistir e permanecer inalterado. Caso contrário, o comportamento desta função é indefinido.

Se o comprimento da string da chave analisada for menor ou igual a OT_DNS_TXT_KEY_MAX_LENGTH (comprimento máximo recomendado da chave), a string da chave é retornada em mKey em aEntry . Mas se a chave for mais longa, então mKey é definido como NULL e toda a string de entrada TXT codificada é retornada em mValue e mValueLength .

Detalhes
Parâmetros
[in] aIterator
Um ponteiro para o iterador (NÃO DEVE ser NULL).
[out] aEntry
Um ponteiro para uma estrutura otDnsTxtEntry para otDnsTxtEntry a entrada analisada / lida (NÃO DEVE ser NULL).
Valores Retornados
OT_ERROR_NONE
A próxima entrada foi analisada com sucesso. aEntry é atualizado.
OT_ERROR_NOT_FOUND
Não há mais entradas nos dados TXT.
OT_ERROR_PARSE
Os dados TXT do aIterator não estão bem formados.

otDnsInitTxtEntryIterator

void otDnsInitTxtEntryIterator(
  otDnsTxtEntryIterator *aIterator,
  const uint8_t *aTxtData,
  uint16_t aTxtDataLength
)

Esta função inicializa um iterador de registro TXT.

O ponteiro do buffer aTxtData e seu conteúdo DEVEM persistir e permanecer inalterado enquanto o objeto aIterator está sendo usado.

Detalhes
Parâmetros
[in] aIterator
Um ponteiro para o iterador a ser inicializado (NÃO DEVE ser NULL).
[in] aTxtData
Um ponteiro para o buffer que contém os dados TXT codificados.
[in] aTxtDataLength
O comprimento (número de bytes) de aTxtData .

otDnsIsNameCompressionEnabled

bool otDnsIsNameCompressionEnabled(
  void
)

Esta função indica se o modo "compressão de nome DNS" está habilitado ou não.

Destina-se apenas a testes e está disponível quando a configuração OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE está habilitada.

Detalhes
Devoluções
TRUE se o modo "compressão de nome DNS" estiver habilitado, FALSE caso contrário.

otDnsServiceResponseGetHostAddress

otError otDnsServiceResponseGetHostAddress(
  const otDnsServiceResponse *aResponse,
  const char *aHostName,
  uint16_t aIndex,
  otIp6Address *aAddress,
  uint32_t *aTtl
)

Esta função obtém o endereço IPv6 do host de uma resposta de resolução de instância de serviço DNS.

Esta função DEVE ser usada apenas a partir de otDnsServiceCallback .

A resposta pode incluir zero ou mais registros de endereço IPv6. aIndex pode ser usado para percorrer a lista de endereços. O índice zero obtém o primeiro endereço e assim por diante. Quando alcançamos o final da lista, OT_ERROR_NOT_FOUND é retornado.

Detalhes
Parâmetros
[in] aResponse
Um indicador para a resposta.
[in] aHostName
O nome do host para obter o endereço (NÃO DEVE ser NULL).
[in] aIndex
O índice de registro de endereço a ser recuperado.
[out] aAddress
Um ponteiro para um endereço IPv6 para a saída do endereço (NÃO DEVE ser NULL).
[out] aTtl
Um ponteiro para um uint32_t para saída TTL para o endereço. Pode ser NULL se o chamador não quiser obter o TTL.
Valores Retornados
OT_ERROR_NONE
O endereço foi lido com sucesso.
OT_ERROR_NOT_FOUND
Nenhum registro de endereço para aHostname em aResponse em aIndex .
OT_ERROR_PARSE
Não foi possível analisar os registros no aResponse .

otDnsServiceResponseGetServiceInfo

otError otDnsServiceResponseGetServiceInfo(
  const otDnsServiceResponse *aResponse,
  otDnsServiceInfo *aServiceInfo
)

Esta função obtém informações para uma instância de serviço de uma resposta de resolução de instância de serviço DNS.

Esta função DEVE ser usada apenas a partir de otDnsServiceCallback .

  • Se nenhum registro SRV correspondente for encontrado em aResponse , OT_ERROR_NOT_FOUND será retornado.
  • Se um registro SRV correspondente for encontrado em aResponse , aServiceInfo será atualizado e OT_ERROR_NONE será retornado.
  • Se nenhum registro TXT correspondente for encontrado em aResponse , mTxtDataSize em aServiceInfo é definido como zero.
  • 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, mHostAddress is set to the first one. The other addresses can be retrieved using otDnsServiceResponseGetHostAddress () `.

Detalhes
Parâmetros
[in] aResponse
Um indicador para a resposta.
[out] aServiceInfo
Um ServiceInfo para ServiceInfo as informações da instância de serviço (NÃO DEVE ser NULL).
Valores Retornados
OT_ERROR_NONE
As informações da instância de serviço foram lidas. aServiceInfo é atualizado.
OT_ERROR_NOT_FOUND
Não foi possível encontrar um registro SRV correspondente em aResponse .
OT_ERROR_NO_BUFS
O nome do host e / ou os dados TXT não cabem nos buffers fornecidos.
OT_ERROR_PARSE
Não foi possível analisar os registros no aResponse .

otDnsServiceResponseGetServiceName

otError otDnsServiceResponseGetServiceName(
  const otDnsServiceResponse *aResponse,
  char *aLabelBuffer,
  uint8_t aLabelBufferSize,
  char *aNameBuffer,
  uint16_t aNameBufferSize
)

Esta função obtém o nome da instância do serviço associado a uma resposta de resolução da instância do serviço DNS.

Esta função DEVE ser usada apenas a partir de otDnsServiceCallback .

Detalhes
Parâmetros
[in] aResponse
Um indicador para a resposta.
[out] aLabelBuffer
Um buffer para um array de char para produzir o rótulo da instância de serviço (NÃO DEVE ser NULL).
[in] aLabelBufferSize
O tamanho de aLabelBuffer .
[out] aNameBuffer
Um buffer para o array char para produzir o resto do nome do serviço (pode ser NULL se o usuário não estiver interessado em obter o nome.
[in] aNameBufferSize
O tamanho de aNameBuffer .
Valores Retornados
OT_ERROR_NONE
O nome do serviço foi lido com sucesso.
OT_ERROR_NO_BUFS
O rótulo ou o nome não cabe nos buffers fornecidos.

otDnsSetNameCompressionEnabled

void otDnsSetNameCompressionEnabled(
  bool aEnabled
)

Esta função ativa / desativa o modo "compressão de nome DNS".

Por padrão, a compactação de nomes DNS está ativada. Quando desativados, os nomes DNS são anexados como completos e nunca compactados. Isso se aplica aos módulos cliente / servidor DNS e SRP do OpenThread.

Destina-se apenas a testes e está disponível quando a configuração OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE está habilitada.

Observe que, no caso de OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_ENABLE ser usado, este modo se aplica a todas as instâncias OpenThread (ou seja, chamar esta função ativa / desativa o modo de compactação em todas as instâncias OpenThread).

Detalhes
Parâmetros
[in] aEnabled
TRUE para habilitar o modo "compressão de nome DNS", FALSE para desabilitar.

Macros

OT_DNS_MAX_LABEL_SIZE

 OT_DNS_MAX_LABEL_SIZE 64

Tamanho máximo da string do rótulo (incluir 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 caractere nulo no final da string).

OT_DNS_TXT_KEY_MAX_LENGTH

 OT_DNS_TXT_KEY_MAX_LENGTH 9

Comprimento máximo recomendado da string da chave do registro TXT (RFC 6763 - seção 6.4).

OT_DNS_TXT_KEY_MIN_LENGTH

 OT_DNS_TXT_KEY_MIN_LENGTH 1

Comprimento mínimo da string da chave do registro TXT (RFC 6763 - seção 6.4).