Example #1
0
        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( '/' )}";
        }
Example #2
0
        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;
			}
		}