@@ -36,10 +36,11 @@ #import "IRCConnection.h" #import "IRCUser.h" @implementation IRCConnection +@synthesize socketClass = _socketClass; @synthesize server = _server, port = _port; @synthesize nickname = _nickname, username = _username, realname = _realname; @synthesize delegate = _delegate, socket = _socket; + (instancetype)connection @@ -50,10 +51,11 @@ - init { self = [super init]; @try { + _socketClass = [OFTCPSocket class]; _channels = [[OFMutableDictionary alloc] init]; _port = 6667; } @catch (id e) { [self release]; @throw e; @@ -79,11 +81,16 @@ void *pool = objc_autoreleasePoolPush(); if (_socket != nil) @throw [OFAlreadyConnectedException exception]; - _socket = [[OFTCPSocket alloc] init]; + _socket = [[_socketClass alloc] init]; + if ([_delegate respondsToSelector: + @selector(connection:didCreateSocket:)]) + [_delegate connection: self + didCreateSocket: _socket]; + [_socket connectToHost: _server port: _port]; [self sendLineWithFormat: @"NICK %@", _nickname]; [self sendLineWithFormat: @"USER %@ * 0 :%@", _username, _realname];