nl::Inet::AsyncDNSResolverSockets

#include <src/inet/AsyncDNSResolverSockets.h>

Esta é uma classe interna da InetLayer que fornece APIs auxiliares para a resolução do Sistema de Nomes de Domínio (DNS) assíncrono na InetLayer.

Resumo

Não há interface pública disponível para a camada do aplicativo.

Funções públicas

Cancel(DNSResolver & resolver)
Cancelar uma consulta DNS pendente que ainda pode estar ativa.
EnqueueRequest(DNSResolver & resolver)
Enfileira um objeto DNSResolver para resolução de endereço IP assíncrona de um nome de host especificado.
Init(InetLayer *inet)
O inicializador explícito para a classe asyncDNSResolverSockets.
PrepareDNSResolver(DNSResolver & resolver, const char *hostName, uint16_t hostNameLen, uint8_t options, uint8_t maxAddrs, IPAddress *addrArray, DNSResolver::OnResolveCompleteFunct onComplete, void *appState)
Esse método prepara um objeto DNSResolver antes da resolução assíncrona.
Shutdown(void)
Esse é o desinicializador explícito da classe AsyncDNSResolverSockets e cuida de encerrar as linhas de execução e destruir as variáveis de mutex e semáforo.

Funções públicas

Cancelar

INET_ERROR Cancel(
  DNSResolver & resolver
)

Cancelar uma consulta DNS pendente que ainda pode estar ativa.

Detalhes
Parâmetros
[in] resolver
Uma referência ao objeto DNSResolver.

EnqueueRequest

INET_ERROR EnqueueRequest(
  DNSResolver & resolver
)

Enfileira um objeto DNSResolver para resolução de endereço IP assíncrona de um nome de host especificado.

Detalhes
Parâmetros
[in] resolver
Uma referência ao objeto DNSResolver.
Valores de retorno
INET_NO_ERROR
se uma solicitação DNS estiver na fila.
INET_ERROR_NO_MEMORY
se o pool do resolvedor da camada Inet estiver cheio.
other
o erro apropriado de rede POSIX ou do sistema operacional.

Init

INET_ERROR Init(
  InetLayer *inet
)

O inicializador explícito para a classe asyncDNSResolverSockets.

Isso inicializa as variáveis mutex e semáforo e cria os encadeamentos para manipular a resolução de DNS assíncrona.

Detalhes
Parâmetros
[in] aInet
Um ponteiro para o objeto InetLayer.
Valores de retorno
INET_NO_ERROR
se a inicialização for bem-sucedida.
other
o erro apropriado de rede POSIX ou do sistema operacional.

PrepareDNSResolver

INET_ERROR PrepareDNSResolver(
  DNSResolver & resolver,
  const char *hostName,
  uint16_t hostNameLen,
  uint8_t options,
  uint8_t maxAddrs,
  IPAddress *addrArray,
  DNSResolver::OnResolveCompleteFunct onComplete,
  void *appState
)

Esse método prepara um objeto DNSResolver antes da resolução assíncrona.

Detalhes
Parâmetros
[in] resolver
Uma referência a um objeto DNSResolver alocado.
[in] hostName
Um ponteiro para uma string C que representa o nome do host a ser consultado.
[in] hostNameLen
O comprimento da string do nome do host.
[in] options
Um valor inteiro que controla como a resolução do endereço do nome do host é realizada. Os valores são da enumeração #DNSOptions.
[in] maxAddrs
O número máximo de endereços a serem armazenados na tabela de DNS.
[in] addrArray
Um ponteiro para a tabela de DNS.
[in] onComplete
Um ponteiro para a função de callback quando uma solicitação de DNS é concluída.
[in] appState
Um ponteiro para o estado do aplicativo a ser passado para onComplete quando uma solicitação de DNS for concluída.
Valores de retorno
INET_NO_ERROR
se uma solicitação DNS for processada corretamente.

Encerramento

INET_ERROR Shutdown(
  void
)

Esse é o desinicializador explícito da classe AsyncDNSResolverSockets e cuida de encerrar as linhas de execução e destruir as variáveis de mutex e semáforo.

Detalhes
Valores de retorno
INET_NO_ERROR
se o encerramento der certo.
other
o erro apropriado de rede POSIX ou do sistema operacional.