@@ -47,10 +47,29 @@ + (instancetype)socket { return [[[self alloc] init] autorelease]; } + +- (instancetype)init +{ + self = [super init]; + + @try { + if (self.class == [OFStreamSocket class]) { + [self doesNotRecognizeSelector: _cmd]; + abort(); + } + + _socket = INVALID_SOCKET; + } @catch (id e) { + [self release]; + @throw e; + } + + return self; +} - (bool)lowlevelIsAtEndOfStream { if (_socket == INVALID_SOCKET) @throw [OFNotOpenException exceptionWithObject: self];