Index: src/OFHTTPClient.m ================================================================== --- src/OFHTTPClient.m +++ src/OFHTTPClient.m @@ -126,17 +126,11 @@ if (_atEndOfStream) { OFReadFailedException *e; e = [OFReadFailedException exceptionWithStream: self requestedLength: length]; - -#ifndef _WIN32 e->_errNo = ENOTCONN; -#else - e->_errNo = WSAENOTCONN; -#endif - @throw e; } if (!_hasContentLength && !_chunked) return [_socket readIntoBuffer: buffer @@ -435,14 +429,13 @@ [requestString appendString: @"\r\n"]; @try { [socket writeString: requestString]; } @catch (OFWriteFailedException *e) { - /* Reconnect in case a keep-alive connection timed out */ - socket = [self OF_createSocketForRequest: request]; - [socket writeString: requestString]; - } @catch (OFNotConnectedException *e) { + if ([e errNo] != ECONNRESET && [e errNo] != EPIPE) + @throw e; + /* Reconnect in case a keep-alive connection timed out */ socket = [self OF_createSocketForRequest: request]; [socket writeString: requestString]; } Index: src/OFStreamSocket.m ================================================================== --- src/OFStreamSocket.m +++ src/OFStreamSocket.m @@ -95,16 +95,11 @@ if (_atEndOfStream) { OFReadFailedException *e; e = [OFReadFailedException exceptionWithStream: self requestedLength: length]; -#ifndef _WIN32 e->_errNo = ENOTCONN; -#else - e->_errNo = WSAENOTCONN; -#endif - @throw e; } if ((ret = recv(_socket, buffer, length, 0)) < 0) @throw [OFReadFailedException exceptionWithStream: self @@ -125,16 +120,11 @@ if (_atEndOfStream) { OFWriteFailedException *e; e = [OFWriteFailedException exceptionWithStream: self requestedLength: length]; -#ifndef _WIN32 e->_errNo = ENOTCONN; -#else - e->_errNo = WSAENOTCONN; -#endif - @throw e; } if (send(_socket, buffer, length, 0) < length) @throw [OFWriteFailedException exceptionWithStream: self