ObjFW  Check-in [1e62dc40eb]

Overview
Comment:OFDNSResolver: Rename usesTCP -> forcesTCP
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 1e62dc40eba2b436529d10292dc910f74a097e1a9e0603bb65cc1a91ac50dcb1
User & Date: js on 2023-04-10 18:51:52
Other Links: manifest | tags
Context
2023-04-10
19:22
Remove OFSerialization check-in: 6ce0093f8d user: js tags: trunk
18:51
OFDNSResolver: Rename usesTCP -> forcesTCP check-in: 1e62dc40eb user: js tags: trunk
18:20
Set OS name on Nintendo Switch and Wii U check-in: be422e156d user: js tags: trunk
Changes

Modified src/OFDNSResolver.h from [5db6332123] to [511ca7b000].

176
177
178
179
180
181
182
183

184
185

186
187
188
189
190
191
192
176
177
178
179
180
181
182

183
184

185
186
187
188
189
190
191
192







-
+

-
+








/**
 * @brief The minimum number of dots for a name to be considered absolute.
 */
@property (nonatomic) unsigned int minNumberOfDotsInAbsoluteName;

/**
 * @brief Whether the resolver uses TCP to talk to a name server.
 * @brief Whether the resolver forces TCP to talk to a name server.
 */
@property (nonatomic) bool usesTCP;
@property (nonatomic) bool forcesTCP;

/**
 * @brief The interval in seconds in which the config should be reloaded.
 *
 * Setting this to 0 disables config reloading.
 */
@property (nonatomic) OFTimeInterval configReloadInterval;

Modified src/OFDNSResolver.m from [3af99bcca7] to [476e39eb2a].

674
675
676
677
678
679
680
681

682
683

684
685
686

687
688

689
690
691
692
693
694
695
674
675
676
677
678
679
680

681
682

683
684
685

686
687

688
689
690
691
692
693
694
695







-
+

-
+


-
+

-
+







- (void)setMinNumberOfDotsInAbsoluteName:
    (unsigned int)minNumberOfDotsInAbsoluteName
{
	_settings->_minNumberOfDotsInAbsoluteName =
	    minNumberOfDotsInAbsoluteName;
}

- (bool)usesTCP
- (bool)forcesTCP
{
	return _settings->_usesTCP;
	return _settings->_forcesTCP;
}

- (void)setUsesTCP: (bool)usesTCP
- (void)setForcesTCP: (bool)forcesTCP
{
	_settings->_usesTCP = usesTCP;
	_settings->_forcesTCP = forcesTCP;
}

- (OFTimeInterval)configReloadInterval
{
	return _settings->_configReloadInterval;
}

719
720
721
722
723
724
725
726

727
728
729
730
731
732
733
719
720
721
722
723
724
725

726
727
728
729
730
731
732
733







