O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.
Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

DNSv6

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{
  OT_DNS_NAT64_UNSPECIFIED = 0,
  OT_DNS_NAT64_ALLOW = 1,
  OT_DNS_NAT64_DISALLOW = 2
}
tipo enumerado
Esse 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
}
tipo enumerado
Esse tipo de enumeração representa a sinalização "Recursion Deired" (RD) em um otDnsQueryConfig.

Typedefs

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

Funções

otDnsAddressResponseGetAddress(const otDnsAddressResponse *aResponse, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
Essa função 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)
Esta função 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)
Essa função recebe o endereço IPv6 do host de uma resposta de navegação DNS (enumeração de instância de serviço).
otDnsBrowseResponseGetServiceInfo(const otDnsBrowseResponse *aResponse, const char *aInstanceLabel, otDnsServiceInfo *aServiceInfo)
Essa função recebe informações para uma instância de serviço com base em uma resposta de navegação DNS (enumeração de instância de serviço).
otDnsBrowseResponseGetServiceInstance(const otDnsBrowseResponse *aResponse, uint16_t aIndex, char *aLabelBuffer, uint8_t aLabelBufferSize)
Essa função recebe uma instância de serviço associada a uma resposta de navegação DNS (enumeração de instância de serviço).
otDnsBrowseResponseGetServiceName(const otDnsBrowseResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize)
Essa função recebe o nome do serviço associado a uma resposta de navegação DNS (enumeração de instância de serviço).
otDnsClientBrowse(otInstance *aInstance, const char *aServiceName, otDnsBrowseCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
Essa função envia uma consulta de busca DNS (enumeração de instância de serviço) para um determinado nome de serviço.
otDnsClientGetDefaultConfig(otInstance *aInstance)
Esta função 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)
Esta função envia uma consulta DNS de resolução de endereço para um ou mais registros AAAA (IPv6) de um determinado nome de host.
otDnsClientResolveIp4Address(otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
Essa função 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)
Essa função envia uma consulta de resolução da instância de serviço DNS para uma determinada instância de serviço.
otDnsClientSetDefaultConfig(otInstance *aInstance, const otDnsQueryConfig *aConfig)
void
Essa função define a configuração de consulta padrão no cliente DNS.
otDnsGetNextTxtEntry(otDnsTxtEntryIterator *aIterator, otDnsTxtEntry *aEntry)
Essa função 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
Essa função inicializa um iterador de registro TXT.
otDnsIsNameCompressionEnabled(void)
bool
Esta função 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)
Essa função recebe o endereço IPv6 do host de uma resposta de resolução da instância de serviço de DNS.
otDnsServiceResponseGetServiceInfo(const otDnsServiceResponse *aResponse, otDnsServiceInfo *aServiceInfo)
Essa função recebe informações sobre uma instância de serviço com base em 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 recebe o nome da instância do serviço associado a uma resposta de resolução da instância de serviço de DNS.
otDnsSetNameCompressionEnabled(bool aEnabled)
void
Esta função ativa/desativa o modo "Compactação de nome DNS".

Estruturas

otDnsQueryConfig

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

OtDnsServiceInfo

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

otDnsTxtEntry

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

otDnsTxtEntryIterator (link em inglês)

Essa estrutura representa um iterador para números inteiros de registro TXT (pares de chave-valor).

Enumerações

OtDnsNat64Mode

 otDnsNat64Mode

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

O modo NAT64 indica se é permitido ou não permitir a conversão de endereços NAT64 durante a resolução de endereços do cliente DNS. Esse modo só é usado quando 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 de clientes DNS.

OT_DNS_NAT64_DISALLOW

Não permitir a conversão de endereços NAT64 durante a resolução do endereço do cliente DNS.

OT_DNS_NAT64_UNSPECIFIED

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

OtDnsRecursionFlag

 otDnsRecursionFlag

Esse tipo de enumeração representa a sinalização "Recursion Deired" (RD) em um otDnsQueryConfig.

Propriedades
OT_DNS_FLAG_NO_RECURSION

Indica que o servidor de nomes DNS não pode resolver a consulta de maneira recorrente.

OT_DNS_FLAG_RECURSION_DESIRED

Indica que o servidor de nomes DNS pode resolver a consulta de maneira recorrente.

OT_DNS_FLAG_UNSPECIFIED

Indica que a sinalização não foi especificada.

Typedefs

OtDnsAddressCallback

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

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

