17 #import "OFDNSQuery.h"
19 #import "OFDNSResponse.h"
23 OF_ASSUME_NONNULL_BEGIN
25 #define OF_DNS_RESOLVER_BUFFER_LENGTH 512
27 @class OFArray OF_GENERIC(ObjectType);
29 @class OFDNSResolverContext;
30 @class OFDNSResolverSettings;
43 typedef enum of_dns_resolver_error_t {
45 OF_DNS_RESOLVER_ERROR_UNKNOWN,
47 OF_DNS_RESOLVER_ERROR_TIMEOUT,
49 OF_DNS_RESOLVER_ERROR_CANCELED,
56 OF_DNS_RESOLVER_ERROR_NO_RESULT,
58 OF_DNS_RESOLVER_ERROR_SERVER_INVALID_FORMAT,
60 OF_DNS_RESOLVER_ERROR_SERVER_FAILURE,
62 OF_DNS_RESOLVER_ERROR_SERVER_NAME_ERROR,
64 OF_DNS_RESOLVER_ERROR_SERVER_NOT_IMPLEMENTED,
66 OF_DNS_RESOLVER_ERROR_SERVER_REFUSED,
68 OF_DNS_RESOLVER_ERROR_NO_NAME_SERVER
69 } of_dns_resolver_error_t;
89 exception: (nullable
id)exception;
97 @protocol OFDNSResolverHostDelegate <
OFObject>
110 addresses: (nullable
OFData *)addresses
111 exception: (nullable
id)exception;
124 OF_SUBCLASSING_RESTRICTED
127 OFDNSResolverSettings *_settings;
132 char _buffer[OF_DNS_RESOLVER_BUFFER_LENGTH];
175 @property (nonatomic)
unsigned int maxAttempts;
180 @property (nonatomic)
unsigned int minNumberOfDotsInAbsoluteName;
185 @property (nonatomic)
bool usesTCP;
197 + (instancetype)resolver;
202 - (instancetype)init;
210 - (void)asyncPerformQuery: (
OFDNSQuery *)query
220 - (void)asyncPerformQuery: (
OFDNSQuery *)query
230 - (void)asyncResolveAddressesForHost: (
OFString *)host
231 delegate: (
id <OFDNSResolverHostDelegate>)delegate;
240 - (void)asyncResolveAddressesForHost: (
OFString *)host
242 delegate: (
id <OFDNSResolverHostDelegate>)delegate;
252 - (void)asyncResolveAddressesForHost: (
OFString *)host
255 delegate: (
id <OFDNSResolverHostDelegate>)delegate;
273 OF_ASSUME_NONNULL_END
double of_time_interval_t
A time interval in seconds.
Definition: OFObject.h:138
An abstract class for storing objects in an array.
Definition: OFArray.h:92
A class for storing constant strings using the @"" literal.
Definition: OFConstantString.h:42
A class representing a DNS query.
Definition: OFDNSQuery.h:30
A class for resolving DNS names.
Definition: OFDNSResolver.h:126
OFArray * searchDomains
The domains to search for queries for short names.
Definition: OFDNSResolver.h:162
OFString * localDomain
The local domain.
Definition: OFDNSResolver.h:157
OFArray * nameServers
An array of name servers to use.
Definition: OFDNSResolver.h:152
A class storing a response from OFDNSResolver.
Definition: OFDNSResponse.h:33
A class for storing arbitrary data in an array.
Definition: OFData.h:40
A class for storing, accessing and comparing dates.
Definition: OFDate.h:36
An abstract class for storing objects in a dictionary.
Definition: OFDictionary.h:58
An abstract class for storing and changing objects in a dictionary.
Definition: OFMutableDictionary.h:44
Provides a way to store a number in an object.
Definition: OFNumber.h:49
The root class for all other classes inside ObjFW.
Definition: OFObject.h:520
A class for handling strings.
Definition: OFString.h:132
A class which provides methods to create and use TCP sockets.
Definition: OFTCPSocket.h:67
A class which provides methods to create and use UDP sockets.
Definition: OFUDPSocket.h:50
A delegate for performed DNS queries.
Definition: OFDNSResolver.h:76
of_socket_address_family_t
A socket address family.
Definition: socket.h:88