diff --git a/Renci.SshClient/Renci.SshNet.Tests/Properties/Resources.Designer.cs b/Renci.SshClient/Renci.SshNet.Tests/Properties/Resources.Designer.cs index 38882ebf..57a6bdf1 100644 --- a/Renci.SshClient/Renci.SshNet.Tests/Properties/Resources.Designer.cs +++ b/Renci.SshClient/Renci.SshNet.Tests/Properties/Resources.Designer.cs @@ -97,7 +97,7 @@ namespace Renci.SshNet.Tests.Properties { } /// - /// Looks up a localized string similar to oleg-centos.edc.renci.org. + /// Looks up a localized string similar to home.cabalsystems.com. /// internal static string HOST { get { @@ -132,7 +132,7 @@ namespace Renci.SshNet.Tests.Properties { } /// - /// Looks up a localized string similar to 22. + /// Looks up a localized string similar to 64622. /// internal static string PORT { get { diff --git a/Renci.SshClient/Renci.SshNet.Tests/Properties/Resources.resx b/Renci.SshClient/Renci.SshNet.Tests/Properties/Resources.resx index bbb70965..9c167e04 100644 --- a/Renci.SshClient/Renci.SshNet.Tests/Properties/Resources.resx +++ b/Renci.SshClient/Renci.SshNet.Tests/Properties/Resources.resx @@ -149,7 +149,7 @@ D8DHbFwAT2mUv1QxRXYJO1y4pENboEzT6LUqxJgE+ae/F/29g2RD9DhtwqKqWjhM -----END DSA PRIVATE KEY----- - oleg-centos.edc.renci.org + home.cabalsystems.com -----BEGIN DSA PRIVATE KEY----- @@ -169,7 +169,7 @@ tM7dZpB+reWl9L5e2L8= tester - 22 + 64622 -----BEGIN RSA PRIVATE KEY----- diff --git a/Renci.SshClient/Renci.SshNet/BaseClient.cs b/Renci.SshClient/Renci.SshNet/BaseClient.cs index 4dbac5dd..e7b2f125 100644 --- a/Renci.SshClient/Renci.SshNet/BaseClient.cs +++ b/Renci.SshClient/Renci.SshNet/BaseClient.cs @@ -78,6 +78,7 @@ namespace Renci.SshNet /// Initializes a new instance of the class. /// /// The connection info. + /// is null. public BaseClient(ConnectionInfo connectionInfo) { if (connectionInfo == null) diff --git a/Renci.SshClient/Renci.SshNet/ConnectionInfo.cs b/Renci.SshClient/Renci.SshNet/ConnectionInfo.cs index 20140370..0d10959c 100644 --- a/Renci.SshClient/Renci.SshNet/ConnectionInfo.cs +++ b/Renci.SshClient/Renci.SshNet/ConnectionInfo.cs @@ -199,6 +199,9 @@ namespace Renci.SshNet /// Connection host. /// Connection port. /// Connection username. + /// is null. + /// is invalid, or is null or contains whitespace characters. + /// is not within and . protected ConnectionInfo(string host, int port, string username) : this() { diff --git a/Renci.SshClient/Renci.SshNet/PasswordConnectionInfo.cs b/Renci.SshClient/Renci.SshNet/PasswordConnectionInfo.cs index 027d0776..9a797303 100644 --- a/Renci.SshClient/Renci.SshNet/PasswordConnectionInfo.cs +++ b/Renci.SshClient/Renci.SshNet/PasswordConnectionInfo.cs @@ -57,6 +57,9 @@ namespace Renci.SshNet /// Connection port. /// Connection username. /// Connection password. + /// is null. + /// is invalid, or is null or contains whitespace characters. + /// is not within and . public PasswordConnectionInfo(string host, int port, string username, string password) : base(host, port, username) { diff --git a/Renci.SshClient/Renci.SshNet/SftpClient.cs b/Renci.SshClient/Renci.SshNet/SftpClient.cs index aaf6fa5a..a9ad336e 100644 --- a/Renci.SshClient/Renci.SshNet/SftpClient.cs +++ b/Renci.SshClient/Renci.SshNet/SftpClient.cs @@ -55,6 +55,7 @@ namespace Renci.SshNet /// Initializes a new instance of the class. /// /// The connection info. + /// is null. public SftpClient(ConnectionInfo connectionInfo) : base(connectionInfo) { @@ -69,6 +70,9 @@ namespace Renci.SshNet /// Connection port. /// Authentication username. /// Authentication password. + /// is null. + /// is invalid, or is null or contains whitespace characters. + /// is not within and . public SftpClient(string host, int port, string username, string password) : this(new PasswordConnectionInfo(host, port, username, password)) { @@ -80,6 +84,8 @@ namespace Renci.SshNet /// Connection host. /// Authentication username. /// Authentication password. + /// is null. + /// is invalid, or is null or contains whitespace characters. public SftpClient(string host, string username, string password) : this(host, 22, username, password) { @@ -92,6 +98,9 @@ namespace Renci.SshNet /// Connection port. /// Authentication username. /// Authentication private key file(s) . + /// is null. + /// is invalid, -or- is null or contains whitespace characters. + /// is not within and . public SftpClient(string host, int port, string username, params PrivateKeyFile[] keyFiles) : this(new PrivateKeyConnectionInfo(host, port, username, keyFiles)) { @@ -103,6 +112,8 @@ namespace Renci.SshNet /// Connection host. /// Authentication username. /// Authentication private key file(s) . + /// is null. + /// is invalid, -or- is null or contains whitespace characters. public SftpClient(string host, string username, params PrivateKeyFile[] keyFiles) : this(host, 22, username, keyFiles) { @@ -114,6 +125,11 @@ namespace Renci.SshNet /// Changes remote directory to path. /// /// New directory path. + /// is null. + /// Client is not connected. + /// Permission to change directory denied by remote host -or- a SSH command was denied by the server. + /// The path in was not found on the remote host. + /// A SSH error where is the message from the remote host. public void ChangeDirectory(string path) { if (path == null) @@ -130,6 +146,11 @@ namespace Renci.SshNet /// /// File(s) path, may match multiple files. /// The mode. + /// is null. + /// Client is not connected. + /// Permission to change permission on the path(s) was denied by the remote host -or- a SSH command was denied by the server. + /// The path in was not found on the remote host. + /// A SSH error where is the message from the remote host. public void ChangePermissions(string path, short mode) { if (path == null) @@ -147,8 +168,10 @@ namespace Renci.SshNet /// Creates remote directory specified by path. /// /// Directory path to create. - /// - /// + /// is null or contains whitespace characters. + /// Client is not connected. + /// Permission to create the directory was denied by the remote host -or- a SSH command was denied by the server. + /// A SSH error where is the message from the remote host. public void CreateDirectory(string path) { if (string.IsNullOrWhiteSpace(path)) @@ -166,6 +189,10 @@ namespace Renci.SshNet /// Deletes remote directory specified by path. /// /// Directory to be deleted path. + /// is null or contains whitespace characters. + /// Client is not connected. + /// Permission to delete the directory was denied by the remote host -or- a SSH command was denied by the server. + /// A SSH error where is the message from the remote host. public void DeleteDirectory(string path) { if (string.IsNullOrWhiteSpace(path)) @@ -183,6 +210,10 @@ namespace Renci.SshNet /// Deletes remote file specified by path. /// /// File to be deleted path. + /// is null or contains whitespace characters. + /// Client is not connected. + /// Permission to delete the file was denied by the remote host -or- a SSH command was denied by the server. + /// A SSH error where is the message from the remote host. public void DeleteFile(string path) { if (string.IsNullOrWhiteSpace(path)) @@ -201,6 +232,10 @@ namespace Renci.SshNet /// /// Path to the old file location. /// Path to the new file location. + /// or is null. + /// Client is not connected. + /// Permission to rename the file was denied by the remote host -or- a SSH command was denied by the server. + /// A SSH error where is the message from the remote host. public void RenameFile(string oldPath, string newPath) { if (oldPath == null) @@ -224,6 +259,10 @@ namespace Renci.SshNet /// /// The old path. /// The new path. + /// or is null or contains whitespace characters. + /// Client is not connected. + /// Permission to create the symbolic link was denied by the remote host -or- a SSH command was denied by the server. + /// A SSH error where is the message from the remote host. public void SymbolicLink(string path, string linkPath) { if (string.IsNullOrWhiteSpace(path)) @@ -247,6 +286,10 @@ namespace Renci.SshNet /// /// The path. /// List of directory entries + /// is null. + /// Client is not connected. + /// Permission to list the contents of the directory was denied by the remote host -or- a SSH command was denied by the server. + /// A SSH error where is the message from the remote host. public IEnumerable ListDirectory(string path) { return InternalListDirectory(path, null); @@ -305,6 +348,7 @@ namespace Renci.SshNet /// /// The path. /// + /// is null. public SftpFile Get(string path) { if (path == null) @@ -322,6 +366,10 @@ namespace Renci.SshNet /// /// The path. /// true if directory or file exists; otherwise false. + /// is null or contains whitespace characters. + /// Client is not connected. + /// Permission to perform the operation was denied by the remote host -or- a SSH command was denied by the server. + /// A SSH error where is the message from the remote host. public bool Exists(string path) { if (string.IsNullOrWhiteSpace(path)) @@ -356,6 +404,12 @@ namespace Renci.SshNet /// /// File to download. /// Stream to write the file into. + /// is null. + /// is null or contains whitespace characters. + /// Client is not connected. + /// Permission to perform the operation was denied by the remote host -or- a SSH command was denied by the server. + /// A SSH error where is the message from the remote host. + /// Method calls made by this method to , may under certain conditions result in exceptions thrown by the stream. public void DownloadFile(string path, Stream output) { this.InternalDownloadFile(path, output, null); @@ -369,6 +423,12 @@ namespace Renci.SshNet /// The method to be called when the asynchronous write operation is completed. /// A user-provided object that distinguishes this particular asynchronous write request from other requests. /// An that references the asynchronous operation. + /// is null. + /// is null or contains whitespace characters. + /// Client is not connected. + /// Permission to perform the operation was denied by the remote host -or- a SSH command was denied by the server. + /// A SSH error where is the message from the remote host. + /// Method calls made by this method to , may under certain conditions result in exceptions thrown by the stream. public IAsyncResult BeginDownloadFile(string path, Stream output, AsyncCallback asyncCallback, object state) { if (string.IsNullOrWhiteSpace(path)) @@ -403,6 +463,7 @@ namespace Renci.SshNet /// Ends an asynchronous file downloading into the stream. /// /// The pending asynchronous SFTP request. + /// Either the IAsyncResult object () did not come from the corresponding async method on this type, or EndExecute was called multiple times with the same IAsyncResult. public void EndDownloadFile(IAsyncResult asyncResult) { var ar = asyncResult as SftpDownloadAsyncResult; @@ -419,6 +480,12 @@ namespace Renci.SshNet /// /// Data input stream. /// Remote file path. + /// is null. + /// is null or contains whitespace characters. + /// Client is not connected. + /// Permission to upload the file was denied by the remote host -or- a SSH command was denied by the server. + /// A SSH error where is the message from the remote host. + /// Method calls made by this method to , may under certain conditions result in exceptions thrown by the stream. public void UploadFile(Stream input, string path) { this.InternalUploadFile(input, path, null); @@ -432,6 +499,12 @@ namespace Renci.SshNet /// The method to be called when the asynchronous write operation is completed. /// A user-provided object that distinguishes this particular asynchronous write request from other requests. /// An that references the asynchronous operation. + /// is null. + /// is null or contains whitespace characters. + /// Client is not connected. + /// Permission to list the contents of the directory was denied by the remote host -or- a SSH command was denied by the server. + /// A SSH error where is the message from the remote host. + /// Method calls made by this method to , may under certain conditions result in exceptions thrown by the stream. public IAsyncResult BeginUploadFile(Stream input, string path, AsyncCallback asyncCallback, object state) { if (input == null) @@ -466,6 +539,7 @@ namespace Renci.SshNet /// Ends an asynchronous uploading the steam into remote file. /// /// The pending asynchronous SFTP request. + /// Either the IAsyncResult object () did not come from the corresponding async method on this type, or EndExecute was called multiple times with the same IAsyncResult. public void EndUploadFile(IAsyncResult asyncResult) { var ar = asyncResult as SftpUploadAsyncResult; diff --git a/Renci.SshClient/Renci.SshNet/SshClient.cs b/Renci.SshClient/Renci.SshNet/SshClient.cs index 8c39ae15..d8a4f716 100644 --- a/Renci.SshClient/Renci.SshNet/SshClient.cs +++ b/Renci.SshClient/Renci.SshNet/SshClient.cs @@ -33,6 +33,7 @@ namespace Renci.SshNet /// Initializes a new instance of the class. /// /// The connection info. + /// is null. public SshClient(ConnectionInfo connectionInfo) : base(connectionInfo) { @@ -45,6 +46,9 @@ namespace Renci.SshNet /// Connection port. /// Authentication username. /// Authentication password. + /// is null. + /// is invalid, or is null or contains whitespace characters. + /// is not within and . public SshClient(string host, int port, string username, string password) : this(new PasswordConnectionInfo(host, port, username, password)) { @@ -56,6 +60,8 @@ namespace Renci.SshNet /// Connection host. /// Authentication username. /// Authentication password. + /// is null. + /// is invalid, or is null or contains whitespace characters. public SshClient(string host, string username, string password) : this(host, 22, username, password) { @@ -68,6 +74,9 @@ namespace Renci.SshNet /// Connection port. /// Authentication username. /// Authentication private key file(s) . + /// is null. + /// is invalid, -or- is null or contains whitespace characters. + /// is not within and . public SshClient(string host, int port, string username, params PrivateKeyFile[] keyFiles) : this(new PrivateKeyConnectionInfo(host, port, username, keyFiles)) { @@ -79,6 +88,8 @@ namespace Renci.SshNet /// Connection host. /// Authentication username. /// Authentication private key file(s) . + /// is null. + /// is invalid, -or- is null or contains whitespace characters. public SshClient(string host, string username, params PrivateKeyFile[] keyFiles) : this(host, 22, username, keyFiles) { @@ -110,6 +121,10 @@ namespace Renci.SshNet /// /// Forwarded port /// + /// or is null. + /// or is invalid. + /// or is not within and . + /// Client is not connected. public T AddForwardedPort(string boundHost, uint boundPort, string connectedHost, uint connectedPort) where T : ForwardedPort, new() { if (boundHost == null) @@ -154,6 +169,10 @@ namespace Renci.SshNet /// The connected host. /// The connected port. /// + /// or is null. + /// or is invalid. + /// or is not within and . + /// Client is not connected. public T AddForwardedPort(uint boundPort, string connectedHost, uint connectedPort) where T : ForwardedPort, new() { return this.AddForwardedPort("localhost", boundPort, connectedHost, connectedPort);