Neste callback, o usuário pode usar as funções otDnsAddressResponseGet{Item}() com o ponteiro aResponse para ver mais informações sobre a resposta.

O ponteiro aResponse só pode ser usado dentro desse callback. Depois de retornar dessa função, ele não permanecerá válido. Portanto, o usuário NÃO PODE manter o ponteiro aResponse para uso posterior.

O aError pode ter o seguinte:

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

  • OT_ERROR_NONE Uma resposta foi recebida com sucesso.
  • OT_ERROR_ABORT Uma transação de DNS foi cancelada pela pilha.
  • OT_ERROR_RESPONSE_THRESHOLD Nenhuma resposta de DNS foi recebida dentro do tempo limite.

Se o servidor rejeitar a solicitação de resolução de endereço, o código do erro do servidor será mapeado da seguinte maneira:

  • (0) SEM ERROS (sem condição de erro) -> OT_ERROR_NONE
  • (1) O servidor FORMERR não conseguiu 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 oferece suporte ao tipo de consulta (OpCode) -> OT_ERROR_NOT_IMPLEMENTED
  • (5) REFUSED Servidor recusado por violação de políticas/segurança -> OT_ERROR_SECURITY
  • (6) YXDOMAIN Um nome que não deveria existir, existe -> OT_ERROR_DUPLICATED
  • (7) YXRRSET Parte do RRset que não deveria existir, existe -> OT_ERROR_DUPLICATED
  • (8) NXRRSET Alguns RRset que deveriam existir, não existem -> OT_ERROR_NOT_FOUND
  • (9) O serviço NOTAUTH não é autoritativo para a zona -> OT_ERROR_SECURITY
  • (10) NOTZONE A nome A não está na zona -> OT_ERROR_PARSE
  • (20) BADNAME Nome inválido -> OT_ERROR_PARSE
  • (21) BADALG: algoritmo inválido -> OT_ERROR_SECURITY
  • (22) BADTRUN truncada – g&g; OT_ERROR_PARSE
  • Outros códigos de resposta -> OT_ERROR_FAILED

OtDnsAddressResponse

struct otDnsAddressResponse otDnsAddressResponse

Esse 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 callback otDnsAddressCallback.

OtDnsBrowseCallback

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

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

Neste callback, o usuário pode usar as funções otDnsBrowseResponseGet{Item}() com o ponteiro aResponse para ver mais informações sobre a resposta.

O ponteiro aResponse só pode ser usado dentro desse callback. Depois de retornar dessa função, ele não permanecerá válido. Portanto, o usuário NÃO PODE manter o ponteiro aResponse para uso posterior.

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

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

OtDnsBrowseResponse

struct otDnsBrowseResponse otDnsBrowseResponse

Esse 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 callback otDnsBrowseCallback.

Consulta de configuração otDns

struct otDnsQueryConfig otDnsQueryConfig

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

Qualquer um dos campos dessa estrutura pode ser definido como zero para indicar que não está especificado. A forma como os campos não especificados são determinados pela função que usa a instância de otDnsQueryConfig

OtDnsServiceCallback

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

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

Neste callback, o usuário pode usar as funções otDnsServiceResponseGet{Item}() com o ponteiro aResponse para ver mais informações sobre a resposta.

O ponteiro aResponse só pode ser usado dentro desse callback. Depois de retornar dessa função, ele não permanecerá válido. Portanto, o usuário NÃO PODE manter o ponteiro aResponse para uso posterior.

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

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

ODDnsServiceInfo

struct otDnsServiceInfo otDnsServiceInfo

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

OtDnsServiceResponse

struct otDnsServiceResponse otDnsServiceResponse

Esse tipo é uma representação opaca de uma resposta a uma consulta DNS de resolução da instância de serviço.

Os ponteiros para a instância desse tipo são fornecidos no callback otDnsAddressCallback.

Entrada de otDnsTxt

struct otDnsTxtEntry otDnsTxtEntry

Essa estrutura 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 persistir e permanecer inalterados após uma instância dessa estrutura ser 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).

OtDnsTxtEntryJUnit

struct otDnsTxtEntryIterator otDnsTxtEntryIterator

Essa estrutura representa um iterador para números inteiros de registro TXT (pares de chave-valor).

Os campos de dados dessa estrutura destinam-se ao uso pelo núcleo OpenOpen e o autor da chamada não deve lê-los ou alterá-los.

Funções

