Commit Graph

421 Commits

Author SHA1 Message Date
Gert Driesen 34405caa24 BaseClient:
* Added bool argument to BaseClient ctor to indicate whether the specified ConnectionInfo
  instance is owned by the client.
* In Dispose, also dispose ConnectionInfo if ownsConnectionInfo is true.
* Modified Connect() to throw InvalidOperationException when the client is already connected.
* Postpone creation of keep-alive timer until client has actually connected, and stop timer
  when disconnecting the client.
* Document default value of KeepAliveInterval.
* Modified all public members to throw ObjectDisposedException when client is disposed.
* Modified Dispose to stop the keep-alive timer (and wait until all timer callbacks have
  been executed) before the session is disposed.

NetConfClient:
* Moved dispose of ConnectionInfo to BaseClient.
* Document default value of OperationTimeout and AutomaticMessageIdHandling.

ScpClient:
* Moved dispose of ConnectionInfo to BaseClient.
* Document default value of OperationTimeout and BufferSize.

SftpClient:
* Moved dispose of ConnectionInfo to BaseClient.
* Document default value of OperationTimeout and BufferSize.
* Modified all public members to throw ObjectDisposedException when client is disposed.
* Modified the WorkingDirectory and ProtocolVersion properties to throw
  SshConnectionException when the client is not connected.
* When disconnecting the client, also dispose the SftpSession to avoid leaks and set it
  to null as this is used to check whether the SftpClient is connected.

SshClient:
* Moved dispose of ConnectionInfo to BaseClient.

Session:

* include waithandle that signals when message listener has completed to avoid waiting for a response that can never be received
* throw SshConnectionException when message listener has completed (and no exception has been raised) if session is not disconnecting
* Modified IsConnected to also return false when:
  - disconnect message has been sent to server
  - the message listener completed waithandle is null or has been set (=listener thread has completed)
* Improved documentation of IsConnected property.
* Modified Disconnect() to also disconnect and dispose the underlying socket, and wait for the listener thread to complete.
  Only send disconnect message if session is still connected.
* Modified Connect() to to reset connection-specific information to ensure state of a
  previous connection does not affect new connections.
* Do not raise errors for SshConnectionException or socket timeout when session is disconnecting.
* Move any checks that are not socket related from IsSocketConnected to the IsConnected property.
* Modified IsSocketConnected on .NET to first check Connected property on underlying socket,
  and when true use Socket.Poll with SelectRead in combination with Socket.Available to detect
  if connection has been closed. Note that this does not detect loss of network connectivity.
2014-03-10 20:13:44 +00:00
Gert Driesen 07d575e78a Avoid race conditions when signaling events or setting waithandles. Remove empty lines.
Fixed event handler leak for Closed event on Channel.
2014-03-10 17:31:15 +00:00
Gert Driesen bbd5e2f6bb Document default values of ConnectionInfo class. 2014-03-10 17:25:18 +00:00
Gert Driesen 03b63e248c Fixed typo in comments, use var where possible.
Change visibility of _channelEof to private.
Remove empty lines.
2014-03-10 17:13:05 +00:00
Gert Driesen 98549ed087 Avoid NRE setting EventWaitHandle.
Remove emty lines.
2014-03-10 17:02:04 +00:00
Gert Driesen bbf44be46a Avoid race conditions when signaling events. 2014-03-10 16:10:59 +00:00
Gert Driesen 108b20965c Rename WaitHandle method to WaitOnHandle to avoid naming clash with WaitHandle class. 2014-03-10 15:14:49 +00:00
Gert Driesen 6a68a5f22b Remove extra ToArray call. 2014-03-10 14:41:21 +00:00
Gert Driesen 83e2067751 Issue #1918: Connection dropped by server due to invalid DSA signature
Pad each part of signature with zero's until its 20 bytes. Signature should be exactly 40 bytes.
2014-03-10 13:48:32 +00:00
Gert Driesen cd640aa1cd Fix compiler and (correct) resharper warnings across the solution. 2014-03-04 18:30:43 +00:00
Gert Driesen 7834d4ab59 Add build scripts and related artifacts to solution. 2014-03-02 09:46:49 +00:00
Gert Driesen 7946cddf69 Use the same assembly name across all supported target frameworks. 2014-03-02 09:44:19 +00:00
Gert Driesen 53de0a237e Added build script which by default:
* cleans the build output
* compiles the solution in Release configuration
* creates a NuGet package containing our assembly for all supported target frameworks

Added nuspec file, and updated it with information on
new features, breaking changes and fixes.

