From 2bc49d59c73d4a3fc12cc623e2120b2889583625 Mon Sep 17 00:00:00 2001 From: Fedor Golishevskiy Date: Sat, 25 Feb 2017 16:49:48 +0300 Subject: [PATCH] Add timeout field --- Sshfs/Sshfs/MainForm.Designer.cs | 161 +++++++++++++++++++++--------- Sshfs/Sshfs/MainForm.cs | 2 + Sshfs/Sshfs/MainForm.resx | 164 +++++++++++++++---------------- Sshfs/Sshfs/SftpDrive.cs | 17 +++- Sshfs/Sshfs/SftpFilesystem.cs | 4 +- 5 files changed, 215 insertions(+), 133 deletions(-) diff --git a/Sshfs/Sshfs/MainForm.Designer.cs b/Sshfs/Sshfs/MainForm.Designer.cs index 0d24785..97f6284 100644 --- a/Sshfs/Sshfs/MainForm.Designer.cs +++ b/Sshfs/Sshfs/MainForm.Designer.cs @@ -65,7 +65,8 @@ private void InitializeComponent() this.label10 = new System.Windows.Forms.Label(); this.proxyType = new System.Windows.Forms.ComboBox(); this.labelKeepAlive = new System.Windows.Forms.Label(); - this.keepAliveIntervalBox = new System.Windows.Forms.NumericUpDown(); + this.timeoutIntervalBox = new System.Windows.Forms.NumericUpDown(); + this.labelTimeout = new System.Windows.Forms.Label(); this.driveListView = new System.Windows.Forms.ListView(); this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.imageList = new System.Windows.Forms.ImageList(this.components); @@ -90,17 +91,21 @@ private void InitializeComponent() this.startupMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.aboutMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.exitMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.keepAliveIntervalBox = new System.Windows.Forms.NumericUpDown(); + this.tableLayoutPanel4 = new System.Windows.Forms.TableLayoutPanel(); this.tableLayoutPanel1.SuspendLayout(); this.fieldsPanel.SuspendLayout(); this.panel3.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.portBox)).BeginInit(); this.panel1.SuspendLayout(); this.panel2.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.keepAliveIntervalBox)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.timeoutIntervalBox)).BeginInit(); this.tableLayoutPanel2.SuspendLayout(); this.buttonPanel.SuspendLayout(); this.tableLayoutPanel3.SuspendLayout(); this.contextMenu.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.keepAliveIntervalBox)).BeginInit(); + this.tableLayoutPanel4.SuspendLayout(); this.SuspendLayout(); // // tableLayoutPanel1 @@ -121,15 +126,15 @@ private void InitializeComponent() this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 42F)); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 41F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(583, 469); + this.tableLayoutPanel1.Size = new System.Drawing.Size(583, 467); this.tableLayoutPanel1.TabIndex = 0; // // fieldsPanel // this.fieldsPanel.ColumnCount = 3; - this.fieldsPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 26.10063F)); - this.fieldsPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 73.89937F)); - this.fieldsPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 26F)); + this.fieldsPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 26.59933F)); + this.fieldsPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 73.40067F)); + this.fieldsPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 30F)); this.fieldsPanel.Controls.Add(this.proxyHostBox, 1, 10); this.fieldsPanel.Controls.Add(this.label12, 0, 10); this.fieldsPanel.Controls.Add(this.panel3, 1, 11); @@ -155,7 +160,7 @@ private void InitializeComponent() this.fieldsPanel.Controls.Add(this.label10, 0, 9); this.fieldsPanel.Controls.Add(this.proxyType, 1, 9); this.fieldsPanel.Controls.Add(this.labelKeepAlive, 0, 12); - this.fieldsPanel.Controls.Add(this.keepAliveIntervalBox, 1, 12); + this.fieldsPanel.Controls.Add(this.tableLayoutPanel4, 1, 12); this.fieldsPanel.Dock = System.Windows.Forms.DockStyle.Fill; this.fieldsPanel.Location = new System.Drawing.Point(253, 5); this.fieldsPanel.Name = "fieldsPanel"; @@ -175,15 +180,16 @@ private void InitializeComponent() this.fieldsPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 29F)); this.fieldsPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 29F)); this.fieldsPanel.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.fieldsPanel.Size = new System.Drawing.Size(327, 420); + this.fieldsPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.fieldsPanel.Size = new System.Drawing.Size(327, 418); this.fieldsPanel.TabIndex = 1; // // proxyHostBox // this.proxyHostBox.Dock = System.Windows.Forms.DockStyle.Fill; - this.proxyHostBox.Location = new System.Drawing.Point(81, 322); + this.proxyHostBox.Location = new System.Drawing.Point(82, 322); this.proxyHostBox.Name = "proxyHostBox"; - this.proxyHostBox.Size = new System.Drawing.Size(216, 20); + this.proxyHostBox.Size = new System.Drawing.Size(211, 20); this.proxyHostBox.TabIndex = 10; // // label12 @@ -202,15 +208,15 @@ private void InitializeComponent() this.panel3.Controls.Add(this.proxyPassBox); this.panel3.Controls.Add(this.proxyLoginBox); this.panel3.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel3.Location = new System.Drawing.Point(81, 351); + this.panel3.Location = new System.Drawing.Point(82, 351); this.panel3.Name = "panel3"; - this.panel3.Size = new System.Drawing.Size(216, 23); + this.panel3.Size = new System.Drawing.Size(211, 23); this.panel3.TabIndex = 11; // // proxyPassBox // this.proxyPassBox.Dock = System.Windows.Forms.DockStyle.Right; - this.proxyPassBox.Location = new System.Drawing.Point(111, 0); + this.proxyPassBox.Location = new System.Drawing.Point(106, 0); this.proxyPassBox.Name = "proxyPassBox"; this.proxyPassBox.Size = new System.Drawing.Size(105, 20); this.proxyPassBox.TabIndex = 1; @@ -237,9 +243,9 @@ private void InitializeComponent() // // nameBox // - this.nameBox.Location = new System.Drawing.Point(81, 3); + this.nameBox.Location = new System.Drawing.Point(82, 3); this.nameBox.Name = "nameBox"; - this.nameBox.Size = new System.Drawing.Size(216, 20); + this.nameBox.Size = new System.Drawing.Size(211, 20); this.nameBox.TabIndex = 0; this.nameBox.Leave += new System.EventHandler(this.box_Leave); // @@ -256,9 +262,9 @@ private void InitializeComponent() // // hostBox // - this.hostBox.Location = new System.Drawing.Point(81, 32); + this.hostBox.Location = new System.Drawing.Point(82, 32); this.hostBox.Name = "hostBox"; - this.hostBox.Size = new System.Drawing.Size(216, 20); + this.hostBox.Size = new System.Drawing.Size(211, 20); this.hostBox.TabIndex = 1; this.hostBox.Leave += new System.EventHandler(this.box_Leave); // @@ -275,7 +281,7 @@ private void InitializeComponent() // // portBox // - this.portBox.Location = new System.Drawing.Point(81, 61); + this.portBox.Location = new System.Drawing.Point(82, 61); this.portBox.Name = "portBox"; this.portBox.Size = new System.Drawing.Size(68, 20); this.portBox.TabIndex = 2; @@ -304,9 +310,9 @@ private void InitializeComponent() // // userBox // - this.userBox.Location = new System.Drawing.Point(81, 90); + this.userBox.Location = new System.Drawing.Point(82, 90); this.userBox.Name = "userBox"; - this.userBox.Size = new System.Drawing.Size(216, 20); + this.userBox.Size = new System.Drawing.Size(211, 20); this.userBox.TabIndex = 3; this.userBox.Leave += new System.EventHandler(this.box_Leave); // @@ -318,9 +324,9 @@ private void InitializeComponent() "Password", "PrivateKey", "Pageant"}); - this.authCombo.Location = new System.Drawing.Point(81, 119); + this.authCombo.Location = new System.Drawing.Point(82, 119); this.authCombo.Name = "authCombo"; - this.authCombo.Size = new System.Drawing.Size(216, 21); + this.authCombo.Size = new System.Drawing.Size(211, 21); this.authCombo.TabIndex = 4; this.authCombo.SelectedIndexChanged += new System.EventHandler(this.authBox_SelectedIndexChanged); // @@ -350,7 +356,7 @@ private void InitializeComponent() // this.panel1.Controls.Add(this.letterBox); this.panel1.Controls.Add(this.mountCheck); - this.panel1.Location = new System.Drawing.Point(81, 235); + this.panel1.Location = new System.Drawing.Point(82, 235); this.panel1.Name = "panel1"; this.panel1.Size = new System.Drawing.Size(182, 23); this.panel1.TabIndex = 7; @@ -384,9 +390,9 @@ private void InitializeComponent() this.directoryBox.Items.AddRange(new object[] { ".", "/"}); - this.directoryBox.Location = new System.Drawing.Point(81, 206); + this.directoryBox.Location = new System.Drawing.Point(82, 206); this.directoryBox.Name = "directoryBox"; - this.directoryBox.Size = new System.Drawing.Size(216, 21); + this.directoryBox.Size = new System.Drawing.Size(211, 21); this.directoryBox.TabIndex = 6; // // label7 @@ -406,9 +412,9 @@ private void InitializeComponent() this.panel2.Controls.Add(this.privateKeyBox); this.panel2.Controls.Add(this.privateKeyButton); this.panel2.Controls.Add(this.passwordBox); - this.panel2.Location = new System.Drawing.Point(81, 148); + this.panel2.Location = new System.Drawing.Point(82, 148); this.panel2.Name = "panel2"; - this.panel2.Size = new System.Drawing.Size(216, 52); + this.panel2.Size = new System.Drawing.Size(211, 52); this.panel2.TabIndex = 5; // // passphraseBox @@ -472,9 +478,9 @@ private void InitializeComponent() // mountPointBox // this.mountPointBox.Dock = System.Windows.Forms.DockStyle.Fill; - this.mountPointBox.Location = new System.Drawing.Point(81, 264); + this.mountPointBox.Location = new System.Drawing.Point(82, 264); this.mountPointBox.Name = "mountPointBox"; - this.mountPointBox.Size = new System.Drawing.Size(216, 20); + this.mountPointBox.Size = new System.Drawing.Size(211, 20); this.mountPointBox.TabIndex = 8; // // label10 @@ -497,9 +503,9 @@ private void InitializeComponent() "HTTP", "SOCKS4", "SOCKS5"}); - this.proxyType.Location = new System.Drawing.Point(81, 293); + this.proxyType.Location = new System.Drawing.Point(82, 293); this.proxyType.Name = "proxyType"; - this.proxyType.Size = new System.Drawing.Size(216, 21); + this.proxyType.Size = new System.Drawing.Size(211, 21); this.proxyType.TabIndex = 9; // // labelKeepAlive @@ -508,27 +514,44 @@ private void InitializeComponent() this.labelKeepAlive.Dock = System.Windows.Forms.DockStyle.Fill; this.labelKeepAlive.Location = new System.Drawing.Point(3, 377); this.labelKeepAlive.Name = "labelKeepAlive"; - this.labelKeepAlive.Size = new System.Drawing.Size(72, 29); + this.labelKeepAlive.Size = new System.Drawing.Size(73, 29); this.labelKeepAlive.TabIndex = 26; this.labelKeepAlive.Text = "KeepAlive (s)"; this.labelKeepAlive.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; // - // keepAliveIntervalBox + // timeoutIntervalBox // - this.keepAliveIntervalBox.Location = new System.Drawing.Point(81, 380); - this.keepAliveIntervalBox.Maximum = new decimal(new int[] { + this.timeoutIntervalBox.Dock = System.Windows.Forms.DockStyle.Left; + this.timeoutIntervalBox.Location = new System.Drawing.Point(153, 3); + this.timeoutIntervalBox.Maximum = new decimal(new int[] { 999, 0, 0, 0}); - this.keepAliveIntervalBox.Minimum = new decimal(new int[] { + this.timeoutIntervalBox.Minimum = new decimal(new int[] { 1, 0, 0, 0}); - this.keepAliveIntervalBox.Name = "keepAliveIntervalBox"; - this.keepAliveIntervalBox.Size = new System.Drawing.Size(120, 20); - this.keepAliveIntervalBox.TabIndex = 27; + this.timeoutIntervalBox.Name = "timeoutIntervalBox"; + this.timeoutIntervalBox.Size = new System.Drawing.Size(55, 20); + this.timeoutIntervalBox.TabIndex = 33; + this.timeoutIntervalBox.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // labelTimeout + // + this.labelTimeout.AutoSize = true; + this.labelTimeout.Dock = System.Windows.Forms.DockStyle.Fill; + this.labelTimeout.Location = new System.Drawing.Point(82, 0); + this.labelTimeout.Name = "labelTimeout"; + this.labelTimeout.Size = new System.Drawing.Size(65, 23); + this.labelTimeout.TabIndex = 32; + this.labelTimeout.Text = "Timeout (s)"; + this.labelTimeout.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // driveListView // @@ -542,7 +565,7 @@ private void InitializeComponent() this.driveListView.Location = new System.Drawing.Point(3, 5); this.driveListView.MultiSelect = false; this.driveListView.Name = "driveListView"; - this.driveListView.Size = new System.Drawing.Size(244, 378); + this.driveListView.Size = new System.Drawing.Size(244, 376); this.driveListView.SmallImageList = this.imageList; this.driveListView.TabIndex = 0; this.driveListView.UseCompatibleStateImageBehavior = false; @@ -572,7 +595,7 @@ private void InitializeComponent() this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); this.tableLayoutPanel2.Controls.Add(this.removeButton, 1, 0); this.tableLayoutPanel2.Controls.Add(this.addButton, 0, 0); - this.tableLayoutPanel2.Location = new System.Drawing.Point(3, 389); + this.tableLayoutPanel2.Location = new System.Drawing.Point(3, 387); this.tableLayoutPanel2.Name = "tableLayoutPanel2"; this.tableLayoutPanel2.RowCount = 1; this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); @@ -616,7 +639,7 @@ private void InitializeComponent() this.buttonPanel.Controls.Add(this.muButton, 1, 0); this.buttonPanel.Controls.Add(this.saveButton, 1, 0); this.buttonPanel.Dock = System.Windows.Forms.DockStyle.Fill; - this.buttonPanel.Location = new System.Drawing.Point(253, 431); + this.buttonPanel.Location = new System.Drawing.Point(253, 429); this.buttonPanel.Name = "buttonPanel"; this.buttonPanel.Padding = new System.Windows.Forms.Padding(0, 0, 15, 0); this.buttonPanel.RowCount = 1; @@ -662,7 +685,7 @@ private void InitializeComponent() this.tableLayoutPanel3.Controls.Add(this.virtualDriveCombo, 1, 0); this.tableLayoutPanel3.Controls.Add(this.label9, 0, 0); this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel3.Location = new System.Drawing.Point(3, 431); + this.tableLayoutPanel3.Location = new System.Drawing.Point(3, 429); this.tableLayoutPanel3.Name = "tableLayoutPanel3"; this.tableLayoutPanel3.RowCount = 1; this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); @@ -769,7 +792,6 @@ private void InitializeComponent() this.mountMenuItem.Text = "Mount"; this.mountMenuItem.DropDownClosed += new System.EventHandler(this.mountMenuItem_DropDownClosed); this.mountMenuItem.DropDownOpening += new System.EventHandler(this.mountMenuItem_DropDownOpening); - this.mountMenuItem.DropDown.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.mountMenuItem_PreviewKeyDown); // // unmountMenuItem // @@ -779,7 +801,6 @@ private void InitializeComponent() this.unmountMenuItem.Text = "Unmount"; this.unmountMenuItem.DropDownClosed += new System.EventHandler(this.unmountMenuItem_DropDownClosed); this.unmountMenuItem.DropDownOpening += new System.EventHandler(this.unmountMenuItem_DropDownOpening); - this.unmountMenuItem.DropDown.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.unmountMenuItem_PreviewKeyDown); // // toolStripSeparator2 // @@ -811,11 +832,51 @@ private void InitializeComponent() this.exitMenuItem.Text = "Exit"; this.exitMenuItem.Click += new System.EventHandler(this.exitMenuItem_Click); // + // keepAliveIntervalBox + // + this.keepAliveIntervalBox.Dock = System.Windows.Forms.DockStyle.Left; + this.keepAliveIntervalBox.Location = new System.Drawing.Point(3, 3); + this.keepAliveIntervalBox.Maximum = new decimal(new int[] { + 999, + 0, + 0, + 0}); + this.keepAliveIntervalBox.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.keepAliveIntervalBox.Name = "keepAliveIntervalBox"; + this.keepAliveIntervalBox.Size = new System.Drawing.Size(65, 20); + this.keepAliveIntervalBox.TabIndex = 34; + this.keepAliveIntervalBox.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // tableLayoutPanel4 + // + this.tableLayoutPanel4.ColumnCount = 3; + this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 52.5974F)); + this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 47.4026F)); + this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 60F)); + this.tableLayoutPanel4.Controls.Add(this.timeoutIntervalBox, 2, 0); + this.tableLayoutPanel4.Controls.Add(this.labelTimeout, 1, 0); + this.tableLayoutPanel4.Controls.Add(this.keepAliveIntervalBox, 0, 0); + this.tableLayoutPanel4.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel4.Location = new System.Drawing.Point(82, 380); + this.tableLayoutPanel4.Name = "tableLayoutPanel4"; + this.tableLayoutPanel4.RowCount = 1; + this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel4.Size = new System.Drawing.Size(211, 23); + this.tableLayoutPanel4.TabIndex = 35; + // // MainForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(583, 469); + this.ClientSize = new System.Drawing.Size(583, 467); this.Controls.Add(this.tableLayoutPanel1); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); @@ -836,12 +897,15 @@ private void InitializeComponent() this.panel1.PerformLayout(); this.panel2.ResumeLayout(false); this.panel2.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.keepAliveIntervalBox)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.timeoutIntervalBox)).EndInit(); this.tableLayoutPanel2.ResumeLayout(false); this.buttonPanel.ResumeLayout(false); this.tableLayoutPanel3.ResumeLayout(false); this.tableLayoutPanel3.PerformLayout(); this.contextMenu.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.keepAliveIntervalBox)).EndInit(); + this.tableLayoutPanel4.ResumeLayout(false); + this.tableLayoutPanel4.PerformLayout(); this.ResumeLayout(false); } @@ -907,6 +971,9 @@ private void InitializeComponent() private System.Windows.Forms.TextBox proxyPassBox; private System.Windows.Forms.TextBox proxyLoginBox; private System.Windows.Forms.Label labelKeepAlive; + private System.Windows.Forms.NumericUpDown timeoutIntervalBox; + private System.Windows.Forms.Label labelTimeout; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel4; private System.Windows.Forms.NumericUpDown keepAliveIntervalBox; } } \ No newline at end of file diff --git a/Sshfs/Sshfs/MainForm.cs b/Sshfs/Sshfs/MainForm.cs index 61d97d7..63db955 100644 --- a/Sshfs/Sshfs/MainForm.cs +++ b/Sshfs/Sshfs/MainForm.cs @@ -448,6 +448,7 @@ private void listView_ItemSelectionChanged(object sender, ListViewItemSelectionC proxyLoginBox.Text = drive.ProxyUser; proxyPassBox.Text = drive.ProxyPass; keepAliveIntervalBox.Value = drive.KeepAliveInterval; + timeoutIntervalBox.Value = drive.TimeoutInterval; muButton.Text = drive.Status == DriveStatus.Mounted ? "Unmount" : "Mount"; muButton.Image = drive.Status == DriveStatus.Mounted ? Resources.unmount : Resources.mount; muButton.Enabled = (drive.Status == DriveStatus.Unmounted || drive.Status == DriveStatus.Mounted); @@ -511,6 +512,7 @@ private void saveButton_Click(object sender, EventArgs e) drive.ProxyUser = proxyLoginBox.Text; drive.ProxyPass = proxyPassBox.Text; drive.KeepAliveInterval = (int) keepAliveIntervalBox.Value; + drive.TimeoutInterval = (int) timeoutIntervalBox.Value; _dirty = true; } diff --git a/Sshfs/Sshfs/MainForm.resx b/Sshfs/Sshfs/MainForm.resx index ecccea9..74804a8 100644 --- a/Sshfs/Sshfs/MainForm.resx +++ b/Sshfs/Sshfs/MainForm.resx @@ -125,172 +125,172 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACe - LAAAAk1TRnQBSQFMAgEBBAEAAZwBAAGcAQABGAEAARgBAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFg + LAAAAk1TRnQBSQFMAgEBBAEAAbQBAAG0AQABGAEAARgBAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFg AwABMAMAAQEBAAEgBgABSP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A /wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP0AAQEDAwEEAwUBBwMGAQgDBgEIAwcBCQMHAQkDBwEJ AwcBCgMHAQoDBwEKAwgBCwMaASUDVgGxAkABqAH9AoEBuAH/AoEBuAH/AoEBuAH/AoEBuAH/AoEBuAH/ AoEBuAH/A18B8wNIAYQHAAEBAwMBBAMFAQcDBgEIAwYBCAMHAQkDBwEJAwcBCQMHAQoDBwEKAwcBCgMI AQsDBwEKAwcBCQMFAQcDAQECIAADDwEUAw8BFAMSARgDHgErAyYBOQMoATwDKAE8AyYBOAMiATEDGAEi - AxABFgMQARUDEQEXA0gBgwIaAaQB/wIaAaQB/wIaAaQB/wIaAaQB/wIaAaQB/wIaAaQB/wIaAaQB/wNG + AxABFgMQARUDEQEXA0gBgwIXAaQB/wIXAaQB/wIXAaQB/wIXAaQB/wIXAaQB/wIXAaQB/wIXAaQB/wNG AX4IAAMPARQDDwEUAxIBGAMeASsDJgE5AygBPAMoATwDJgE4AyIBMQMYASIDEAEWAxABFQMRARcDBwEJ AwIBAwMLAQ8DFgEeAxYBHwMLAQ8DAQECEAADTAGPA1QBrwNWAbEDVgGzA1YBswNWAbMDVgGzA1YBswNW AbQDVQG1A1UBtQNVAbUDWwHIA2oB+QKBAdMB/wKBAdMB/wKBAdMB/wKBAdMB/wKBAdMB/wKBAdMB/wKB AdMB/wKBAdQB/wNkAfEEAANMAY8DVAGvA1YBsQNWAbMDVgGzA1YBswNWAbMDVgGzA1YBtANVAbUDVQG1 A1UBtQNVAbUDVgG0Az0BaAMOARMDAwEEHAABgQGEAYIB/wGBAYQBggH/AYEBhAGCAf8BgQGEAYIB/wGB AYQBggH/AYEBhAGCAf8BgQGEAYIB/wGBAYQBggH/AYEBhAGCAf8BgQGEAYIB/wGBAYQBggH/AYEBhAGC - Af8BgQGEAYIB/wIaAaQB/wIaAcwB/wIaAcwB/wIaAcwB/wIaAcwB/wIaAcwB/wIaAcwB/wIaAcwB/wIa + Af8BgQGEAYIB/wIXAaQB/wIXAcwB/wIXAcwB/wIXAcwB/wIXAcwB/wIXAcwB/wIXAcwB/wIXAcwB/wIX AaQB/wgAAYEBhAGCAf8BgQGEAYIB/wGBAYQBggH/AYEBhAGCAf8BgQGEAYIB/wGBAYQBggH/AYEBhAGC Af8BgQGEAYIB/wGBAYQBggH/AYEBhAGCAf8BgQGEAYIB/wGBAYQBggH/AYEBhAGCAf8DGQEjAxQBGwM1 - AVYDYQHaAWkCagH6A1sByAMeASsQAAGoAasBqgH/AeQC5QH/AeEB5AHjAf8B3wLhAf8B3wHhAeAB/wHf + AVYDYQHaAWYCZwH6A1sByAMeASsQAAGoAasBqgH/AeQC5QH/AeEB5AHjAf8B3wLhAf8B3wHhAeAB/wHf AuEB/wHfAuEB/wHfAuEB/wHfAuEB/wHhAeIB4QH/Ad4B4QHfAf8B4QHiAeEB/wGYAZoBzwH/AoEBzAH/ - AlgBzAH/AoEB0QH/AoEB0AH/AlgBzAH/AlgBzAH/AoEB1AH/AlwBzQH/AoEB0wH/AoEBuAH/BAABqAGr + AlUBzAH/AoEB0QH/AoEB0AH/AlUBzAH/AlUBzAH/AoEB1AH/AlkBzQH/AoEB0wH/AoEBuAH/BAABqAGr AaoB/wHkAuUB/wHhAeQB4wH/Ad8C4QH/Ad8B4QHgAf8B3wLhAf8B3wLhAf8B3wLhAf8B3wLhAf8B4QHi AeEB/wHeAeEB3wH/AeEB4gHhAf8B4wHlAeQB/wHhAeMB4gH/A38B/gMYASIDBgEIHAABgQGEAYIB/wPZ - Af8D2QH/A9kB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A9kB/wPZAf8D2QH/AYEBhAGCAf8CGgGkAf8CGgHM - Cf8CGgHMCf8CGgHMAf8CGgGkAf8IAAGBAYQBggH/A9kB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A9kB/wPZ + Af8D2QH/A9kB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A9kB/wPZAf8D2QH/AYEBhAGCAf8CFwGkAf8CFwHM + Cf8CFwHMCf8CFwHMAf8CFwGkAf8IAAGBAYQBggH/A9kB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A9kB/wPZ Af8D2QH/A9kB/wPZAf8BgQGEAYIB/wOBAf8DgQH/A4EB/wGcAp0B/wO2Af8BrAKtAf8DWgHAEAADQAFu A1wB6gG6ArsB/wG2ArcB/wGtAq4B/wGqAasBqgH/AaoCqwH/AaoCqwH/AaoCqwH/A7gB/wGuAq8B/wHI - AskB/wKBAaEB/wKBAcwB/wJYAcwB/wKBAd8B/wLBAfMB/wKBAdYB/wKBAd8B/wLNAfUB/wKBAdMB/wKB + AskB/wKBAaEB/wKBAcwB/wJVAcwB/wKBAd8B/wLBAfMB/wKBAdYB/wKBAd8B/wLNAfUB/wKBAdMB/wKB AdMB/wKBAbgB/wQAA0ABbgNcAeoBugK7Af8BtgK3Af8BrQKuAf8BqgGrAaoB/wGqAqsB/wGqAqsB/wGq AqsB/wO4Af8BrgKvAf8ByALJAf8BnQGfAZ4B/wNiAe8DSQGIAyABLgMEAQUcAAGBAYQBggH/A/MB/wPw - Af8D0QH/A+wB/wPrAf8D6wH/A+sB/wPIAf8DxQH/A8UB/wPoAf8BgQGEAYIB/wIaAaQB/wIaAcwV/wIa - AcwB/wIaAaQB/wgAAYEBhAGCAf8D8wH/A/AB/wPRAf8D7AH/A+sB/wPrAf8D6wH/A8gB/wPFAf8DxQH/ + Af8D0QH/A+wB/wPrAf8D6wH/A+sB/wPIAf8DxQH/A8UB/wPoAf8BgQGEAYIB/wIXAaQB/wIXAcwV/wIX + AcwB/wIXAaQB/wgAAYEBhAGCAf8D8wH/A/AB/wPRAf8D7AH/A+sB/wPrAf8D6wH/A8gB/wPFAf8DxQH/ A+gB/wGBAYQBggH/A5AB/wOzAf8DgQH/A7YB/wPrAf8D1QH/A2oB+RAAAwgBCwM4AV0DfwH+AZYBmgGY Af8BlQGZAZgB/wGSAZUBlAH/AZIBlQGUAf8BkgGVAZQB/wGSAZUBlAH/AZEBlAGTAf8BlwGaAZkB/wGY - AZwBmwH/AoEBlAH/AoEBzAH/AlgBzAH/AmgBzwH/AogB5wH/AtoB+AH/As0B9QH/AoEB3wH/AlgBzAH/ + AZwBmwH/AoEBlAH/AoEBzAH/AlUBzAH/AmUBzwH/AogB5wH/AtoB+AH/As0B9QH/AoEB3wH/AlUBzAH/ AoEB0wH/AoEBuAH/BAADCAELAzgBXQN/Af4BlgGaAZgB/wGVAZkBmAH/AZIBlQGUAf8BkgGVAZQB/wGS AZUBlAH/AZIBlQGUAf8BkQGUAZMB/wGXAZoBmQH/AZgBnAGbAf8DXgHVAz8BbQNMAZIDRwGAAwABARwA A08BlwGBAYQBggH/AYEBhAGCAf8BgQGEAYIB/wGBAYQBggH/AYEBhAGCAf8BgQGEAYIB/wGBAYQBggH/ - AYEBhAGCAf8BgQGEAYIB/wGBAYQBggH/AYEBhAGCAf8DRQF9AhoBpAH/AhoBzAH/AhoBzA3/AhoBzAH/ - AhoBzAH/AhoBpAH/CAADTwGXAYEBhAGCAf8BgQGEAYIB/wGBAYQBggH/AYEBhAGCAf8BgQGEAYIB/wGB + AYEBhAGCAf8BgQGEAYIB/wGBAYQBggH/AYEBhAGCAf8DRQF9AhcBpAH/AhcBzAH/AhcBzA3/AhcBzAH/ + AhcBzAH/AhcBpAH/CAADTwGXAYEBhAGCAf8BgQGEAYIB/wGBAYQBggH/AYEBhAGCAf8BgQGEAYIB/wGB AYQBggH/AYEBhAGCAf8BgQGEAYIB/wGBAYQBggH/AYEBhAGCAf8BgQGEAYIB/wNFAX0DgQH/A4EB/wOB Af8BowKkAf8D1QH/A9cB/wNZAb8UAAMBAQIDBAEFAZUBmQGYAf8BywHPAc4B/wHbAd0B3AH/AdgB2gHZ - Af8BywHPAc4B/wHAAcQBwwH/AbcBuwG6Af8DXAHNAYEBhAGCAf8CVAFWAasCgQHMAf8CWAHMAf8CWAHM - Af8CgQHfBf8C2gH4Af8CgQHWAf8CWAHMAf8CgQHTAf8CgQG4Af8IAAMBAQIDBAEFAZUBmQGYAf8BywHP + Af8BywHPAc4B/wHAAcQBwwH/AbcBuwG6Af8DXAHNAYEBhAGCAf8CVAFWAasCgQHMAf8CVQHMAf8CVQHM + Af8CgQHfBf8C2gH4Af8CgQHWAf8CVQHMAf8CgQHTAf8CgQG4Af8IAAMBAQIDBAEFAZUBmQGYAf8BywHP Ac4B/wHbAd0B3AH/AdgB2gHZAf8BywHPAc4B/wHAAcQBwwH/AbcBuwG6Af8DXAHNAYEBhAGCAf8DSgGJ A1sBxANeAc4DGQEjIAABgQGEAYIB/wPWAf8D7QH/A+0B/wPtAf8D7QH/A+0B/wPtAf8D7QH/A+0B/wPt - Af8D1AH/AYEBhAGCAf8CGgGkAf8CGgHMFf8CGgHMAf8CGgGkAf8IAAGBAYQBggH/A9YB/wH3AfEB6wH/ + Af8D1AH/AYEBhAGCAf8CFwGkAf8CFwHMFf8CFwHMAf8CFwGkAf8IAAGBAYQBggH/A9YB/wH3AfEB6wH/ AfcB8QHrAf8B9wHxAesB/wH3AfEB6wH/AfcB8QHrAf8B9wHxAesB/wH3AfEB6wH/AfcB8QHrAf8B9wHx AesB/wPUAf8BgQGEAYIB/wQAAwUBBwMmATgDgQH/A4EB/wOBAf8DGgElEAADHwEsA14B1QGhAaYBpAH/ AaEBpQGjAf8BoQGlAaMB/wGhAaUBowH/AaEBpQGjAf8BpAGoAacB/wGlAaoBqAH/AaUBqgGoAf8BpQGp - AacB/wGlAakBpwH/AoEBpgH/AoEBzAH/AlgBzAH/AoEB2wH/As0B9QH/AoEB3wH/AocB5wH/AsEB8wH/ - AmoBzwH/AoEB0wH/AoEBuAH/BAADHwEsA14B1QGhAaYBpAH/AaEBpQGjAf8BoQGlAaMB/wGhAaUBowH/ + AacB/wGlAakBpwH/AoEBpgH/AoEBzAH/AlUBzAH/AoEB2wH/As0B9QH/AoEB3wH/AocB5wH/AsEB8wH/ + AmcBzwH/AoEB0wH/AoEBuAH/BAADHwEsA14B1QGhAaYBpAH/AaEBpQGjAf8BoQGlAaMB/wGhAaUBowH/ AaEBpQGjAf8BpAGoAacB/wGlAaoBqAH/AaUBqgGoAf8BpQGpAacB/wGlAakBpwH/AaABpQGjAf8DWwHD - AwcBCQMHAQoDBwEKAwcBCgMIAQsDBwEKAwcBCQMEAQYDAQECBAABgQGEAYIB/wPzAf8BgQFiAVAB/wGB - AWIBUAH/AYEBYgFQAf8BgQFiAVAB/wGBAWIBUAH/AYEBYgFQAf8BgQFiAVAB/wGBAWIBUAH/AYEBYgFQ - Af8D7QH/AYEBhAGCAf8CGgGkAf8CGgHMCf8CGgHMCf8CGgHMAf8CGgGkAf8IAAGBAYQBggH/AfoB9gHy - Af8BpAGBAVYB/wGoAYEBXAH/AagBgQFcAf8BqAGBAVwB/wGoAYEBXAH/AagBgQFcAf8BqAGBAVwB/wGo - AYEBXAH/AaQBgQFWAf8B9wHxAesB/wGBAYQBggH/AwsBDwMMARADDAEQA4EB/wPTAf8DgQH/FAADNQFV + AwcBCQMHAQoDBwEKAwcBCgMIAQsDBwEKAwcBCQMEAQYDAQECBAABgQGEAYIB/wPzAf8BgQFfAU0B/wGB + AV8BTQH/AYEBXwFNAf8BgQFfAU0B/wGBAV8BTQH/AYEBXwFNAf8BgQFfAU0B/wGBAV8BTQH/AYEBXwFN + Af8D7QH/AYEBhAGCAf8CFwGkAf8CFwHMCf8CFwHMCf8CFwHMAf8CFwGkAf8IAAGBAYQBggH/AfoB9gHy + Af8BpAGBAVMB/wGoAYEBWQH/AagBgQFZAf8BqAGBAVkB/wGoAYEBWQH/AagBgQFZAf8BqAGBAVkB/wGo + AYEBWQH/AaQBgQFTAf8B9wHxAesB/wGBAYQBggH/AwsBDwMMARADDAEQA4EB/wPTAf8DgQH/FAADNQFV Ab8BwwHBAf8B1wHcAdkB/wHiAeYB5AH/AeIB5gHkAf8B4AHkAeIB/wHGAcsByAH/AcUBygHIAf8B3QHi - Ad8B/wHfAeQB4QH/Ad8B4wHhAf8B3wHjAeEB/wGPAZIBxgH/AoEBzAH/AlgBzAH/AoEB1wH/AoEB2wH/ - AlgBzAH/AmgBzwH/AoEB4QH/AmwB0AH/AoEB0wH/AoEBuAH/BAADNQFVAb8BwwHBAf8B1wHcAdkB/wHi + Ad8B/wHfAeQB4QH/Ad8B4wHhAf8B3wHjAeEB/wGPAZIBxgH/AoEBzAH/AlUBzAH/AoEB1wH/AoEB2wH/ + AlUBzAH/AmUBzwH/AoEB4QH/AmkB0AH/AoEB0wH/AoEBuAH/BAADNQFVAb8BwwHBAf8B1wHcAdkB/wHi AeYB5AH/AeIB5gHkAf8B4AHkAeIB/wHGAcsByAH/AcUBygHIAf8B3QHiAd8B/wHfAeQB4QH/Ad8B4wHh Af8B3wHjAeEB/wHWAdoB2AH/AZwBoQGfAf8DVgG0A1YBtANVAbUDVQG1A1UBtQNVAbUDVgGzAzEBTgML - AQ8EAAGBAYQBggH/A+4B/wGBAWIBUAH/AZMBgQFmAf8BkwGBAWYB/wGUAYEBZgH/AZMBgQFmAf8BkwGB - AWYB/wGTAYEBZwH/AZQBgQFmAf8BgQFiAVAB/wPuAf8BgQGEAYIB/wIaAaQB/wIaAcwB/wIaAcwB/wIa - AcwB/wIaAcwB/wIaAcwB/wIaAcwB/wIaAcwB/wIaAaQB/wgAAYEBhAGCAf8B+AHyAewB/wGoAYEBXAH/ - AboBgQFgAf8BugGBAWAB/wG7AYEBYAH/AboBgQFgAf8BugGBAWAB/wG6AYEBYQH/AbsBgQFgAf8BqAGB - AVwB/wH4AfIB7AH/AYEBhAGCAf8DOAFeAzgBXgM2AVgDgQH/AccCyAH/A4EB/wMDAQQDBQEHDAADNQFV + AQ8EAAGBAYQBggH/A+4B/wGBAV8BTQH/AZMBgQFjAf8BkwGBAWMB/wGUAYEBYwH/AZMBgQFjAf8BkwGB + AWMB/wGTAYEBZAH/AZQBgQFjAf8BgQFfAU0B/wPuAf8BgQGEAYIB/wIXAaQB/wIXAcwB/wIXAcwB/wIX + AcwB/wIXAcwB/wIXAcwB/wIXAcwB/wIXAcwB/wIXAaQB/wgAAYEBhAGCAf8B+AHyAewB/wGoAYEBWQH/ + AboBgQFdAf8BugGBAV0B/wG7AYEBXQH/AboBgQFdAf8BugGBAV0B/wG6AYEBXgH/AbsBgQFdAf8BqAGB + AVkB/wH4AfIB7AH/AYEBhAGCAf8DOAFeAzgBXgM2AVgDgQH/AccCyAH/A4EB/wMDAQQDBQEHDAADNQFV AcIBxQHEAf8DUgGjA4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8BnQKBAf8BkwGWAcoB/wKB - AcwB/wJdAc0B/wJYAcwB/wJYAcwB/wJYAcwB/wJYAcwB/wJYAcwB/wJYAcwB/wKBAdMB/wJAAagB/QQA + AcwB/wJaAc0B/wJVAcwB/wJVAcwB/wJVAcwB/wJVAcwB/wJVAcwB/wJVAcwB/wKBAdMB/wJAAagB/QQA AzUBVQHCAcUBxAH/A1IBowOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/AZ0CgQH/AdsB4AHe Af8BngGjAaEB/wHfAuEB/wHgAeIB4QH/Ad8B4gHgAf8B3gHhAd8B/wHiAeMB4gH/AeMB5QHjAf8B4QHj - AeIB/wNXAbgDFQEdBAABgQGEAYIB/wPuAf8BgQFiAVAB/wGrAYoBgQH/AZ0CgQH/AY8BgQFjAf8BkAGB - AWMB/wGQAYEBYwH/AZABgQFjAf8BjwGBAWMB/wGBAWIBUAH/A+4B/wGBAYQBggH/AVoBXAGSAf8CGgGk - Af8CGgGkAf8CGgGkAf8CGgGkAf8CGgGkAf8CGgGkAf8CGgGkAf8DRgF+CAABgQGEAYIB/wH4AfIB7AH/ - AagBgQFcAf8B0AGeAYEB/wHEAYsBgQH/AbYBgQFeAf8BtwGBAV4B/wG3AYEBXgH/AbcBgQFeAf8BtgGB - AV4B/wGoAYEBXAH/AfgB8gHsAf8BgQGEAYIB/wGBAYQBggH/AYEBhAGCAf8BgQGEAYIB/wGBAYQBggH/ - AYEBhAGCAf8BgQGEAYIB/wGBAYQBggH/AwEBAgwAAzUBVQOsAf0DgQH/AaACgQH/AZ8CgQH/AZoCgQH/ + AeIB/wNXAbgDFQEdBAABgQGEAYIB/wPuAf8BgQFfAU0B/wGrAYoBgQH/AZ0CgQH/AY8BgQFgAf8BkAGB + AWAB/wGQAYEBYAH/AZABgQFgAf8BjwGBAWAB/wGBAV8BTQH/A+4B/wGBAYQBggH/AVcBWQGSAf8CFwGk + Af8CFwGkAf8CFwGkAf8CFwGkAf8CFwGkAf8CFwGkAf8CFwGkAf8DRgF+CAABgQGEAYIB/wH4AfIB7AH/ + AagBgQFZAf8B0AGeAYEB/wHEAYsBgQH/AbYBgQFbAf8BtwGBAVsB/wG3AYEBWwH/AbcBgQFbAf8BtgGB + AVsB/wGoAYEBWQH/AfgB8gHsAf8BgQGEAYIB/wGBAYQBggH/AYEBhAGCAf8BgQGEAYIB/wGBAYQBggH/ + AYEBhAGCAf8BgQGEAYIB/wGBAYQBggH/AwEBAgwAAzUBVQOpAf0DgQH/AaACgQH/AZ8CgQH/AZoCgQH/ AZgCgQH/AZcCgQH/AZgCgQH/AZgCgQH/AZgCgQH/A4EB/wG2AbkB1gH/AoEBuwH/AoEBzAH/AoEBzAH/ - AoEBzAH/AoEBzAH/AoEBzAH/AoEBzAH/AoEBzAH/A18B+wNWAbMEAAM1AVUDrAH9A4EB/wGgAoEB/wGf + AoEBzAH/AoEBzAH/AoEBzAH/AoEBzAH/AoEBzAH/A18B+wNWAbMEAAM1AVUDqQH9A4EB/wGgAoEB/wGf AoEB/wGaAoEB/wGYAoEB/wGXAoEB/wGYAoEB/wGYAoEB/wGYAoEB/wOBAf8B3wHiAeEB/wGeAaIBoAH/ AaoCqwH/AbECsgH/Aa4CrwH/AbICswH/AboCuwH/AZwBngGdAf8DZAHnA0ABbgMWAR8EAAGBAYQBggH/ - A+4B/wGBAWIBUAH/AakBhwGBAf8BqQGHAYEB/wGoAYcBgQH/AZoCgQH/AZMBgQGAAf8BiwGBAWAB/wGM - AYEBYAH/AYEBYgFQAf8D7wH/AYEBhAGCAf8D2QH/A9kB/wPZAf8D2QH/A9kB/wPZAf8BgQGEAYIB/wMB - AQIMAAGBAYQBggH/AfgB8gHsAf8BqAGBAVwB/wHOAZsBgQH/Ac4BmwGBAf8BzgGbAYEB/wHCAYYBgQH/ - AboBgQFnAf8BsgGBAVsB/wG0AYEBWwH/AagBgQFcAf8B+AHzAe0B/wGBAYQBggH/A9kB/wPZAf8D2QH/ + A+4B/wGBAV8BTQH/AakBhwGBAf8BqQGHAYEB/wGoAYcBgQH/AZoCgQH/AZMBgQGAAf8BiwGBAV0B/wGM + AYEBXQH/AYEBXwFNAf8D7wH/AYEBhAGCAf8D2QH/A9kB/wPZAf8D2QH/A9kB/wPZAf8BgQGEAYIB/wMB + AQIMAAGBAYQBggH/AfgB8gHsAf8BqAGBAVkB/wHOAZsBgQH/Ac4BmwGBAf8BzgGbAYEB/wHCAYYBgQH/ + AboBgQFkAf8BsgGBAVgB/wG0AYEBWAH/AagBgQFZAf8B+AHzAe0B/wGBAYQBggH/A9kB/wPZAf8D2QH/ A9kB/wPZAf8D2QH/AYEBhAGCAf8DAQECDAADNQFVA18B+wOBAf8BrAGLAYEB/wGrAYkBgQH/AaUCgQH/ AZkCgQH/AZUCgQH/AZMCgQH/AZMCgQH/AZQCgQH/A4EB/wHaAt4B/wGCAYYBpQH/AoEBkgH/AoEBkQH/ AoEBkQH/AoEBkQH/AoEBkQH/AlQBVgGrA0UBfANXAboDNQFWBAADNQFVA18B+wOBAf8BrAGLAYEB/wGr AYkBgQH/AaUCgQH/AZkCgQH/AZUCgQH/AZMCgQH/AZMCgQH/AZQCgQH/A4EB/wHdAeEB3wH/AZwBoAGf Af8BkgGVAZQB/wGSAZUBlAH/AZABkwGSAf8BmwGeAZ0B/wGUAZcBlgH/A1YBqwM7AWQDUgGhAysBQgQA - AYEBhAGCAf8D8AH/AYEBYgFQAf8BpgGDAYEB/wGlAYQBgQH/AaYBhAGBAf8BpQGEAYEB/wGmAYQBgQH/ - AaYBhAGBAf8BkAGBAWsB/wGBAWIBUAH/A/AB/wGBAYQBggH/A+sB/wPrAf8DyAH/A8UB/wPFAf8D6AH/ - AYEBhAGCAf8QAAGBAYQBggH/AfgB9AHuAf8BqAGBAVwB/wHMAZcBgQH/AcsBmAGBAf8BzAGYAYEB/wHL - AZgBgQH/AcwBmAGBAf8BzAGYAYEB/wG3AYEBZQH/AagBgQFcAf8B+AH0Ae4B/wGBAYQBggH/A+sB/wPr - Af8DyAH/A8UB/wPFAf8D6AH/AYEBhAGCAf8QAAM1AVUDawH4A4EB/wGrAYkBgQH/AakBhwGBAf8BqQGH + AYEBhAGCAf8D8AH/AYEBXwFNAf8BpgGDAYEB/wGlAYQBgQH/AaYBhAGBAf8BpQGEAYEB/wGmAYQBgQH/ + AaYBhAGBAf8BkAGBAWgB/wGBAV8BTQH/A/AB/wGBAYQBggH/A+sB/wPrAf8DyAH/A8UB/wPFAf8D6AH/ + AYEBhAGCAf8QAAGBAYQBggH/AfgB9AHuAf8BqAGBAVkB/wHMAZcBgQH/AcsBmAGBAf8BzAGYAYEB/wHL + AZgBgQH/AcwBmAGBAf8BzAGYAYEB/wG3AYEBYgH/AagBgQFZAf8B+AH0Ae4B/wGBAYQBggH/A+sB/wPr + Af8DyAH/A8UB/wPFAf8D6AH/AYEBhAGCAf8QAAM1AVUDZQH4A4EB/wGrAYkBgQH/AakBhwGBAf8BqQGH AYEB/wGoAYUBgQH/AZoCgQH/AZACgQH/AZACgQH/AZACgQH/A4EB/wG9AcEBwAH/AZcBmwGZAf8ByAHM - AcsB/wG+AcIBwQH/AbUBuQG4Af8DVgGzA14B1QNNAZEDXgHZA1ABmwMNAREEAAM1AVUDawH4A4EB/wGr + AcsB/wG+AcIBwQH/AbUBuQG4Af8DVgGzA14B1QNNAZEDXgHZA1ABmwMNAREEAAM1AVUDZQH4A4EB/wGr AYkBgQH/AakBhwGBAf8BqQGHAYEB/wGoAYUBgQH/AZoCgQH/AZACgQH/AZACgQH/AZACgQH/A4EB/wG9 AcEBwAH/AZcBmwGZAf8ByAHMAcsB/wG+AcIBwQH/AbUBuQG4Af8DVgGzA14B1QNNAZEDXgHZA1ABmwMN - AREEAAGBAYQBggH/A/MB/wGBAWIBUAH/AaMCgQH/AaMCgQH/AaMCgQH/AaMCgQH/AaMCgQH/AaICgQH/ - AaMCgQH/AYEBYgFQAf8D8AH/AYEBhAGCAf8BgQGEAYIB/wGBAYQBggH/AYEBhAGCAf8BgQGEAYIB/wGB - AYQBggH/AYEBhAGCAf8DRQF9EAABgQGEAYIB/wH6AfYB8gH/AagBgQFcAf8ByQGVAYEB/wHJAZQBgQH/ - AckBlAGBAf8ByQGVAYEB/wHJAZUBgQH/AckBlQGBAf8ByQGVAYEB/wGoAYEBXAH/AfgB9AHuAf8BgQGE + AREEAAGBAYQBggH/A/MB/wGBAV8BTQH/AaMCgQH/AaMCgQH/AaMCgQH/AaMCgQH/AaMCgQH/AaICgQH/ + AaMCgQH/AYEBXwFNAf8D8AH/AYEBhAGCAf8BgQGEAYIB/wGBAYQBggH/AYEBhAGCAf8BgQGEAYIB/wGB + AYQBggH/AYEBhAGCAf8DRQF9EAABgQGEAYIB/wH6AfYB8gH/AagBgQFZAf8ByQGVAYEB/wHJAZQBgQH/ + AckBlAGBAf8ByQGVAYEB/wHJAZUBgQH/AckBlQGBAf8ByQGVAYEB/wGoAYEBWQH/AfgB9AHuAf8BgQGE AYIB/wGBAYQBggH/AYEBhAGCAf8BgQGEAYIB/wGBAYQBggH/AYEBhAGCAf8BgQGEAYIB/wNFAX0QAAM1 AVUDYgH2A4EB/wGqAYgBgQH/AagBhwGBAf8BpwGGAYEB/wGnAYQBgQH/AaYBggGBAf8BmQKBAf8BjwKB Af8BjAKBAf8DgQH/AdMB1gHUAf8BmQGeAZwB/wGlAaoBqAH/AaUBqgGoAf8BpQGqAacB/wGlAakBpwH/ AaUBqQGnAf8BnAGgAZ4B/wNUAaYMAAM1AVUDYgH2A4EB/wGqAYgBgQH/AagBhwGBAf8BpwGGAYEB/wGn AYQBgQH/AaYBggGBAf8BmQKBAf8BjwKBAf8BjAKBAf8DgQH/AdMB1gHUAf8BmQGeAZwB/wGlAaoBqAH/ AaUBqgGoAf8BpQGqAacB/wGlAakBpwH/AaUBqQGnAf8BnAGgAZ4B/wNUAaYMAAGBAYQBggH/A+0B/wGB - AWIBUAH/AYEBYgFQAf8BgQFiAVAB/wGBAWIBUAH/AYEBYgFQAf8BgQFiAVAB/wGBAWIBUAH/AYEBYgFQ - Af8BgQFiAVAB/wPwAf8BgQGEAYIB/wPtAf8D7QH/A+0B/wPtAf8D7QH/A9QB/wGBAYQBggH/EAABgQGE - AYIB/wH3AfEB6wH/AaQBgQFWAf8BqAGBAVwB/wGoAYEBXAH/AagBgQFcAf8BqAGBAVwB/wGoAYEBXAH/ - AagBgQFcAf8BqAGBAVwB/wGkAYEBVgH/AfgB9AHuAf8BgQGEAYIB/wH3AfEB6wH/AfcB8QHrAf8B9wHx + AV8BTQH/AYEBXwFNAf8BgQFfAU0B/wGBAV8BTQH/AYEBXwFNAf8BgQFfAU0B/wGBAV8BTQH/AYEBXwFN + Af8BgQFfAU0B/wPwAf8BgQGEAYIB/wPtAf8D7QH/A+0B/wPtAf8D7QH/A9QB/wGBAYQBggH/EAABgQGE + AYIB/wH3AfEB6wH/AaQBgQFTAf8BqAGBAVkB/wGoAYEBWQH/AagBgQFZAf8BqAGBAVkB/wGoAYEBWQH/ + AagBgQFZAf8BqAGBAVkB/wGkAYEBUwH/AfgB9AHuAf8BgQGEAYIB/wH3AfEB6wH/AfcB8QHrAf8B9wHx AesB/wH3AfEB6wH/AfcB8QHrAf8D1AH/AYEBhAGCAf8QAAM1AVUDZQH0A4EB/wGoAYYBgQH/AacBhQGB Af8BpgGEAYEB/wGlAYIBgQH/AaQCgQH/AaMCgQH/AZ0CgQH/AZUCgQH/A4EB/wHTAdYB1QH/AZkBngGc Af8BxQHKAcgB/wHeAeIB4AH/Ad8B4wHhAf8B3wHjAeEB/wHcAeAB3gH/AdYB2QHYAf8BgQGEAYIB/wwA AzUBVQNlAfQDgQH/AagBhgGBAf8BpwGFAYEB/wGmAYQBgQH/AaUBggGBAf8BpAKBAf8BowKBAf8BnQKB Af8BlQKBAf8DgQH/AdMB1gHVAf8BmQGeAZwB/wHFAcoByAH/Ad4B4gHgAf8B3wHjAeEB/wHfAeMB4QH/ AdwB4AHeAf8B1gHZAdgB/wGBAYQBggH/DAABgQGEAYIB/wHHAsgB/wPtAf8D7QH/A+0B/wPtAf8D7QH/ - A+0B/wPtAf8D7QH/A+0B/wHZAtoB/wGBAYQBggH/AYEBYgFQAf8BgQFiAVAB/wGBAWIBUAH/AYEBYgFQ - Af8BgQFiAVAB/wPtAf8BgQGEAYIB/xAAAYEBhAGCAf8BxwLIAf8B9wHxAesB/wH3AfEB6wH/AfcB8QHr + A+0B/wPtAf8D7QH/A+0B/wHZAtoB/wGBAYQBggH/AYEBXwFNAf8BgQFfAU0B/wGBAV8BTQH/AYEBXwFN + Af8BgQFfAU0B/wPtAf8BgQGEAYIB/xAAAYEBhAGCAf8BxwLIAf8B9wHxAesB/wH3AfEB6wH/AfcB8QHr Af8B9wHxAesB/wH3AfEB6wH/AfcB8QHrAf8B9wHxAesB/wH3AfEB6wH/AfcB8QHrAf8B2QLaAf8BgQGE - AYIB/wGoAYEBXAH/AagBgQFcAf8BqAGBAVwB/wGoAYEBXAH/AaQBgQFWAf8B9wHxAesB/wGBAYQBggH/ + AYIB/wGoAYEBWQH/AagBgQFZAf8BqAGBAVkB/wGoAYEBWQH/AaQBgQFTAf8B9wHxAesB/wGBAYQBggH/ EAADNQFVA10B8AOBAf8BpwGFAYEB/wGlAYQBgQH/AaQBgwGBAf8BpAKBAf8BogKBAf8BoQKBAf8BoAKB Af8BnwKBAf8DgQH/AcABwwHBAf8BlgGZAZcB/wOBAf8DgQH/A4EB/wOBAf8DWQHCAdwB3wHeAf8BgQGE AYIB/wwAAzUBVQNdAfADgQH/AacBhQGBAf8BpQGEAYEB/wGkAYMBgQH/AaQCgQH/AaICgQH/AaECgQH/ AaACgQH/AZ8CgQH/A4EB/wHAAcMBwQH/AZYBmQGXAf8DgQH/A4EB/wOBAf8DgQH/A1kBwgHcAd8B3gH/ AYEBhAGCAf8MAANUAawBgQGEAYIB/wGBAYQBggH/AYEBhAGCAf8BgQGEAYIB/wGBAYQBggH/AYEBhAGC - Af8BgQGEAYIB/wGBAYQBggH/AYEBhAGCAf8BgQGEAYIB/wGBAYQBggH/AYcCgQH/AZMBgQFmAf8BkwGB - AWYB/wGTAYEBZwH/AZQBgQFmAf8BgQFiAVAB/wPuAf8BgQGEAYIB/xAAA1QBrAGBAYQBggH/AYEBhAGC + Af8BgQGEAYIB/wGBAYQBggH/AYEBhAGCAf8BgQGEAYIB/wGBAYQBggH/AYcCgQH/AZMBgQFjAf8BkwGB + AWMB/wGTAYEBZAH/AZQBgQFjAf8BgQFfAU0B/wPuAf8BgQGEAYIB/xAAA1QBrAGBAYQBggH/AYEBhAGC Af8BgQGEAYIB/wGBAYQBggH/AYEBhAGCAf8BgQGEAYIB/wGBAYQBggH/AYEBhAGCAf8BgQGEAYIB/wGB - AYQBggH/AYEBhAGCAf8BhwKBAf8BugGBAWAB/wG6AYEBYAH/AboBgQFhAf8BuwGBAWAB/wGoAYEBXAH/ + AYQBggH/AYEBhAGCAf8BhwKBAf8BugGBAV0B/wG6AYEBXQH/AboBgQFeAf8BuwGBAV0B/wGoAYEBWQH/ AfgB8gHsAf8BgQGEAYIB/xAAAzUBVQNlAfQDVAGsAZYCgQH/AZYCgQH/AZYCgQH/AZYCgQH/AZYCgQH/ AZYCgQH/AZYCgQH/AZYCgQH/AZ0CgQH/AdQB1gHUAf8BmwGdAZsB/wGXAoEB/wGYAoEB/wGXAoEB/wGY AoEB/wGbAoEB/wHcAd8B3QH/AYEBhAGCAf8MAAM1AVUDZQH0A1QBrAGWAoEB/wGWAoEB/wGWAoEB/wGW AoEB/wGWAoEB/wGWAoEB/wGWAoEB/wGWAoEB/wGdAoEB/wHUAdYB1AH/AZsBnQGbAf8BlwKBAf8BmAKB - Af8BlwKBAf8BmAKBAf8BmwKBAf8B3AHfAd0B/wGBAYQBggH/KAABgQGEAYIB/wPuAf8BgQFiAVAB/wGr - AYoBgQH/AZ0CgQH/AY8BgQFjAf8BkAGBAWMB/wGQAYEBYwH/AZABgQFjAf8BjwGBAWMB/wGBAWIBUAH/ - A+4B/wGBAYQBggH/LAABgQGEAYIB/wH4AfIB7AH/AagBgQFcAf8B0AGeAYEB/wHEAYsBgQH/AbYBgQFe - Af8BtwGBAV4B/wG3AYEBXgH/AbcBgQFeAf8BtgGBAV4B/wGoAYEBXAH/AfgB8gHsAf8BgQGEAYIB/xAA + Af8BlwKBAf8BmAKBAf8BmwKBAf8B3AHfAd0B/wGBAYQBggH/KAABgQGEAYIB/wPuAf8BgQFfAU0B/wGr + AYoBgQH/AZ0CgQH/AY8BgQFgAf8BkAGBAWAB/wGQAYEBYAH/AZABgQFgAf8BjwGBAWAB/wGBAV8BTQH/ + A+4B/wGBAYQBggH/LAABgQGEAYIB/wH4AfIB7AH/AagBgQFZAf8B0AGeAYEB/wHEAYsBgQH/AbYBgQFb + Af8BtwGBAVsB/wG3AYEBWwH/AbcBgQFbAf8BtgGBAVsB/wGoAYEBWQH/AfgB8gHsAf8BgQGEAYIB/xAA AyEBMANeAdkBmgGeAZ0B/wGaAZ4BnQH/AZoBngGdAf8BmgGeAZ0B/wGaAZ4BnQH/AZoBngGdAf8BmgGe AZ0B/wGaAZ4BnQH/AZoBngGdAf8BmgGeAZ0B/wGbAZ8BnQH/AYkBhwGBAf8BlAKBAf8BkwKBAf8BlAKB - Af8BlAKBAf8BmwKBAf8DrAH9AYEBhAGCAf8MAAMhATADXgHZAZoBngGdAf8BmgGeAZ0B/wGaAZ4BnQH/ + Af8BlAKBAf8BmwKBAf8DqQH9AYEBhAGCAf8MAAMhATADXgHZAZoBngGdAf8BmgGeAZ0B/wGaAZ4BnQH/ AZoBngGdAf8BmgGeAZ0B/wGaAZ4BnQH/AZoBngGdAf8BmgGeAZ0B/wGaAZ4BnQH/AZoBngGdAf8BmwGf - AZ0B/wGJAYcBgQH/AZQCgQH/AZMCgQH/AZQCgQH/AZQCgQH/AZsCgQH/A6wB/QGBAYQBggH/KAABgQGE - AYIB/wPuAf8BgQFiAVAB/wGpAYcBgQH/AakBhwGBAf8BqAGHAYEB/wGaAoEB/wGTAYEBgAH/AYsBgQFg - Af8BjAGBAWAB/wGBAWIBUAH/A+8B/wGBAYQBggH/LAABgQGEAYIB/wH4AfIB7AH/AagBgQFcAf8BzgGb - AYEB/wHOAZsBgQH/Ac4BmwGBAf8BwgGGAYEB/wG6AYEBZwH/AbIBgQFbAf8BtAGBAVsB/wGoAYEBXAH/ + AZ0B/wGJAYcBgQH/AZQCgQH/AZMCgQH/AZQCgQH/AZQCgQH/AZsCgQH/A6kB/QGBAYQBggH/KAABgQGE + AYIB/wPuAf8BgQFfAU0B/wGpAYcBgQH/AakBhwGBAf8BqAGHAYEB/wGaAoEB/wGTAYEBgAH/AYsBgQFd + Af8BjAGBAV0B/wGBAV8BTQH/A+8B/wGBAYQBggH/LAABgQGEAYIB/wH4AfIB7AH/AagBgQFZAf8BzgGb + AYEB/wHOAZsBgQH/Ac4BmwGBAf8BwgGGAYEB/wG6AYEBZAH/AbIBgQFYAf8BtAGBAVgB/wGoAYEBWQH/ AfgB8wHtAf8BgQGEAYIB/ywAA1IBqQNZAfUBiQKBAf8BqgGIAYEB/wGpAYcBgQH/AakBhgGBAf8BqAGF - AYEB/wGTAoEB/wGQAoEB/wGQAoEB/wGQAoEB/wGOAoEB/wNsAfwBgQGEAYIB/ygAA1IBqQNZAfUBiQKB + AYEB/wGTAoEB/wGQAoEB/wGQAoEB/wGQAoEB/wGOAoEB/wNpAfwBgQGEAYIB/ygAA1IBqQNZAfUBiQKB Af8BqgGIAYEB/wGpAYcBgQH/AakBhgGBAf8BqAGFAYEB/wGTAoEB/wGQAoEB/wGQAoEB/wGQAoEB/wGO - AoEB/wNsAfwBgQGEAYIB/ygAAYEBhAGCAf8D8AH/AYEBYgFQAf8BpgGDAYEB/wGlAYQBgQH/AaYBhAGB - Af8BpQGEAYEB/wGmAYQBgQH/AaYBhAGBAf8BkAGBAWsB/wGBAWIBUAH/A/AB/wGBAYQBggH/LAABgQGE - AYIB/wH4AfQB7gH/AagBgQFcAf8BzAGXAYEB/wHLAZgBgQH/AcwBmAGBAf8BywGYAYEB/wHMAZgBgQH/ - AcwBmAGBAf8BtwGBAWUB/wGoAYEBXAH/AfgB9AHuAf8BgQGEAYIB/ywAA1IBqQNkAfEBiQKBAf8BqQGH + AoEB/wNpAfwBgQGEAYIB/ygAAYEBhAGCAf8D8AH/AYEBXwFNAf8BpgGDAYEB/wGlAYQBgQH/AaYBhAGB + Af8BpQGEAYEB/wGmAYQBgQH/AaYBhAGBAf8BkAGBAWgB/wGBAV8BTQH/A/AB/wGBAYQBggH/LAABgQGE + AYIB/wH4AfQB7gH/AagBgQFZAf8BzAGXAYEB/wHLAZgBgQH/AcwBmAGBAf8BywGYAYEB/wHMAZgBgQH/ + AcwBmAGBAf8BtwGBAWIB/wGoAYEBWQH/AfgB9AHuAf8BgQGEAYIB/ywAA1IBqQNkAfEBiQKBAf8BqQGH AYEB/wGoAYcBgQH/AacBhgGBAf8BpgGEAYEB/wGmAYIBgQH/AZYCgQH/AY4CgQH/AYsCgQH/AZcCgQH/ A2oB+QGBAYQBggH/KAADUgGpA2QB8QGJAoEB/wGpAYcBgQH/AagBhwGBAf8BpwGGAYEB/wGmAYQBgQH/ AaYBggGBAf8BlgKBAf8BjgKBAf8BiwKBAf8BlwKBAf8DagH5AYEBhAGCAf8oAAGBAYQBggH/A/MB/wGB - AWIBUAH/AaMCgQH/AaMCgQH/AaMCgQH/AaMCgQH/AaMCgQH/AaICgQH/AaMCgQH/AYEBYgFQAf8D8AH/ - AYEBhAGCAf8sAAGBAYQBggH/AfoB9gHyAf8BqAGBAVwB/wHJAZUBgQH/AckBlAGBAf8ByQGUAYEB/wHJ - AZUBgQH/AckBlQGBAf8ByQGVAYEB/wHJAZUBgQH/AagBgQFcAf8B+AH0Ae4B/wGBAYQBggH/LAADUgGp + AV8BTQH/AaMCgQH/AaMCgQH/AaMCgQH/AaMCgQH/AaMCgQH/AaICgQH/AaMCgQH/AYEBXwFNAf8D8AH/ + AYEBhAGCAf8sAAGBAYQBggH/AfoB9gHyAf8BqAGBAVkB/wHJAZUBgQH/AckBlAGBAf8ByQGUAYEB/wHJ + AZUBgQH/AckBlQGBAf8ByQGVAYEB/wHJAZUBgQH/AagBgQFZAf8B+AH0Ae4B/wGBAYQBggH/LAADUgGp A2EB7gGIAoEB/wGnAYYBgQH/AacBhQGBAf8BpgGEAYEB/wGkAYIBgQH/AaQCgQH/AaICgQH/AZsCgQH/ AZICgQH/AZcCgQH/A20B9wGBAYQBggH/KAADUgGpA2EB7gGIAoEB/wGnAYYBgQH/AacBhQGBAf8BpgGE AYEB/wGkAYIBgQH/AaQCgQH/AaICgQH/AZsCgQH/AZICgQH/AZcCgQH/A20B9wGBAYQBggH/KAABgQGE - AYIB/wPtAf8BgQFiAVAB/wGBAWIBUAH/AYEBYgFQAf8BgQFiAVAB/wGBAWIBUAH/AYEBYgFQAf8BgQFi - AVAB/wGBAWIBUAH/AYEBYgFQAf8D8AH/AYEBhAGCAf8sAAGBAYQBggH/AfcB8QHrAf8BpAGBAVYB/wGo - AYEBXAH/AagBgQFcAf8BqAGBAVwB/wGoAYEBXAH/AagBgQFcAf8BqAGBAVwB/wGoAYEBXAH/AaQBgQFW + AYIB/wPtAf8BgQFfAU0B/wGBAV8BTQH/AYEBXwFNAf8BgQFfAU0B/wGBAV8BTQH/AYEBXwFNAf8BgQFf + AU0B/wGBAV8BTQH/AYEBXwFNAf8D8AH/AYEBhAGCAf8sAAGBAYQBggH/AfcB8QHrAf8BpAGBAVMB/wGo + AYEBWQH/AagBgQFZAf8BqAGBAVkB/wGoAYEBWQH/AagBgQFZAf8BqAGBAVkB/wGoAYEBWQH/AaQBgQFT Af8B+AH0Ae4B/wGBAYQBggH/LAADUgGpA2IB6QGIAoEB/wGmAYQBgQH/AaUBhAGBAf8BpAGCAYEB/wGj AoEB/wGiAoEB/wGhAoEB/wGgAoEB/wGeAoEB/wGQAoEB/wNqAfkBgQGEAYIB/ygAA1IBqQNiAekBiAKB Af8BpgGEAYEB/wGlAYQBgQH/AaQBggGBAf8BowKBAf8BogKBAf8BoQKBAf8BoAKBAf8BngKBAf8BkAKB diff --git a/Sshfs/Sshfs/SftpDrive.cs b/Sshfs/Sshfs/SftpDrive.cs index 67651fa..1719afc 100644 --- a/Sshfs/Sshfs/SftpDrive.cs +++ b/Sshfs/Sshfs/SftpDrive.cs @@ -86,6 +86,7 @@ public class SftpDrive : IDisposable, ISerializable public string ProxyPass { get; set; } public int KeepAliveInterval { get; set; } + public int TimeoutInterval { get; set; } public SftpDrive(){} @@ -127,7 +128,10 @@ private void SetupFilesystem() { KeepAliveInterval = 1; } - + if (TimeoutInterval <= 0) + { + TimeoutInterval = 5; + } ConnectionInfo info = null; switch (ConnectionType) { @@ -171,7 +175,7 @@ private void SetupFilesystem() } _connection = Settings.Default.UseNetworkDrive ? String.Format("\\\\{0}\\{1}\\{2}", info.Host, Root, info.Username) : Name; - info.Timeout = new TimeSpan(0,0,5); + info.Timeout = new TimeSpan(0,0,TimeoutInterval); _filesystem = new SftpFilesystem(info, Root,_connection,Settings.Default.UseOfflineAttribute,false, (int) Settings.Default.AttributeCacheTimeout, (int) Settings.Default.DirContentCacheTimeout); Debug.WriteLine("Connecting..."); @@ -449,6 +453,14 @@ public SftpDrive(SerializationInfo info, { KeepAliveInterval = 1; } + try + { + TimeoutInterval = info.GetInt16("timeoutInterval"); + } + catch + { + TimeoutInterval = 5; + } ConnectionType = (ConnectionType) info.GetByte("c"); if (ConnectionType == ConnectionType.Password) { @@ -487,6 +499,7 @@ public void GetObjectData(SerializationInfo info, StreamingContext context) info.AddValue("proxyUser", ProxyUser); info.AddValue("proxyPass", ProxyPass); info.AddValue("keepAliveInterval", KeepAliveInterval); + info.AddValue("timeoutInterval", TimeoutInterval); if (ConnectionType == ConnectionType.Password) { info.AddValue("p", Utilities.ProtectString(Password)); diff --git a/Sshfs/Sshfs/SftpFilesystem.cs b/Sshfs/Sshfs/SftpFilesystem.cs index 9a519c2..6d2f992 100644 --- a/Sshfs/Sshfs/SftpFilesystem.cs +++ b/Sshfs/Sshfs/SftpFilesystem.cs @@ -100,7 +100,7 @@ protected override void OnConnected() _sshClient = new SshClient(ConnectionInfo); - this.Log("Connected %s", _volumeLabel); + this.Log("Connected {0}", _volumeLabel); _sshClient.Connect(); CheckAndroid(); @@ -119,7 +119,7 @@ protected override void OnConnected() protected override void OnDisconnected() { base.OnDisconnected(); - this.Log("disconnected %s", _volumeLabel); + this.Log("disconnected {0}", _volumeLabel); } protected override void Dispose(bool disposing)