OtDnsAddressResponseGetAddress

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

Essa função recebe um endereço IPv6 associado a uma resposta DNS de resolução de endereço.

Esta função PRECISA ser usada 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
[in] aResponse
Um ponteiro 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 gerar o endereço (NÃO PODE ser NULO).
[out] aTtl
Um ponteiro para um uint32_t para gerar TTL para o endereço. Pode ser NULL se o autor da chamada não quiser receber o TTL.
Valores de retorno
OT_ERROR_NONE
O endereço foi lido.
OT_ERROR_NOT_FOUND
Nenhum registro de endereço em aResponse às aIndex.
OT_ERROR_PARSE
Não foi possível analisar os registros em aResponse.
OT_ERROR_INVALID_STATE
Nenhum prefixo NAT64 (aplicável somente quando NAT64 for permitido).

OtDnsAddressResponseGetHostName

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

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

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

Detalhes
Parâmetros
[in] aResponse
Um ponteiro para a resposta.
[out] aNameBuffer
Um buffer para a matriz de caracteres para produzir o nome do host completo (NÃO PODE ser NULL).
[in] aNameBufferSize
O tamanho de aNameBuffer.
Valores de retorno
OT_ERROR_NONE
O nome completo do host foi lido.
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
)

Essa função recebe o endereço IPv6 do host de uma resposta de navegação DNS (enumeração de instância de serviço).

Esta função PRECISA ser usada 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
[in] aResponse
Um ponteiro para a resposta.
[in] aHostName
O nome do host para receber o endereço (NÃO pode ser NULL).
[in] aIndex
O índice de registro de endereço a ser recuperado.
[out] aAddress
Um ponteiro para um endereço IPv6 para gerar o endereço (NÃO PODE ser NULO).
[out] aTtl
Um ponteiro para um uint32_t para gerar TTL para o endereço. Pode ser NULL se o autor da chamada não quiser receber o TTL.
Valores de retorno
OT_ERROR_NONE
O endereço foi lido.
OT_ERROR_NOT_FOUND
Nenhum registro de endereço para aHostname em aResponse às aIndex.
OT_ERROR_PARSE
Não foi possível analisar os registros em aResponse.

OtDnsBrowseResponseGetServiceInfo

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

Essa função recebe informações para uma instância de serviço com base em uma resposta de navegação DNS (enumeração de instância de serviço).

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

