public void Connect(Connection connection, Address address, bool noVerification) { TcpSocket socket = new TcpSocket(); if (connection.Handler != null && connection.Handler.CanHandle(EventId.SocketConnect)) { connection.Handler.Handle(Event.Create(EventId.SocketConnect, connection, null, null, socket)); } socket.Connect(address.Host, address.Port); if (address.UseSsl) { SslSocket sslSocket = new SslSocket(socket, noVerification); if (connection.Handler != null && connection.Handler.CanHandle(Handler.EventId.SocketConnect)) { connection.Handler.Handle(Event.Create(EventId.SslAuthenticate, connection, null, null, sslSocket)); } else { sslSocket.AuthenticateAsClient(address.Host); } this.socketTransport = sslSocket; } else { this.socketTransport = socket; } }
public void Connect(Connection connection, Address address, bool noVerification) { var ipHostEntry = Dns.GetHostEntry(address.Host); Exception exception = null; TcpSocket socket = null; foreach (var ipAddress in ipHostEntry.AddressList) { if (ipAddress == null) { continue; } try { socket = new TcpSocket(); socket.Connect(new IPEndPoint(ipAddress, address.Port)); exception = null; break; } catch (SocketException socketException) { if (socket != null) { socket.Close(); socket = null; } exception = socketException; } } if (exception != null) { throw exception; } if (address.UseSsl) { SslSocket sslSocket = new SslSocket(socket); sslSocket.AuthenticateAsClient( address.Host, null, noVerification ? SslVerification.NoVerification : SslVerification.VerifyPeer, SslProtocols.Default); this.socketTransport = sslSocket; } else { this.socketTransport = socket; } }
public void Connect(Connection connection, Address address, bool noVerification) { TcpSocket socket = new TcpSocket(); socket.Connect(address.Host, address.Port); if (address.UseSsl) { SslSocket sslSocket = new SslSocket(socket, noVerification); sslSocket.AuthenticateAsClient(address.Host); this.socketTransport = sslSocket; } else { this.socketTransport = socket; } }