public void Configure(FtpClientConfiguration configuration) { Configuration = configuration; if (configuration.Host == null) { throw new ArgumentNullException(nameof(configuration.Host)); } ControlStream = new FtpControlStream(Configuration, new DnsResolver()); Configuration.BaseDirectory = $"/{Configuration.BaseDirectory.TrimStart( '/' )}"; }
public void Configure(FtpClientConfiguration configuration) { Configuration = configuration; if (configuration.Host == null) { throw new ArgumentNullException(nameof(configuration.Host)); } if (Uri.IsWellFormedUriString(configuration.Host, UriKind.Absolute)) { configuration.Host = new Uri(configuration.Host).Host; } ControlStream = new FtpControlStream(Configuration, new DnsResolver()); Configuration.BaseDirectory = $"/{Configuration.BaseDirectory.TrimStart( '/' )}"; }
private void OpenControlConnection( ServicePoint svcPoint ) { Socket controlSocket = new Socket( AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp ); EndPoint clientIPEndPoint = new IPEndPoint( IPAddress.Any, 0 ); try { controlSocket.Bind( clientIPEndPoint ); IPHostEntry serverHostEntry = Dns.GetHostByName( uri.Host ); IPEndPoint serverEndPoint = new IPEndPoint( serverHostEntry.AddressList[0], uri.Port ); // TODO: Rollback to try other addresses if first one fails... controlSocket.Connect( serverEndPoint ); controlStream = new FtpControlStream( controlSocket ); } catch( Exception ) { controlSocket.Close(); throw; } catch { controlSocket.Close(); throw; } }