Uma resposta de busca DNS precisa incluir os registros SRV, TXT e AAAA das instâncias de serviço que estão enumeradas. Observe que ela é um requisito NECESSÁRIO e não NECESSÁRIO. 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.
  • 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 será definido como zero.
  • Se o tamanho dos dados TXT for maior que mTxtDataSize, ele será lido parcialmente, e o mTxtDataTruncated 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 usingotDnsBrowseResponseGetHostAddress()`

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

OtDnsBrowseResponseGetServiceInstance

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

Essa função recebe uma instância de serviço associada a uma resposta de navegação DNS (enumeração de instância de serviço).

Esta função PRECISA 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 iterar a lista. O índice zero mostra o primeiro registro. Quando chegarmos ao fim da lista, OT_ERROR_NOT_FOUND será retornado.

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 tem o formato ...

Detalhes
Parâmetros
[in] aResponse
Um ponteiro para a resposta.
[in] aIndex
O índice de registro da instância de serviço a ser recuperado.
[out] aLabelBuffer
Um buffer para a matriz de caracteres para gerar o rótulo da instância de serviço (NÃO DEVE ser NULL).
[in] aLabelBufferSize
O tamanho de aLabelBuffer.
Valores de retorno
OT_ERROR_NONE
A instância de 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 em aResponse.

OtDnsBrowseResponseGetServiceName

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

Essa função recebe o nome do serviço associado a uma resposta de navegação DNS (enumeração de instância de serviço).

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

Detalhes
Parâmetros
[in] aResponse
Um ponteiro para a resposta.
[out] aNameBuffer
Um buffer para a matriz de caracteres para gerar o nome do serviço (NÃO DEVE ser NULL).
[in] aNameBufferSize
O tamanho de aNameBuffer.
Valores de retorno
OT_ERROR_NONE
O nome do serviço foi lido.
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
)

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

Esta função estará disponível quando a OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE estiver ativada.

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 não especificados (valor zero). Os campos não especificados são substituídos pelos valores da configuração padrão.

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

OtDnsClientGetDefaultConfig

const otDnsQueryConfig * otDnsClientGetDefaultConfig(
  otInstance *aInstance
)

Esta função 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 a partir de 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
[in] aInstance
Um ponteiro para uma instância do OpenThread.
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
)

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

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 não especificados (valor zero). Os campos não especificados são substituídos pelos valores da configuração padrão.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aHostName
O nome do host para o qual será consultada o endereço (NÃO pode ser NULO).
[in] aCallback
Um ponteiro de função que precisará ser chamado na recepção da resposta ou no tempo limite.
[in] aContext
Um ponteiro para informações de contexto arbitrárias.
[in] aConfig
Um ponteiro para a configuração a ser usada para essa consulta.
Valores de retorno
OT_ERROR_NONE
Consulta enviada. aCallback será invocado para informar o status.
OT_ERROR_NO_BUFS
Buffer insuficiente para preparar e enviar a consulta.
OT_ERROR_INVALID_ARGS
O nome do host não é um formato válido.
OT_ERROR_INVALID_STATE
Não é possível enviar a consulta porque a interface da linha de execução não está ativa.

Endereço otDnsClientResolveIp4

otError otDnsClientResolveIp4Address(
  otInstance *aInstance,
  const char *aHostName,
  otDnsAddressCallback aCallback,
  void *aContext,
  const otDnsQueryConfig *aConfig
)

Essa função envia uma consulta DNS de resolução de endereço para registros A (IPv4) de um determinado nome de host.

Esta função requer e está disponível quando OPENTHREAD_CONFIG_DNS_CLIENT_NAT64_ENABLE está ativado.

Quando uma resposta é recebida, os endereços são retornados de aCallback como versões do IPv6 NAT64 traduzidas dos endereços IPv4 da resposta da consulta.

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 não especificados (valor zero). Os campos não especificados são substituídos pelos valores da configuração padrão.

Detalhes
Parâmetros
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aHostName
O nome do host para o qual será consultada o endereço (NÃO pode ser NULO).
[in] aCallback
Um ponteiro de função que precisará ser chamado na recepção da resposta ou no tempo limite.
[in] aContext
Um ponteiro para informações de contexto arbitrárias.
[in] aConfig
Um ponteiro para a configuração a ser usada para essa consulta.
Valores de retorno
OT_ERROR_NONE
Consulta enviada. aCallback será invocado para informar o status.
OT_ERROR_NO_BUFS
Buffer insuficiente para preparar e enviar a consulta.
OT_ERROR_INVALID_ARGS
O nome do host não é um formato válido ou o NAT64 não está ativado na configuração.
OT_ERROR_INVALID_STATE
Não é possível enviar a consulta porque a interface da linha de execução não está ativa.

OtDnsClientResolveService

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

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

Esta função estará disponível quando a OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE estiver ativada.

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 não especificados (valor zero). Os campos não especificados são substituídos pelos valores da configuração padrão.

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

OtDnsClientSetDefaultConfig

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

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

Observação:qualquer consulta em andamento vai continuar usando a configuração quando ela foi iniciada. A nova configuração padrão será usada nas consultas DNS futuras. O aConfig pode ser NULL. Neste caso, a configuração padrão será definida como o padrão das opções de configuração de OT OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_{}. Assim, a configuração de consulta padrão é redefinida para a 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 especificada (valor zero). Os campos não especificados são substituídos pelas definições de opção de configuração de OT OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_{} correspondentes para formar a configuração de consulta padrão.

Quando OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_SERVER_ADDRESS_AUTO_SET_ENABLE está ativado, o endereço IPv6 do servidor na configuração padrão é definido e atualizado automaticamente pelo cliente DNS. Isso só é feito quando o usuário não o define ou especifica explicitamente. Esse comportamento requer que o cliente SRP e o recurso de início automático estejam ativados. O cliente SRP monitorará os dados da rede Thread em busca de entradas DNS/SRP Service 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
[in] aInstance
Um ponteiro para uma instância do OpenThread.
[in] aConfig
Um ponteiro para a nova configuração de consulta a ser usada como padrão.

Entrada otDnsGetNextTxt

otError otDnsGetNextTxtEntry(
  otDnsTxtEntryIterator *aIterator,
  otDnsTxtEntry *aEntry
)

Essa função 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 persistir e permanecer inalterado. Caso contrário, o comportamento dessa função será indefinido.

Se o comprimento da string de chave analisada for menor ou igual a OT_DNS_TXT_KEY_MAX_LENGTH (tamanho máximo recomendado da chave), a string de chave será retornada em mKey em aEntry. Mas, 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
[in] aIterator
Um ponteiro para o iterador (NÃO DEVE ser NULL).
[out] aEntry
Um ponteiro para uma estrutura otDnsTxtEntry para gerar a entrada analisada/lida (NÃO DEVE ser NULL).
Valores de retorno
OT_ERROR_NONE
A próxima entrada foi analisada com sucesso. aEntry foi atualizado.
OT_ERROR_NOT_FOUND
Não há mais entradas nos dados TXT.
OT_ERROR_PARSE
Os dados TXT de aIterator não estão bem formados.

OtDnsInitTxtEntryIterator

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

Essa função 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 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 armazenar em buffer contendo 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 "compactação de nome DNS" está ativado ou não.

Ela é destinada apenas a testes e estará disponível quando a configuração OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE estiver ativada.

Detalhes
Retorna
Verdadeiro se o modo "compactação de nome DNS" estiver ativado. Caso contrário, FALSO.

OtDnsServiceResponseGetHostAddress

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

Essa função recebe o endereço IPv6 do host de uma resposta de resolução da instância de serviço de DNS.

Esta função PRECISA ser usada 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
[in] aResponse
Um ponteiro para a resposta.
[in] aHostName
O nome do host para receber o endereço (NÃO pode ser NULL).
[in] aIndex
O índice de registro de endereço a ser recuperado.
[out] aAddress
Um ponteiro para um endereço IPv6 para gerar o endereço (NÃO PODE ser NULO).
[out] aTtl
Um ponteiro para um uint32_t para gerar TTL para o endereço. Pode ser NULL se o autor da chamada não quiser receber o TTL.
Valores de retorno
OT_ERROR_NONE
O endereço foi lido.
OT_ERROR_NOT_FOUND
Nenhum registro de endereço para aHostname em aResponse às aIndex.
OT_ERROR_PARSE
Não foi possível analisar os registros em aResponse.

OtDnsServiceResponseGetServiceInfo

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

Essa função recebe informações sobre uma instância de serviço com base em uma resposta de resolução de instância de serviço DNS.

Esta função PRECISA 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 será definido como zero.
  • Se o tamanho dos dados TXT for maior que mTxtDataSize, ele será lido parcialmente, e o mTxtDataTruncated 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 usingotDnsServiceResponseGetHostAddress()`.

