@@ -498,10 +498,11 @@ } - (void)client: (OFHTTPClient *)client didCreateSocket: (OF_KINDOF(OFTCPSocket *))socket request: (OFHTTPRequest *)request + context: (id)context { if (_insecure && [socket respondsToSelector: @selector(setCertificateVerificationEnabled:)]) [socket setCertificateVerificationEnabled: false]; } @@ -509,10 +510,11 @@ - (bool)client: (OFHTTPClient *)client shouldFollowRedirect: (OFURL *)URL statusCode: (int)statusCode request: (OFHTTPRequest *)request response: (OFHTTPResponse *)response + context: (id)context { if (!_quiet) [of_stdout writeFormat: @" ➜ %d\n", statusCode]; if (_verbose) { @@ -539,10 +541,11 @@ } - (void)client: (OFHTTPClient *)client didEncounterException: (id)e forRequest: (OFHTTPRequest *)request + context: (id)context { if ([e isKindOfClass: [OFAddressTranslationFailedException class]]) { if (!_quiet) [of_stdout writeString: @"\n"]; @@ -626,16 +629,16 @@ } - (void)client: (OFHTTPClient *)client didPerformRequest: (OFHTTPRequest *)request response: (OFHTTPResponse *)response + context: (id)context { OFDictionary OF_GENERIC(OFString *, OFString *) *headers; OFString *lengthString, *type; - /* Was a request to retrieve the file name */ - if (_detectFileName && _currentFileName == nil) { + if ([context isEqual: @"detectFileName"]) { _currentFileName = [fileNameFromContentDisposition( [[response headers] objectForKey: @"Content-Disposition"]) copy]; _detectedFileName = true; @@ -906,11 +909,12 @@ request = [OFHTTPRequest requestWithURL: URL]; [request setHeaders: clientHeaders]; [request setMethod: OF_HTTP_REQUEST_METHOD_HEAD]; - [_HTTPClient asyncPerformRequest: request]; + [_HTTPClient asyncPerformRequest: request + context: @"detectFileName"]; return; } _detectedFileName = false; @@ -947,13 +951,14 @@ request = [OFHTTPRequest requestWithURL: URL]; [request setHeaders: clientHeaders]; [request setMethod: _method]; [request setBody: _body]; - [_HTTPClient asyncPerformRequest: request]; + [_HTTPClient asyncPerformRequest: request + context: nil]; return; next: [self performSelector: @selector(downloadNextURL) afterDelay: 0]; } @end