19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
#import "OFString.h"
#import "OFDNSResourceRecord.h"
OF_ASSUME_NONNULL_BEGIN
@class OFArray OF_GENERIC(ObjectType);
@class OFDNSResolverQuery;
@class OFDictionary OF_GENERIC(KeyType, ObjectType);
@class OFMutableDictionary OF_GENERIC(KeyType, ObjectType);
@class OFNumber;
@class OFUDPSocket;
/*!
* @enum of_dns_resolver_error_t OFDNSResolver.h ObjFW/OFDNSResolver.h
|
>
|
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
#import "OFString.h"
#import "OFDNSResourceRecord.h"
OF_ASSUME_NONNULL_BEGIN
@class OFArray OF_GENERIC(ObjectType);
@class OFDNSResolverQuery;
@class OFDate;
@class OFDictionary OF_GENERIC(KeyType, ObjectType);
@class OFMutableDictionary OF_GENERIC(KeyType, ObjectType);
@class OFNumber;
@class OFUDPSocket;
/*!
* @enum of_dns_resolver_error_t OFDNSResolver.h ObjFW/OFDNSResolver.h
|
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
OF_DNS_RESOLVER_ERROR_SERVER_REFUSED
} of_dns_resolver_error_t;
/*!
* @class OFDNSResolver OFDNSResolver.h ObjFW/OFDNSResolver.h
*
* @brief A class for resolving DNS names.
*/
@interface OFDNSResolver: OFObject
{
OFDictionary OF_GENERIC(OFString *, OFArray OF_GENERIC(OFString *) *)
*_staticHosts;
OFArray OF_GENERIC(OFString *) *_nameServers;
OFString *_Nullable _localDomain;
OFArray OF_GENERIC(OFString *) *_searchDomains;
size_t _minNumberOfDotsInAbsoluteName;
bool _usesTCP;
OFUDPSocket *_IPv4Socket;
#ifdef OF_HAVE_IPV6
OFUDPSocket *_IPv6Socket;
#endif
OFMutableDictionary OF_GENERIC(OFNumber *, OFDNSResolverQuery *)
*_queries;
}
|
>
>
>
>
>
>
>
|
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
OF_DNS_RESOLVER_ERROR_SERVER_REFUSED
} of_dns_resolver_error_t;
/*!
* @class OFDNSResolver OFDNSResolver.h ObjFW/OFDNSResolver.h
*
* @brief A class for resolving DNS names.
*
* @note If you change any of the properties, make sure to set
* @ref configReloadInterval to 0, as otherwise your changes will be
* reverted back to the system configuration on the next periodic config
* reload.
*/
@interface OFDNSResolver: OFObject
{
OFDictionary OF_GENERIC(OFString *, OFArray OF_GENERIC(OFString *) *)
*_staticHosts;
OFArray OF_GENERIC(OFString *) *_nameServers;
OFString *_Nullable _localDomain;
OFArray OF_GENERIC(OFString *) *_searchDomains;
size_t _minNumberOfDotsInAbsoluteName;
bool _usesTCP;
of_time_interval_t _configReloadInterval;
OFDate *_lastConfigReload;
OFUDPSocket *_IPv4Socket;
#ifdef OF_HAVE_IPV6
OFUDPSocket *_IPv6Socket;
#endif
OFMutableDictionary OF_GENERIC(OFNumber *, OFDNSResolverQuery *)
*_queries;
}
|
112
113
114
115
116
117
118
119
120
121
122
123
124
125
|
@property (nonatomic) size_t minNumberOfDotsInAbsoluteName;
/*!
* @brief Whether the resolver uses TCP to talk to a name server.
*/
@property (nonatomic) bool usesTCP;
/*!
* @brief Creates a new, autoreleased OFDNSResolver.
*/
+ (instancetype)resolver;
/*!
* @brief Initializes an already allocated OFDNSResolver.
|
>
>
>
>
>
>
>
|
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
|
@property (nonatomic) size_t minNumberOfDotsInAbsoluteName;
/*!
* @brief Whether the resolver uses TCP to talk to a name server.
*/
@property (nonatomic) bool usesTCP;
/*!
* @brief The interval in seconds in which the config should be reloaded.
*
* Setting this to 0 disables config reloading.
*/
@property (nonatomic) of_time_interval_t configReloadInterval;
/*!
* @brief Creates a new, autoreleased OFDNSResolver.
*/
+ (instancetype)resolver;
/*!
* @brief Initializes an already allocated OFDNSResolver.
|