public SecureTransfer(string host, string user, string pass, int port, SSHTransferProtocol protocol) { Host = host; User = user; Password = pass; Port = port; Protocol = protocol; }
public SecureTransfer(string host, string user, string pass, int port, SSHTransferProtocol protocol, string source, string dest) { Host = host; User = user; Password = pass; Port = port; Protocol = protocol; SrcFile = source; DstFile = dest; }
private void StartTransfer(SSHTransferProtocol Protocol) { if (AllFieldsSet() == false) { Runtime.MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, Language.strPleaseFillAllFields); return; } if (File.Exists(txtLocalFile.Text) == false) { Runtime.MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, Language.strLocalFileDoesNotExist); return; } try { if (Protocol == SSHTransferProtocol.SCP) { sshT = new Scp(txtHost.Text, txtUser.Text, txtPassword.Text); } else if (Protocol == SSHTransferProtocol.SFTP) { sshT = new Sftp(txtHost.Text, txtUser.Text, txtPassword.Text); } sshT.OnTransferStart += SshTransfer_Start; sshT.OnTransferProgress += SshTransfer_Progress; sshT.OnTransferEnd += SshTransfer_End; sshT.Connect(Convert.ToInt32(txtPort.Text)); LocalFile = txtLocalFile.Text; RemoteFile = txtRemoteFile.Text; Thread t = new Thread(new ThreadStart(StartTransferBG)); t.SetApartmentState(ApartmentState.STA); t.IsBackground = true; t.Start(); } catch (Exception ex) { Runtime.MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, Language.strSSHTransferFailed + Environment.NewLine + ex.Message); sshT.Close(); } }
private void StartTransfer(SSHTransferProtocol Protocol) { if (AllFieldsSet() == false) { Runtime.MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, Language.strPleaseFillAllFields); return; } if (File.Exists(this.txtLocalFile.Text) == false) { Runtime.MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, Language.strLocalFileDoesNotExist); return; } try { if (Protocol == SSHTransferProtocol.SCP) { var ssh = new ScpClient(txtHost.Text, int.Parse(this.txtPort.Text), txtUser.Text, txtPassword.Text); ssh.Uploading+=(sender, e) => SetProgressStatus(e.Uploaded, e.Size); DisableButtons(); ssh.Connect(); ssh.Upload(new FileStream(txtLocalFile.Text,FileMode.Open), txtRemoteFile.Text); } else if (Protocol == SSHTransferProtocol.SFTP) { var ssh = new SftpClient(txtHost.Text, int.Parse(txtPort.Text),txtUser.Text, txtPassword.Text); var s = new FileStream(txtLocalFile.Text, FileMode.Open); ssh.Connect(); var i = ssh.BeginUploadFile(s, txtRemoteFile.Text) as SftpUploadAsyncResult; ThreadPool.QueueUserWorkItem(state => { while (!i.IsCompleted) { SetProgressStatus((long)i.UploadedBytes, s.Length); } MessageBox.Show(Language.SSHTransfer_StartTransfer_Upload_completed_); EnableButtons(); }); } } catch (Exception ex) { Runtime.MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, Language.strSSHTransferFailed + Constants.vbNewLine + ex.Message); EnableButtons(); } }