ObjFW  Check-in [97ccd4a3e4]

Overview
Comment:OFDNSResolver: Do not close the sockets

Instead, just release them. The reason for this is that -[close]
immediately closes the file descriptor, meaning the next run loop
iteration fails to remove them, as the file descriptor is no longer
valid.

Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 97ccd4a3e4709d2f280061a5a26473322ad901268d80e68c6f32e3b1c5701057
User & Date: js on 2018-08-05 19:31:46
Other Links: manifest | tags
Context
2018-08-05
20:00
Add a few missing casts check-in: 4f49f55859 user: js tags: trunk
19:31
OFDNSResolver: Do not close the sockets check-in: 97ccd4a3e4 user: js tags: trunk
19:27
OFRunLoop: More robust handling of cancels check-in: 1bf3b2ac7c user: js tags: trunk
Changes

Modified src/OFDNSResolver.m from [7ee76905cc] to [5d4867eed8].

1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1249
1250
1251
1252
1253
1254
1255

1256
1257
1258
1259
1260

1261
1262
1263
1264
1265
1266
1267







-





-







- (void)close
{
	void *pool = objc_autoreleasePoolPush();
	OFEnumerator *enumerator;
	OFDNSResolver_context *DNSResolverContext;

	[_IPv4Socket cancelAsyncRequests];
	[_IPv4Socket close];
	[_IPv4Socket release];
	_IPv4Socket = nil;

#ifdef OF_HAVE_IPV6
	[_IPv6Socket cancelAsyncRequests];
	[_IPv6Socket close];
	[_IPv6Socket release];
	_IPv6Socket = nil;
#endif

	enumerator = [_queries objectEnumerator];
	while ((DNSResolverContext = [enumerator nextObject]) != nil) {
		id target = [[[DNSResolverContext target] retain] autorelease];