nl::Inet::AsyncDNSResolverSockets

#include <src/inet/AsyncDNSResolverSockets.h>

Đây là lớp nội bộ của InetLayer cung cấp API trợ giúp cho quá trình phân giải Hệ thống tên miền không đồng bộ (DNS) trong InetLayer.

Tóm tắt

Không có giao diện công khai nào cho lớp ứng dụng.

Hàm công khai

Cancel(DNSResolver & resolver)
Huỷ một truy vấn DNS chưa xử lý có thể vẫn đang hoạt động.
EnqueueRequest(DNSResolver & resolver)
Thêm một đối tượng DNSResolver vào hàng đợi để phân giải địa chỉ IP không đồng bộ của tên máy chủ đã chỉ định.
Init(InetLayer *inet)
Trình khởi chạy rõ ràng cho lớp syncDNSResolverSockets.
PrepareDNSResolver(DNSResolver & resolver, const char *hostName, uint16_t hostNameLen, uint8_t options, uint8_t maxAddrs, IPAddress *addrArray, DNSResolver::OnResolveCompleteFunct onComplete, void *appState)
Phương thức này chuẩn bị một đối tượng DNSResolver trước khi phân giải không đồng bộ.
Shutdown(void)
Đây là trình khởi tạo rõ ràng của lớp AsyncDNSResolverSockets và giúp đóng các luồng cũng như huỷ bỏ các biến mutex và semaphore.

Hàm công khai

Hủy

INET_ERROR Cancel(
  DNSResolver & resolver
)

Huỷ một truy vấn DNS chưa xử lý có thể vẫn đang hoạt động.

Thông tin chi tiết
Các tham số
[in] resolver
Tham chiếu đến đối tượng DNSResolver.

EnqueueRequest

INET_ERROR EnqueueRequest(
  DNSResolver & resolver
)

Thêm một đối tượng DNSResolver vào hàng đợi để phân giải địa chỉ IP không đồng bộ của tên máy chủ đã chỉ định.

Thông tin chi tiết
Các tham số
[in] resolver
Tham chiếu đến đối tượng DNSResolver.
Giá trị trả về
INET_NO_ERROR
nếu yêu cầu DNS được xếp hàng thành công.
INET_ERROR_NO_MEMORY
nếu nhóm trình phân giải lớp Inet đã đầy.
other
lỗi mạng POSIX hoặc lỗi hệ điều hành thích hợp.

Bắt đầu

INET_ERROR Init(
  InetLayer *inet
)

Trình khởi chạy rõ ràng cho lớp syncDNSResolverSockets.

Thao tác này sẽ khởi chạy các biến mutex và semaphore, đồng thời tạo các luồng để xử lý quá trình phân giải DNS không đồng bộ.

Thông tin chi tiết
Các tham số
[in] aInet
Con trỏ đến đối tượng InetLayer.
Giá trị trả về
INET_NO_ERROR
nếu khởi chạy thành công.
other
lỗi mạng POSIX hoặc lỗi hệ điều hành thích hợp.

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
)

Phương thức này chuẩn bị một đối tượng DNSResolver trước khi phân giải không đồng bộ.

Thông tin chi tiết
Các tham số
[in] resolver
Tham chiếu đến đối tượng DNSResolver đã phân bổ.
[in] hostName
Con trỏ đến một chuỗi C đại diện cho tên máy chủ cần được truy vấn.
[in] hostNameLen
Độ dài chuỗi của tên máy chủ.
[in] options
Một giá trị số nguyên kiểm soát cách thực hiện quá trình phân giải địa chỉ tên máy chủ lưu trữ. Giá trị được lấy từ bảng liệt kê #DNSOptions.
[in] maxAddrs
Số địa chỉ tối đa cần lưu trữ trong bảng DNS.
[in] addrArray
Con trỏ đến bảng DNS.
[in] onComplete
Con trỏ đến hàm callback khi hoàn tất yêu cầu DNS.
[in] appState
Con trỏ đến trạng thái ứng dụng sẽ được chuyển đến onComplete khi yêu cầu DNS hoàn tất.
Giá trị trả về
INET_NO_ERROR
nếu yêu cầu DNS được xử lý thành công.

Tắt

INET_ERROR Shutdown(
  void
)

Đây là trình khởi tạo rõ ràng của lớp AsyncDNSResolverSockets và giúp đóng các luồng cũng như huỷ bỏ các biến mutex và semaphore.

Thông tin chi tiết
Giá trị trả về
INET_NO_ERROR
nếu tắt thành công.
other
lỗi mạng POSIX hoặc lỗi hệ điều hành thích hợp.