Detalhes
Parâmetros
[in] aResponse
Um ponteiro para a resposta.
[out] aServiceInfo
Uma ServiceInfo para gerar as informações da instância de serviço (NÃO PODE ser NULO).
Valores de retorno
OT_ERROR_NONE
As informações da instância de serviço foram lidas. aServiceInfo foi 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 informados.
OT_ERROR_PARSE
Não foi possível analisar os registros em aResponse.

Nome da serviço otDnsServiceResponse

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

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

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

Detalhes
Parâmetros
[in] aResponse
Um ponteiro para a resposta.
[out] aLabelBuffer
Um buffer para a matriz de caracteres para gerar 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 a matriz de caracteres para gerar o restante do nome do serviço (pode ser NULL se o usuário não estiver interessado em receber o nome.
[in] aNameBufferSize
O tamanho de aNameBuffer.
Valores de retorno
OT_ERROR_NONE
O nome do serviço foi lido.
OT_ERROR_NO_BUFS
O rótulo ou o nome não cabem nos buffers informados.

OtDnsSetNameCompressionEnabled

void otDnsSetNameCompressionEnabled(
  bool aEnabled
)

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

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

Ela é destinada apenas a testes e estará disponível quando a configuração OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE estiver ativada.

No caso de OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_ENABLE ser usado, esse modo se aplicará 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
[in] aEnabled
VERDADEIRO para ativar o modo de compactação de nome de DNS, FALSO para desativar.

Macros

OT_DNS_MAX_LABEL_SIZE

 OT_DNS_MAX_LABEL_SIZE 64

Tamanho máximo da string do rótulo (inclua caracteres nulos 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

É o tamanho máximo recomendado da string de chave de 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 de registro TXT (RFC 6763 – seção 6.4).

Recursos

Os tópicos de referência da API OpenThread são provenientes do código-fonte, disponível no GitHub. Para saber mais ou contribuir com nossa documentação, consulte Recursos.