@@ -23,13 +23,15 @@ #import "common.h" @implementation OFListenFailedException + newWithClass: (Class)class_ + socket: (OFTCPSocket*)socket backLog: (int)backlog { return [[self alloc] initWithClass: class_ + socket: socket backLog: backlog]; } - initWithClass: (Class)class_ { @@ -38,19 +40,33 @@ @throw [OFNotImplementedException newWithClass: c selector: _cmd]; } - initWithClass: (Class)class_ + socket: (OFTCPSocket*)socket_ backLog: (int)backlog { self = [super initWithClass: class_]; - backLog = backlog; - errNo = GET_SOCK_ERRNO; + @try { + socket = [socket_ retain]; + backLog = backlog; + errNo = GET_SOCK_ERRNO; + } @catch (id e) { + [self release]; + @throw e; + } return self; } + +- (void)dealloc +{ + [socket release]; + + [super dealloc]; +} - (OFString*)description { if (description != nil) return description; @@ -60,15 +76,20 @@ ERRFMT, inClass, backLog, ERRPARAM]; return description; } -- (int)errNo +- (OFTCPSocket*)socket { - return errNo; + return socket; } - (int)backLog { return backLog; } + +- (int)errNo +{ + return errNo; +} @end