FluentFTP 추가
This commit is contained in:
42
FluentFTP/Proxy/FtpClientUserAtHostProxyBlueCoat.cs
Normal file
42
FluentFTP/Proxy/FtpClientUserAtHostProxyBlueCoat.cs
Normal file
@@ -0,0 +1,42 @@
|
||||
namespace FluentFTP.Proxy {
|
||||
/// <summary>
|
||||
/// A FTP client with a user@host proxy identification, that works with Blue Coat FTP Service servers.
|
||||
///
|
||||
/// The 'blue coat variant' forces the client to wait for a 220 FTP response code in
|
||||
/// the handshake phase.
|
||||
/// </summary>
|
||||
public class FtpClientUserAtHostProxyBlueCoat : FtpClientProxy
|
||||
{
|
||||
/// <summary> A FTP client with a user@host proxy identification. </summary>
|
||||
/// <param name="proxy">Proxy information</param>
|
||||
public FtpClientUserAtHostProxyBlueCoat(ProxyInfo proxy)
|
||||
: base(proxy)
|
||||
{
|
||||
ConnectionType = "User@Host";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates a new instance of this class. Useful in FTP proxy classes.
|
||||
/// </summary>
|
||||
protected override FtpClient Create()
|
||||
{
|
||||
return new FtpClientUserAtHostProxyBlueCoat(Proxy);
|
||||
}
|
||||
|
||||
/// <summary> Redefine the first dialog: auth with proxy information </summary>
|
||||
protected override void Handshake()
|
||||
{
|
||||
// Proxy authentication eventually needed.
|
||||
if (Proxy.Credentials != null)
|
||||
Authenticate(Proxy.Credentials.UserName, Proxy.Credentials.Password);
|
||||
|
||||
// Connection USER@Host means to change user name to add host.
|
||||
Credentials.UserName = Credentials.UserName + "@" + Host;
|
||||
|
||||
FtpReply reply = GetReply();
|
||||
if (reply.Code == "220")
|
||||
FtpTrace.WriteLine(FtpTraceLevel.Info, "Status: Server is ready for the new client");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user