nl::Inet::AsyncDNSResolverSockets

#include <src/inet/AsyncDNSResolverSockets.h>

Ini adalah class internal untuk InetLayer yang menyediakan API helper untuk resolusi Asynchronous Domain Name System (DNS) di InetLayer.

Ringkasan

Tidak ada antarmuka publik yang tersedia untuk lapisan aplikasi.

Fungsi publik

Cancel(DNSResolver & resolver)
Batalkan kueri DNS yang belum terselesaikan yang mungkin masih aktif.
EnqueueRequest(DNSResolver & resolver)
Mengantrekan objek DNSResolver untuk resolusi alamat IP asinkron dari nama host yang ditentukan.
Init(InetLayer *inet)
Penginisialisasi eksplisit untuk class AsynchronousDNSResolverSockets.
PrepareDNSResolver(DNSResolver & resolver, const char *hostName, uint16_t hostNameLen, uint8_t options, uint8_t maxAddrs, IPAddress *addrArray, DNSResolver::OnResolveCompleteFunct onComplete, void *appState)
Metode ini menyiapkan objek DNSResolver sebelum resolusi asinkron.
Shutdown(void)
Ini adalah deinisialisasi eksplisit class AsyncDNSResolverSockets untuk menangani penonaktifan thread serta memusnahkan variabel mutex dan smaphore.

Fungsi publik

Batal

INET_ERROR Cancel(
  DNSResolver & resolver
)

Batalkan kueri DNS yang belum terselesaikan yang mungkin masih aktif.

Detail
Parameter
[in] resolver
Referensi ke objek DNSResolver.

EnqueueRequest

INET_ERROR EnqueueRequest(
  DNSResolver & resolver
)

Mengantrekan objek DNSResolver untuk resolusi alamat IP asinkron dari nama host yang ditentukan.

Detail
Parameter
[in] resolver
Referensi ke objek DNSResolver.
Nilai Pengembalian
INET_NO_ERROR
apakah permintaan DNS berhasil diantrekan.
INET_ERROR_NO_MEMORY
jika kumpulan resolver lapisan Inet penuh.
other
jaringan POSIX atau kesalahan OS yang sesuai.

Inisiasi

INET_ERROR Init(
  InetLayer *inet
)

Penginisialisasi eksplisit untuk class AsynchronousDNSResolverSockets.

Tindakan ini akan melakukan inisialisasi variabel mutex dan semaphore, serta membuat thread untuk menangani resolusi DNS asinkron.

Detail
Parameter
[in] aInet
Pointer ke objek InetLayer.
Nilai Pengembalian
INET_NO_ERROR
jika inisialisasi berhasil.
other
jaringan POSIX atau kesalahan OS yang sesuai.

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
)

Metode ini menyiapkan objek DNSResolver sebelum resolusi asinkron.

Detail
Parameter
[in] resolver
Referensi ke objek DNSResolver yang dialokasikan.
[in] hostName
Pointer ke string C yang mewakili nama {i>host<i} yang akan dikueri.
[in] hostNameLen
Panjang string nama host.
[in] options
Nilai integer yang mengontrol bagaimana resolusi alamat nama host dilakukan. Nilai berasal dari enumerasi #DNSOptions.
[in] maxAddrs
Jumlah maksimum alamat yang akan disimpan dalam tabel DNS.
[in] addrArray
Pointer ke tabel DNS.
[in] onComplete
Pointer ke fungsi callback saat permintaan DNS selesai.
[in] appState
Pointer ke status aplikasi yang akan diteruskan ke onComplete saat permintaan DNS selesai.
Nilai Pengembalian
INET_NO_ERROR
jika permintaan DNS berhasil ditangani.

Nonaktif

INET_ERROR Shutdown(
  void
)

Ini adalah deinisialisasi eksplisit class AsyncDNSResolverSockets untuk menangani penonaktifan thread serta memusnahkan variabel mutex dan smaphore.

Detail
Nilai Pengembalian
INET_NO_ERROR
jika penonaktifan berhasil.
other
jaringan POSIX atau kesalahan OS yang sesuai.