Overview
Context
Changes
Modified src/OFDNSResolver.h
from [85f077e644]
to [ee088942f0].
︙ | | |
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
|
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
|
-
+
-
+
-
+
|
* @brief Asynchronously resolves the specified host to socket addresses.
*
* @param host The host to resolve
* @param addressFamily The desired socket address family
* @param delegate The delegate to use for callbacks
*/
- (void)asyncResolveAddressesForHost: (OFString *)host
addressFamily: (of_socket_address_family_t)addressFamily
addressFamily: (OFSocketAddressFamily)addressFamily
delegate: (id <OFDNSResolverHostDelegate>)delegate;
/**
* @brief Asynchronously resolves the specified host to socket addresses.
*
* @param host The host to resolve
* @param addressFamily The desired socket address family
* @param runLoopMode The run loop mode in which to resolve
* @param delegate The delegate to use for callbacks
*/
- (void)asyncResolveAddressesForHost: (OFString *)host
addressFamily: (of_socket_address_family_t)addressFamily
addressFamily: (OFSocketAddressFamily)addressFamily
runLoopMode: (OFRunLoopMode)runLoopMode
delegate: (id <OFDNSResolverHostDelegate>)delegate;
/**
* @brief Synchronously resolves the specified host to socket addresses.
*
* @param host The host to resolve
* @param addressFamily The desired socket address family
* @return OFData containing several of_socket_address_t
*/
- (OFData *)resolveAddressesForHost: (OFString *)host
addressFamily: (of_socket_address_family_t)addressFamily;
addressFamily: (OFSocketAddressFamily)addressFamily;
/**
* @brief Closes all sockets and cancels all ongoing queries.
*/
- (void)close;
@end
OF_ASSUME_NONNULL_END
|
Modified src/OFDNSResolver.m
from [ad1a046297]
to [38aa9ebc9e].
︙ | | |
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
|
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
|
-
+
-
+
-
+
|
[self asyncResolveAddressesForHost: host
addressFamily: OF_SOCKET_ADDRESS_FAMILY_ANY
runLoopMode: OFDefaultRunLoopMode
delegate: delegate];
}
- (void)asyncResolveAddressesForHost: (OFString *)host
addressFamily: (of_socket_address_family_t)addressFamily
addressFamily: (OFSocketAddressFamily)addressFamily
delegate: (id <OFDNSResolverHostDelegate>)delegate
{
[self asyncResolveAddressesForHost: host
addressFamily: addressFamily
runLoopMode: OFDefaultRunLoopMode
delegate: delegate];
}
- (void)asyncResolveAddressesForHost: (OFString *)host
addressFamily: (of_socket_address_family_t)addressFamily
addressFamily: (OFSocketAddressFamily)addressFamily
runLoopMode: (OFRunLoopMode)runLoopMode
delegate: (id <OFDNSResolverHostDelegate>)delegate
{
void *pool = objc_autoreleasePoolPush();
OFHostAddressResolver *resolver = [[[OFHostAddressResolver alloc]
initWithHost: host
addressFamily: addressFamily
resolver: self
settings: _settings
runLoopMode: runLoopMode
delegate: delegate] autorelease];
[resolver asyncResolve];
objc_autoreleasePoolPop(pool);
}
- (OFData *)resolveAddressesForHost: (OFString *)host
addressFamily: (of_socket_address_family_t)addressFamily
addressFamily: (OFSocketAddressFamily)addressFamily
{
void *pool = objc_autoreleasePoolPush();
OFHostAddressResolver *resolver = [[[OFHostAddressResolver alloc]
initWithHost: host
addressFamily: addressFamily
resolver: self
settings: _settings
|
︙ | | |
Modified src/OFHostAddressResolver.h
from [dc6da26766]
to [5d4cf43da0].
︙ | | |
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
-
+
-
+
|
@class OFMutableArray OF_GENERIC(ObjectType);
@class OFMutableData;
@class OFString;
@interface OFHostAddressResolver: OFObject <OFDNSResolverQueryDelegate>
{
OFString *_host;
of_socket_address_family_t _addressFamily;
OFSocketAddressFamily _addressFamily;
OFDNSResolver *_resolver;
OFDNSResolverSettings *_settings;
OFRunLoopMode _Nullable _runLoopMode;
id <OFDNSResolverHostDelegate> _Nullable _delegate;
bool _isFQDN;
size_t _searchDomainIndex;
unsigned int _numExpectedResponses;
OFMutableData *_addresses;
}
- (instancetype)initWithHost: (OFString *)host
addressFamily: (of_socket_address_family_t)addressFamily
addressFamily: (OFSocketAddressFamily)addressFamily
resolver: (OFDNSResolver *)resolver
settings: (OFDNSResolverSettings *)settings
runLoopMode: (nullable OFRunLoopMode)runLoopMode
delegate: (nullable id <OFDNSResolverHostDelegate>)delegate;
- (void)asyncResolve;
- (OFData *)resolve;
@end
OF_ASSUME_NONNULL_END
|
Modified src/OFHostAddressResolver.m
from [65cece7bc1]
to [9b646be9f3].
︙ | | |
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
-
+
-
|
dots++;
return (dots >= minNumberOfDotsInAbsoluteName);
}
static bool
addressForRecord(OF_KINDOF(OFDNSResourceRecord *) record,
const of_socket_address_t **address,
const of_socket_address_t **address, OFSocketAddressFamily addressFamily)
of_socket_address_family_t addressFamily)
{
switch ([record recordType]) {
#ifdef OF_HAVE_IPV6
case OF_DNS_RECORD_TYPE_AAAA:
if (addressFamily != OF_SOCKET_ADDRESS_FAMILY_IPV6 &&
addressFamily != OF_SOCKET_ADDRESS_FAMILY_ANY)
return false;
|
︙ | | |
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
-
+
|
[[OFRunLoop currentRunLoop] addTimer: timer
forMode: runLoopMode];
}
}
@implementation OFHostAddressResolver: OFObject
- (instancetype)initWithHost: (OFString *)host
addressFamily: (of_socket_address_family_t)addressFamily
addressFamily: (OFSocketAddressFamily)addressFamily
resolver: (OFDNSResolver *)resolver
settings: (OFDNSResolverSettings *)settings
runLoopMode: (OFRunLoopMode)runLoopMode
delegate: (id <OFDNSResolverHostDelegate>)delegate
{
self = [super init];
|
︙ | | |
Modified src/exceptions/OFResolveHostFailedException.h
from [48c5873ef6]
to [25768e6bdb].
︙ | | |
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
-
+
-
+
-
+
-
+
|
* OFResolveHostFailedException.h ObjFW/OFResolveHostFailedException.h
*
* @brief An exception indicating that resolving a host failed.
*/
@interface OFResolveHostFailedException: OFException
{
OFString *_host;
of_socket_address_family_t _addressFamily;
OFSocketAddressFamily _addressFamily;
of_dns_resolver_error_t _error;
}
/**
* @brief The host which could not be resolved.
*/
@property (readonly, nonatomic) OFString *host;
/**
* @brief The address family for which the host could not be resolved.
*/
@property (readonly, nonatomic) of_socket_address_family_t addressFamily;
@property (readonly, nonatomic) OFSocketAddressFamily addressFamily;
/**
* @brief The error from the resolver.
*/
@property (readonly, nonatomic) of_dns_resolver_error_t error;
/**
* @brief Creates a new, autoreleased resolve host failed exception.
*
* @param host The host which could not be resolved
* @param addressFamily The address family for which the host could not be
* resolved
* @param error The error from the resolver
* @return A new, autoreleased address translation failed exception
*/
+ (instancetype)exceptionWithHost: (OFString *)host
addressFamily: (of_socket_address_family_t)addressFamily
addressFamily: (OFSocketAddressFamily)addressFamily
error: (of_dns_resolver_error_t)error;
/**
* @brief Initializes an already allocated resolve host failed exception.
*
* @param host The host which could not be resolved
* @param addressFamily The address family for which the host could not be
* resolved
* @param error The error from the resolver
* @return An initialized address translation failed exception
*/
- (instancetype)initWithHost: (OFString *)host
addressFamily: (of_socket_address_family_t)addressFamily
addressFamily: (OFSocketAddressFamily)addressFamily
error: (of_dns_resolver_error_t)error;
@end
OF_ASSUME_NONNULL_END
|
Modified src/exceptions/OFResolveHostFailedException.m
from [5ef786dbbc]
to [4a19318a81].
︙ | | |
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
-
+
-
+
|
#import "OFDNSQueryFailedException.h"
#import "OFString.h"
@implementation OFResolveHostFailedException
@synthesize host = _host, addressFamily = _addressFamily, error = _error;
+ (instancetype)exceptionWithHost: (OFString *)host
addressFamily: (of_socket_address_family_t)addressFamily
addressFamily: (OFSocketAddressFamily)addressFamily
error: (of_dns_resolver_error_t)error
{
return [[[self alloc] initWithHost: host
addressFamily: addressFamily
error: error] autorelease];
}
- (instancetype)initWithHost: (OFString *)host
addressFamily: (of_socket_address_family_t)addressFamily
addressFamily: (OFSocketAddressFamily)addressFamily
error: (of_dns_resolver_error_t)error
{
self = [super init];
@try {
_host = [host copy];
_addressFamily = addressFamily;
|
︙ | | |
Modified src/socket.h
from [8d3ff16b96]
to [3e36de663a].
︙ | | |
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
-
+
|
OF_SOCKET_ADDRESS_FAMILY_IPV4,
/** IPv6 */
OF_SOCKET_ADDRESS_FAMILY_IPV6,
/** IPX */
OF_SOCKET_ADDRESS_FAMILY_IPX,
/** Any address family */
OF_SOCKET_ADDRESS_FAMILY_ANY = 255
} of_socket_address_family_t;
} OFSocketAddressFamily;
#ifndef OF_HAVE_IPV6
struct sockaddr_in6 {
sa_family_t sin6_family;
in_port_t sin6_port;
uint32_t sin6_flowinfo;
struct in6_addr {
|
︙ | | |
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
|
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
|
-
+
|
/*
* Even though struct sockaddr contains the family, we need to use our
* own family, as we need to support storing an IPv6 address on systems
* that don't support IPv6. These may not have AF_INET6 defined and we
* can't just define it, as the value is system-dependent and might
* clash with an existing value.
*/
of_socket_address_family_t family;
OFSocketAddressFamily family;
union {
struct sockaddr sockaddr;
struct sockaddr_in in;
struct sockaddr_in6 in6;
struct sockaddr_ipx ipx;
} sockaddr;
socklen_t length;
|
︙ | | |