@@ -71,11 +71,11 @@ size_t _toRead; } @property (nonatomic, setter=of_setKeepAlive:) bool of_keepAlive; -- (instancetype)initWithSocket: (OFTCPSocket *)socket; +- (instancetype)initWithSocket: (OFTCPSocket *)sock; @end static OFString * constructRequestString(OFHTTPRequest *request) { @@ -236,19 +236,19 @@ [_serverHeaders release]; [super dealloc]; } -- (void)createResponseWithSocket: (OFTCPSocket *)socket +- (void)createResponseWithSocket: (OFTCPSocket *)sock { OFURL *URL = [_request URL]; OFHTTPClientResponse *response; OFString *connectionHeader; bool keepAlive; OFString *location; - response = [[[OFHTTPClientResponse alloc] initWithSocket: socket] + response = [[[OFHTTPClientResponse alloc] initWithSocket: sock] autorelease]; [response setProtocolVersionFromString: _version]; [response setStatusCode: _status]; [response setHeaders: _serverHeaders]; @@ -268,11 +268,11 @@ } if (keepAlive) { [response of_setKeepAlive: true]; - _client->_socket = [socket retain]; + _client->_socket = [sock retain]; _client->_lastURL = [URL copy]; _client->_lastWasHEAD = ([_request method] == OF_HTTP_REQUEST_METHOD_HEAD); _client->_lastResponse = [response retain]; } @@ -408,11 +408,11 @@ return true; } - (bool)handleServerHeader: (OFString *)line - socket: (OFTCPSocket *)socket + socket: (OFTCPSocket *)sock { OFString *key, *value, *old; const char *lineC, *tmp; char *keyC; @@ -429,11 +429,11 @@ statusCode: _status request: _request context: _context]; [self performSelector: @selector(createResponseWithSocket:) - withObject: socket + withObject: sock afterDelay: 0]; return false; } @@ -472,15 +472,17 @@ forKey: key]; return true; } -- (bool)socket: (OFTCPSocket *)socket +- (bool)socket: (OFTCPSocket *)sock didReadLine: (OFString *)line context: (id)context exception: (id)exception { + bool ret; + if (exception != nil) { if ([exception isKindOfClass: [OFInvalidEncodingException class]]) exception = [OFInvalidServerReplyException exception]; @@ -492,24 +494,26 @@ } @try { if (_firstLine) { _firstLine = false; - return [self handleFirstLine: line]; + ret = [self handleFirstLine: line]; } else - return [self handleServerHeader: line - socket: socket]; + ret = [self handleServerHeader: line + socket: sock]; } @catch (id e) { [_client->_delegate client: _client didEncounterException: e forRequest: _request context: _context]; - return false; + ret = false; } + + return ret; } -- (size_t)socket: (OFTCPSocket *)socket +- (size_t)socket: (OFTCPSocket *)sock didWriteBody: (const void **)body length: (size_t)length context: (id)context exception: (id)exception { @@ -519,18 +523,18 @@ forRequest: _request context: _context]; return 0; } - [socket asyncReadLineWithTarget: self - selector: @selector(socket:didReadLine:context: - exception:) - context: nil]; + [sock asyncReadLineWithTarget: self + selector: @selector(socket:didReadLine:context: + exception:) + context: nil]; return 0; } -- (size_t)socket: (OFTCPSocket *)socket +- (size_t)socket: (OFTCPSocket *)sock didWriteRequest: (const void **)request length: (size_t)length context: (id)context exception: (id)exception { @@ -551,26 +555,26 @@ context: _context]; return 0; } if ((body = [_request body]) != nil) { - [socket asyncWriteBuffer: [body items] - length: [body count] * [body itemSize] - target: self - selector: @selector(socket:didWriteBody:length: - context:exception:) - context: nil]; + [sock asyncWriteBuffer: [body items] + length: [body count] * [body itemSize] + target: self + selector: @selector(socket:didWriteBody:length: + context:exception:) + context: nil]; return 0; } else - return [self socket: socket + return [self socket: sock didWriteBody: NULL length: 0 context: nil exception: nil]; } -- (void)handleSocket: (OFTCPSocket *)socket +- (void)handleSocket: (OFTCPSocket *)sock { /* * As a work around for a bug with split packets in lighttpd when using * HTTPS, we construct the complete request in a buffer string and then * send it all at once. @@ -586,26 +590,26 @@ /* * Pass requestString as context to retain it so that the * underlying buffer lives long enough. */ - [socket asyncWriteBuffer: UTF8String - length: UTF8StringLength - target: self - selector: @selector(socket:didWriteRequest: - length:context:exception:) - context: requestString]; + [sock asyncWriteBuffer: UTF8String + length: UTF8StringLength + target: self + selector: @selector(socket:didWriteRequest: + length:context:exception:) + context: requestString]; } @catch (id e) { [_client->_delegate client: _client didEncounterException: e forRequest: _request context: _context]; return; } } -- (void)socketDidConnect: (OFTCPSocket *)socket +- (void)socketDidConnect: (OFTCPSocket *)sock context: (id)context exception: (id)exception { if (exception != nil) { [_client->_delegate client: _client @@ -616,23 +620,23 @@ } if ([_client->_delegate respondsToSelector: @selector(client:didCreateSocket:forRequest:context:)]) [_client->_delegate client: _client - didCreateSocket: socket + didCreateSocket: sock forRequest: _request context: _context]; [self performSelector: @selector(handleSocket:) - withObject: socket + withObject: sock afterDelay: 0]; } - (bool)throwAwayContent: (OFHTTPClientResponse *)response buffer: (char *)buffer length: (size_t)length - context: (OFTCPSocket *)socket + context: (OFTCPSocket *)sock exception: (id)exception { if (exception != nil) { [_client->_delegate client: _client didEncounterException: exception @@ -646,11 +650,11 @@ [_client->_lastResponse release]; _client->_lastResponse = nil; [self performSelector: @selector(handleSocket:) - withObject: socket + withObject: sock afterDelay: 0]; return false; } return true; @@ -657,11 +661,11 @@ } - (void)start { OFURL *URL = [_request URL]; - OFTCPSocket *socket; + OFTCPSocket *sock; /* Can we reuse the last socket? */ if (_client->_socket != nil && [[_client->_lastURL scheme] isEqual: [URL scheme]] && [[_client->_lastURL host] isEqual: [URL host]] && @@ -669,11 +673,11 @@ /* * Set _socket to nil, so that in case of an error it won't be * reused. If everything is successful, we set _socket again * at the end. */ - socket = [_client->_socket autorelease]; + sock = [_client->_socket autorelease]; _client->_socket = nil; [_client->_lastURL release]; _client->_lastURL = nil; @@ -686,57 +690,56 @@ length: 512 target: self selector: @selector(throwAwayContent: buffer:length:context: exception:) - context: socket]; + context: sock]; } else { [_client->_lastResponse release]; _client->_lastResponse = nil; [self performSelector: @selector(handleSocket:) - withObject: socket + withObject: sock afterDelay: 0]; } } else [self closeAndReconnect]; } - (void)closeAndReconnect { OFURL *URL = [_request URL]; - OFTCPSocket *socket; + OFTCPSocket *sock; [_client close]; if ([[URL scheme] isEqual: @"https"]) { if (of_tls_socket_class == Nil) @throw [OFUnsupportedProtocolException exceptionWithURL: URL]; - socket = [[[of_tls_socket_class alloc] init] - autorelease]; + sock = [[[of_tls_socket_class alloc] init] autorelease]; } else - socket = [OFTCPSocket socket]; - - [socket asyncConnectToHost: [URL host] - port: [URL port] - target: self - selector: @selector(socketDidConnect:context: - exception:) - context: nil]; + sock = [OFTCPSocket socket]; + + [sock asyncConnectToHost: [URL host] + port: [URL port] + target: self + selector: @selector(socketDidConnect:context: + exception:) + context: nil]; } @end @implementation OFHTTPClientResponse @synthesize of_keepAlive = _keepAlive; -- (instancetype)initWithSocket: (OFTCPSocket *)socket +- (instancetype)initWithSocket: (OFTCPSocket *)sock { self = [super init]; - _socket = [socket retain]; + _socket = [sock retain]; return self; } - (void)dealloc