Removed generated NuGet package.
2014-03-02 09:43:51 +00:00
Gert Driesen 65c0412ad3 Sign the assemblies for .NET 3.5, .NET 4.0, Silverlight 4 and Silverlight 5. 2014-03-02 09:24:32 +00:00
Gert Driesen 8bea7cb388 Skip headers (and message body if Content-Length headers is set) returned by HTTP proxy. Fail fast when proxy does not return HTTP 200.
Added corresponding regression tests.
Fixes the following issues: 1601, 1890 and 1905.
2014-03-01 10:59:08 +00:00
Gert Driesen 1c35970820 Correct casing of Security/Cryptography/HMAC.cs.
Fixes issue #1505.
2014-02-23 19:18:01 +00:00
Gert Driesen 9f97b90c41 * Allow a private key to be read from a file which is already open, but which allows read access. This allows multiple connections to use the same private key file concurrently.
* Added tests for PrivateKeyFile, and fix all failing tests.
* Add private keys also as embedded resources to test project for .NET 3.5.
2014-02-15 19:19:49 +00:00
Gert Driesen a077321505 Remove Test project from solution as its a local project which is only used by Oleg. 2014-02-11 20:07:36 +00:00
Gert Driesen 2a4299eca5 Enable source control binding for all projects. 2014-02-11 20:06:23 +00:00
Gert Driesen c811a88c90 Modify Renci.SshNet.WindowsPhone project to target WP 7.1 again instead of 8.0. The upgrade of the solution and project files to VS 2013 caused this regression. 2014-02-11 19:57:51 +00:00
Gert Driesen 117e079011 Fix build when targeting .NET Framework 3.5 as Func only supports covariance on .NET Framework 4.0 and higher. 2014-02-11 19:52:38 +00:00
olegkap_cp af3fc6b404 Handle Event Handle leak per issue #1761 2013-11-01 15:52:13 +00:00
olegkap_cp f4141de4c9 Upgrade solution to VS.NET 2013
Apply patch 15311 - Fixes permission denied on their private key file.
Apply patch 15015 - Fixes the scp operations that are based upon streams.
Apply patch 15346 - Change socket to SocketOptionLevel.Tcp per microsoft documentation
2013-11-01 15:43:33 +00:00
olegkap_cp c7d162111b Apply patch 14803 2013-07-10 14:09:21 +00:00
olegkap_cp 9848c741eb Fix "OverflowException on empty server response" for silverlight 2013-07-10 13:37:16 +00:00
olegkap_cp b6eb090ed0 Fix PKCS7Padding padding 2013-07-10 13:31:07 +00:00
olegkap_cp 61f3adbb8b Fix ConnectHttp method to exit in HttpStatusCode.OK 2013-07-10 13:22:19 +00:00
olegkap_cp 02561a21fa Fix "Incorrect check for timeout values" in ShellStream 2013-07-10 13:07:45 +00:00
olegkap_cp 4d2b723bcd Apply patches 14800 and 14801 2013-07-10 13:05:29 +00:00
olegkap_cp 3af40a0f83 Apply 14339 patch 2013-07-10 12:32:16 +00:00
olegkap_cp 796883e229 Update version number 2013-04-06 17:41:50 +00:00
olegkap_cp e189418a5b Improve thread-safe event handling
Replace Task.Factory.StartNew with ThreadPool.QueueUserWorkItem
2013-04-04 15:33:47 +00:00
olegkap_cp 908c22cc93 Fix SshAuthenticationException by handling PartialSuccess response and continue authentication proccess in that case 2013-04-02 00:48:38 +00:00
olegkap_cp f6480f1fff Fix thread synchronization issue when uploading files using SCP 2013-03-27 17:34:59 +00:00
olegkap_cp badcf4052c Fix and remove orphan threads when using port forwarding. 2013-03-07 21:35:37 +00:00
olegkap_cp 6c761cf491 Replace previouse fix with Connection test vs if disposed 2013-03-07 16:40:29 +00:00
olegkap_cp c72ac9c42f Dont call Channel Close() during dispose phase 2013-03-07 16:36:50 +00:00
olegkap_cp b04d660cd6 Fix differnt SCP Upload issue.
Remove not SCP feature of creating directory structure for uploaded files or directories
2013-03-07 16:14:36 +00:00
olegkap_cp 4df7a2849b Lock _incoming object where performing Enqueue
Rollback previouse commit
2013-03-02 14:37:53 +00:00
olegkap_cp d0c028a938 Lock _encoding in ShellStream when GetString operation is performed 2013-03-02 14:29:40 +00:00
olegkap_cp 2825e44f45 Improve HTTP proxy error handling, regarding issue #1509
Apply 13964 patch to improve handling of multiple authentication methods
2013-03-02 13:57:32 +00:00
olegkap_cp 6dc8840e45 Commiting files that were not commited on previous commit 2013-02-07 20:00:07 +00:00
olegkap_cp 8934b5d156 Improve internal server window size managment
Fix exception handeling when multiple threads share one channel that can caus application hanging
Improve cipher perfomance
Other fixes
2013-02-07 19:47:47 +00:00
olegkap_cp 759aa4c9ee Improve SftpClient Exists method 2013-02-02 22:39:46 +00:00
olegkap_cp 0434c54ef1 Fix problem when huge files could be cut off in the middle 2013-02-02 21:16:30 +00:00
olegkap_cp e1b2d13a99 Fix SCP to handle root path 2013-02-02 15:41:52 +00:00
olegkap_cp 19802b6553 Add IPAddress as parameter to ForwardedPortRemote
Allow all projects to generate xml documentation files
Add GetIPAddress method and other minor refactoring
2013-01-31 04:45:14 +00:00
olegkap_cp 29f641ba61 Update Assmbly information to version 2013.1.27 2013-01-27 01:22:45 +00:00
olegkap_cp fd428dd617 Fix some tests
Update all projects to generate xml documentation file
Cross project fixes to make it compilable for all projects
2013-01-27 01:13:53 +00:00
olegkap_cp d31b4c76e1 Fix how exceptions are thrown
Fix exception being thrown for asynchronous multiple SFTP file download
Add additional helper BeginDownloadFile and BeginUploadFile methods
2013-01-26 14:01:35 +00:00