-
+







		     repeats: false];
	[[OFRunLoop currentRunLoop] addTimer: context->_cancelTimer
				     forMode: runLoopMode];

	nameServer = [context->_settings->_nameServers
	    objectAtIndex: context->_nameServersIndex];

	if (context->_settings->_usesTCP) {
	if (context->_settings->_forcesTCP) {
		OFEnsure(context->_TCPSocket == nil);

		context->_TCPSocket = [[OFTCPSocket alloc] init];
		[_TCPQueries setObject: context forKey: context->_TCPSocket];

		context->_TCPSocket.delegate = self;
		[context->_TCPSocket asyncConnectToHost: nameServer
944
945
946
947
948
949
950
951

952
953
954

955
956
957
958
959
960
961
944
945
946
947
948
949
950

951
952
953

954
955
956
957
958
959
960
961







-
+


-
+







		if ((buffer[2] & 0x78) != (queryDataBuffer[2] & 0x78))
			@throw [OFInvalidServerResponseException exception];

		/* TC */
		if (buffer[2] & 0x02) {
			OFRunLoopMode runLoopMode;

			if (context->_settings->_usesTCP)
			if (context->_settings->_forcesTCP)
				@throw [OFTruncatedDataException exception];

			context->_settings->_usesTCP = true;
			context->_settings->_forcesTCP = true;
			runLoopMode = [OFRunLoop currentRunLoop].currentMode;
			[self of_sendQueryForContext: context
					 runLoopMode: runLoopMode];
			return false;
		}

		/* RCODE */

Modified src/OFDNSResolverSettings.h from [a54f672717] to [59a97ffd04].

27
28
29
30
31
32
33
34

35
36
37
38
39
40
41
42
43
27
28
29
30
31
32
33

34
35
36
37
38
39
40
41
42
43







-
+









	OFDictionary OF_GENERIC(OFString *, OFArray OF_GENERIC(OFString *) *)
	    *_staticHosts;
	OFArray OF_GENERIC(OFString *) *_nameServers;
	OFString *_Nullable _localDomain;
	OFArray OF_GENERIC(OFString *) *_searchDomains;
	OFTimeInterval _timeout;
	unsigned int _maxAttempts, _minNumberOfDotsInAbsoluteName;
	bool _usesTCP;
	bool _forcesTCP;
	OFTimeInterval _configReloadInterval;
@protected
	OFDate *_lastConfigReload;
}

- (void)reload;
@end

OF_ASSUME_NONNULL_END

Modified src/OFDNSResolverSettings.m from [f996c78e87] to [efbcc5cf61].

213
214
215
216
217
218
219
220

221
222
223
224
225
226
227
213
214
215
216
217
218
219

220
221
222
223
224
225
226
227







-
+







		copy->_nameServers = [_nameServers copy];
		copy->_localDomain = [_localDomain copy];
		copy->_searchDomains = [_searchDomains copy];
		copy->_timeout = _timeout;
		copy->_maxAttempts = _maxAttempts;
		copy->_minNumberOfDotsInAbsoluteName =
		    _minNumberOfDotsInAbsoluteName;
		copy->_usesTCP = _usesTCP;
		copy->_forcesTCP = _forcesTCP;
		copy->_configReloadInterval = _configReloadInterval;
		copy->_lastConfigReload = [_lastConfigReload copy];
	} @catch (id e) {
		[copy release];
		@throw e;
	}

241
242
243
244
245
246
247
248

249
250
251
252
253
254
255
241
242
243
244
245
246
247

248
249
250
251
252
253
254
255







-
+








	[_searchDomains release];
	_searchDomains = nil;

	_timeout = 2;
	_maxAttempts = 3;
	_minNumberOfDotsInAbsoluteName = 1;
	_usesTCP = false;
	_forcesTCP = false;
#ifndef OF_NINTENDO_3DS
	_configReloadInterval = 2;
#else
	_configReloadInterval = 0;
#endif
}

343
344
345
346
347
348
349
350

351
352
353
354
355
356
357
343
344
345
346
347
348
349

350
351
352
353
354
355
356
357







-
+








			_maxAttempts = (unsigned int)number;
		} else if ([option hasPrefix: @"reload-period:"]) {
			option = [option substringFromIndex: 14];

			_configReloadInterval = option.unsignedLongLongValue;
		} else if ([option isEqual: @"tcp"])
			_usesTCP = true;
			_forcesTCP = true;
	} @catch (OFInvalidFormatException *e) {
	}
}

- (void)parseResolvConf: (OFString *)path
{
	void *pool = objc_autoreleasePoolPush();

Modified tests/OFDNSResolverTests.m from [18f93dc1e7] to [90e052eb2c].

55
56
57
58
59
60
61
62
63


64
65
66
67
68
69
70
71
55
56
57
58
59
60
61


62
63
64
65
66
67
68
69
70
71







-
-
+
+








	[OFStdOut writeFormat: @"[OFDNSResolver] Max attempts: %u\n",
	    resolver.maxAttempts];

	[OFStdOut writeFormat:
	    @"[OFDNSResolver] Min number of dots in absolute name: %u\n",
	    resolver.minNumberOfDotsInAbsoluteName];

	[OFStdOut writeFormat: @"[OFDNSResolver] Uses TCP: %u\n",
	    resolver.usesTCP];
	[OFStdOut writeFormat: @"[OFDNSResolver] Forces TCP: %u\n",
	    resolver.forcesTCP];

	[OFStdOut writeFormat:
	    @"[OFDNSResolver] Config reload interval: %lf\n",
	    resolver.configReloadInterval];

	objc_autoreleasePoolPop(pool);
}
@end