@@ -248,11 +248,11 @@ } - (void)dealloc { if (_socket != nil) - [self close]; /* includes [_socket release] */ + [self close]; [_server release]; [_request release]; [super dealloc]; @@ -675,11 +675,12 @@ return self; } - (void)dealloc { - [self close]; + if (_socket != nil) + [self close]; [super dealloc]; } - (bool)lowlevelIsAtEndOfStream @@ -718,12 +719,17 @@ return _socket.fileDescriptorForReading; } - (void)close { + if (_socket == nil) + @throw [OFNotOpenException exceptionWithObject: self]; + [_socket release]; _socket = nil; + + [super close]; } @end #ifdef OF_HAVE_THREADS @implementation OFHTTPServerThread