︙ | | | ︙ | |
613
614
615
616
617
618
619
620
621
622
623
624
625
626
|
#ifdef OF_HAVE_IPV6
[_IPv6Socket cancelAsyncRequests];
[_IPv6Socket release];
#endif
[_queries release];
[_TCPQueries release];
[_cache release];
[super dealloc];
}
- (OFDictionary *)staticHosts
{
return _settings->_staticHosts;
|
>
|
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
|
#ifdef OF_HAVE_IPV6
[_IPv6Socket cancelAsyncRequests];
[_IPv6Socket release];
#endif
[_queries release];
[_TCPQueries release];
[_cache release];
[_lastNameServers release];
[super dealloc];
}
- (OFDictionary *)staticHosts
{
return _settings->_staticHosts;
|
︙ | | | ︙ | |
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
|
[sock asyncReceiveIntoBuffer: _buffer
length: bufferLength
runLoopMode: runLoopMode];
}
- (void)of_cleanUpCache
{
void *pool = objc_autoreleasePoolPush();
OFTimeInterval now = [[OFDate date] timeIntervalSince1970];
OFMutableArray *removeList;
if (now - _lastCacheCleanup < 1)
return;
_lastCacheCleanup = now;
removeList = [OFMutableArray arrayWithCapacity: _cache.count];
|
<
>
>
>
>
>
>
>
>
>
>
>
|
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
|
[sock asyncReceiveIntoBuffer: _buffer
length: bufferLength
runLoopMode: runLoopMode];
}
- (void)of_cleanUpCache
{
OFTimeInterval now = [[OFDate date] timeIntervalSince1970];
OFMutableArray *removeList;
if (_lastNameServers != _settings->_nameServers &&
![_lastNameServers isEqual: _settings->_nameServers]) {
OFArray *old = _lastNameServers;
_lastNameServers = [_settings->_nameServers copy];
[old release];
[_cache removeAllObjects];
return;
}
if (now - _lastCacheCleanup < 1)
return;
_lastCacheCleanup = now;
removeList = [OFMutableArray arrayWithCapacity: _cache.count];
|
︙ | | | ︙ | |
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
|
containsExpiredRecord(response.authorityRecords, age) ||
containsExpiredRecord(response.additionalRecords, age))
[removeList addObject: query];
}
for (OFDNSQuery *query in removeList)
[_cache removeObjectForKey: query];
objc_autoreleasePoolPop(pool);
}
- (void)asyncPerformQuery: (OFDNSQuery *)query
delegate: (id <OFDNSResolverQueryDelegate>)delegate
{
[self asyncPerformQuery: query
runLoopMode: OFDefaultRunLoopMode
|
<
<
|
839
840
841
842
843
844
845
846
847
848
849
850
851
852
|
containsExpiredRecord(response.authorityRecords, age) ||
containsExpiredRecord(response.additionalRecords, age))
[removeList addObject: query];
}
for (OFDNSQuery *query in removeList)
[_cache removeObjectForKey: query];
}
- (void)asyncPerformQuery: (OFDNSQuery *)query
delegate: (id <OFDNSResolverQueryDelegate>)delegate
{
[self asyncPerformQuery: query
runLoopMode: OFDefaultRunLoopMode
|
︙ | | | ︙ | |
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
|
} @catch (id e) {
exception = e;
}
if (exception != nil)
response = nil;
if (response != nil)
[_cache setObject: [OFPair pairWithFirstObject: [OFDate date]
secondObject: response]
forKey: context->_query];
else
[_cache removeObjectForKey: context->_query];
[self of_cleanUpCache];
[context->_delegate resolver: self
didPerformQuery: context->_query
response: response
exception: exception];
return false;
}
|
>
>
<
<
|
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
|
} @catch (id e) {
exception = e;
}
if (exception != nil)
response = nil;
[self of_cleanUpCache];
if (response != nil)
[_cache setObject: [OFPair pairWithFirstObject: [OFDate date]
secondObject: response]
forKey: context->_query];
else
[_cache removeObjectForKey: context->_query];
[context->_delegate resolver: self
didPerformQuery: context->_query
response: response
exception: exception];
return false;
}
|
︙ | | | ︙ | |