Martin Prikryl
833bb1c18d
Issue 2438 – Allow assigning null to Session.SessionLogPath
...
https://winscp.net/tracker/2438
Source commit: 73fa9a3b18ef6725e0912a6761823ee8ae8376df
2026-05-06 07:34:32 +02:00
Michael Kent
531bbb770a
Issue 856 – Define and implement interface for the .NET library
...
https://winscp.net/tracker/856
----
@mjkent: Add interfaces to .NET assembly for improved testability
This PR extracts interfaces from the main WinSCP .NET assembly classes (Session, SessionOptions, TransferOptions, etc.), enabling:
Unit testing - Mock ISession to test code that uses WinSCP without requiring actual SFTP/FTP connections
Dependency injection - Register interfaces in DI containers for cleaner architecture
Decoupling - Program against abstractions rather than concrete implementations
This change should be non-breaking, but I'm new to this project so review and feedback appreciated!
2025-12-11 15:15:29 +01:00
Martin Prikryl
804ec9c9c9
Bug 52: Use file hash as criterion for synchronization
...
https://winscp.net/tracker/52
Source commit: 66fd353f8e26a7bd3317ee7cc4e6d15e7d6cfb52
2023-11-07 02:03:32 +01:00
Martin Prikryl
738038ef16
Null coalescing
...
Source commit: ca643fca120d7b036ea65983af7ae35bd4ca0ce4
2023-09-30 01:00:10 +02:00
Martin Prikryl
ba69f3c6d9
Bug 2215: Throw an exception when Session.SessionLogPath is set to a path with invalid .xml extension
...
https://winscp.net/tracker/2215
Source commit: 14121c99ac81e2c36c160c0cfadb4eaf1ee79d0c
2023-08-24 00:57:07 +02:00
Martin Prikryl
ea80886765
Bug fix: Callstack debug logging in .NET assembly was broken
...
By cc3eaac3
Source commit: 3e2f1bfae157d5ccc4209891f5421bf8e24c4bd0
2023-04-21 00:57:51 +02:00
Martin Prikryl
c73e425833
Bug 2177: Session.EnumerateRemoteFiles does not work correctly when the mask includes brackets and other symbols
...
https://winscp.net/tracker/2177
Source commit: bbe68f549a4537cd75389b8b4b712b1907b3bd0f
2023-04-07 01:01:24 +02:00
Martin Prikryl
1385cd78a5
Bug 1995: Support S3 servers without TLS encryption
...
https://winscp.net/tracker/1995
Source commit: ab6c0e4140430caa3512fcc6617e5ad98b57a30a
2022-08-11 00:56:27 +02:00
Martin Prikryl
bb45f5b660
Bug 2098: .NET assembly type library cannot be used in WSH
...
https://winscp.net/tracker/2098
+ Making use of Marshal.GetTypeLibGuidForAssembly
Source commit: 959593a6231f2d8f6d8f9b92d6f8ecba9ba6aa7e
2022-08-07 00:49:33 +02:00
Martin Prikryl
73305a1caf
Merge branch 'master' into dev
...
Source commit: 066d1d20c4e0668b7dcc4c115be32a0453f4a1f6
2022-04-14 00:51:29 +02:00
Martin Prikryl
b24bf52e47
Reimplementing Session.FileExists using Session.TryGetFileInfo
...
Source commit: 47791132d088135b70af0cab1a951cd25244341b
2022-04-13 00:50:09 +02:00
RachamimYaakobov
ed4109d48a
New function
...
Instead of calling FileExists and only then GetFileInfo call the TryGetFileInfo function once and you will know if the file exists and also gets its information.
2022-04-12 16:32:45 +02:00
Martin Prikryl
9a8c1d5771
Bug 2055: Make Session.ExecutablePath return detected or actual executable path when not set
...
https://winscp.net/tracker/2055
Source commit: 1e53d0a9e6caaafbb509ba848e46510b0b62e6f3
2022-01-13 00:52:22 +01:00
Martin Prikryl
219bab96c7
Bug 2044: Provide private key as string in .NET assembly
...
https://winscp.net/tracker/2044
(cherry picked from commit 1018b272ea )
Source commit: 0c40d1ef172d932508fd1b89887ad2eefc5fbd26
2022-01-07 17:05:01 +01:00
Martin Prikryl
1018b272ea
Bug 2044: Provide private key as string in .NET assembly
...
https://winscp.net/tracker/2044
Source commit: f305e417f5775d6acfbd1d6ffb7580eefa52dbe3
2022-01-07 17:02:48 +01:00
Martin Prikryl
3cfae3d1fd
Reusing CheckNotOpened
...
(cherry picked from commit f614f7915c )
Source commit: 42cff43bac8bb3221e4c23809abd71c2c97726cb
2021-11-25 13:59:45 +01:00
Martin Prikryl
338bc40737
Reusing RemotePath.AddDirectorySeparator
...
(cherry picked from commit 2f5bb1ba74 )
Source commit: 92f04c78889e0ebb9c84f57a64275211cbe1f440
2021-11-23 21:16:00 +01:00
Martin Prikryl
f614f7915c
Reusing CheckNotOpened
...
Source commit: ced25cceb9a3bf6fe7dbdb215c19b12c0e284fe5
2021-06-12 00:53:15 +02:00
Martin Prikryl
2f5bb1ba74
Reusing RemotePath.AddDirectorySeparator
...
Source commit: be755e6683731bee0d111a98855f6cb7bef09c3b
2021-05-29 00:50:11 +02:00
Martin Prikryl
9a7509d8cc
Bug 1978: Allow using the stream returned by Session.GetFile from different thread
...
https://winscp.net/tracker/1978
(cherry picked from commit cc3eaac355 )
Source commit: 584787c8bd364c33b22fe7d2b75a83d8b9d38a62
2021-04-20 01:06:20 +02:00
Martin Prikryl
78bfa97c21
Callstack logging when closing GetFile stream
...
(cherry picked from commit 74c2283b66 )
Source commit: bd03c9c9d2a91e995739b13b72c8eccbac8608d5
2021-04-20 01:04:21 +02:00
Martin Prikryl
cc3eaac355
Bug 1978: Allow using the stream returned by Session.GetFile from different thread
...
https://winscp.net/tracker/1978
Source commit: 278e9ba376e2530955aeefb3e673cd2cfddf6f7b
2021-04-20 01:01:51 +02:00
Martin Prikryl
993913c9e1
The IEnumerable<RemoteFileInfo> returned by Session.EnumerateRemoteFiles implements the interface implicitly to allow access to the interface method (GetEnumerator) from late-bound languages, like PowerShell
...
See https://stackoverflow.com/q/66779416/850848
(cherry picked from commit 4ae7181819 )
Source commit: 38a06bedc5a69829b25aa794b1095891f6b34b6a
2021-03-26 00:59:52 +01:00
Martin Prikryl
4ae7181819
The IEnumerable<RemoteFileInfo> returned by Session.EnumerateRemoteFiles implements the interface implicitly to allow access to the interface method (GetEnumerator) from late-bound languages, like PowerShell
...
See https://stackoverflow.com/q/66779416/850848
Source commit: 7f68802de72e0dc9875d6192a30c2b22437ac9e3
2021-03-26 00:57:48 +01:00
Martin Prikryl
4e281b14d0
Bug fix: Hang when the stream returned by Session.GetFile is closed before the download finished
...
(cherry picked from commit 70c74e7a2b )
Source commit: 68da909e5aab405c641770210a5ea3e88ee63e87
2021-01-21 00:46:00 +01:00
Martin Prikryl
70c74e7a2b
Bug fix: Hang when the stream returned by Session.GetFile is closed before the download finished
...
Source commit: da8e7f9243b6815c31e57b70103c951e299b7659
2021-01-21 00:44:24 +01:00
Martin Prikryl
74c2283b66
Callstack logging when closing GetFile stream
...
Source commit: f43d5b6f370c3a8e1e34359fd5c99c2ce15b34d5
2021-01-19 00:41:55 +01:00
Martin Prikryl
c098c23fad
Bug fix: Session.GetFile can fail, if the server responds too quickly
...
Source commit: 2d3b1690a7bb44de6bcfbcf45cd6ba099d381363
2020-12-10 00:51:49 +01:00
Martin Prikryl
0d2a93b943
Bug fix: Path argument of Session.PutFile is incorrectly escaped
...
Source commit: e36dc2448b1b83ab03986feefa1535b631a19f82
2020-12-09 00:49:53 +01:00
Martin Prikryl
1710bccaba
Bug 1931: Local path argument of Session.PutFileToDirectory is incorrectly escaped
...
https://winscp.net/tracker/1931
Source commit: c94aa5655c2a0eeb12b14b4598726b8dea7573ae
2020-12-09 00:45:33 +01:00
Martin Prikryl
4e798aa1c4
Applying some code analyzer suggestions
...
Source commit: 2236553766f964d4e7580e5576822f423596e337
2020-11-28 00:55:55 +01:00
Martin Prikryl
76324f4fc0
.NET standard only issues
...
Source commit: e6cb5ffbdf3c219f964576be96898c8b64c70a3a
2020-11-28 00:52:53 +01:00
Martin Prikryl
4ddfc45e8d
Bug 1923: Automatically close timed out Session
...
https://winscp.net/tracker/1923
(cherry picked from commit 46f2afbd34 )
Source commit: 02a531fe3e214e282473a45bd494b6107ba6ac39
2020-11-26 16:30:55 +01:00
Martin Prikryl
f44b80b14e
Logging close of the download stream
...
(cherry picked from commit b1e3bb560c )
Source commit: 565c95064b087d8fce4761ddb42a43b9acb27819
2020-11-26 15:07:41 +01:00
Martin Prikryl
4309595bb0
Failure when streamed data are detected earlier than <download> tag
...
(cherry picked from commit 6da5190023 )
Source commit: 6a3c30afe5140e9deba8aab9126b1ddf12a463ef
2020-11-26 14:28:56 +01:00
Martin Prikryl
d2913f8dfe
Typo in a comment
...
(cherry picked from commit 00d8dbd498 )
Source commit: 176522747e734a893daac44cee50b7bee89b6846
2020-11-26 14:27:30 +01:00
Martin Prikryl
311e484008
Bug 1738: Stream interface in .NET assembly (upload)
...
https://winscp.net/tracker/1738
(cherry picked from commit 60c2cab3e0 )
Source commit: 161b741ded5edbb450bf5a9a2581b5cb6ce5c12f
2020-11-26 12:41:08 +01:00
Martin Prikryl
9fd355f563
Moving chunked output encoding to winscp.com, keeping the console API interface pure binary
...
(cherry picked from commit 469758e2ba )
Source commit: 6909a100a75c21ed95cfbd2d736634b49a309368
2020-11-26 12:28:25 +01:00
Martin Prikryl
f9ff1712ee
Comments corrections
...
(cherry picked from commit 5e9e9e0f97 )
Source commit: 44bd6ebbfcd8226c36dfa60fb4182c8824902c2b
2020-11-26 12:26:59 +01:00
Martin Prikryl
1747f92ac3
Bug 1738 – Stream interface in .NET assembly (download)
...
https://winscp.net/tracker/1738
(cherry picked from commit 56db37fceb )
Source commit: 8bfb7c64b2c98cd69546a2ad027a6025bbefa7bc
2020-11-26 12:21:39 +01:00
Martin Prikryl
397365c447
Redundant declaration
...
(cherry picked from commit eedd904f7c )
Source commit: 6b4bd15553cc5b6ab053cabcddadc4e5ee4eb31f
2020-11-26 12:18:56 +01:00
Martin Prikryl
21d47649f0
When connecting to new SSH host, its host key can be automatically accepted in scripting and .NET assembly
...
(cherry picked from commit b79f8c4789 )
Source commit: 6e2e836240f48d226a2e0af5cd92fb96a5c897bd
2020-11-26 10:45:36 +01:00
Martin Prikryl
b3ee247b3d
Bug 1802 – ComparisonDifference.Resolve method to process individual ComparisonDifference instances
...
https://winscp.net/tracker/1802
Source commit: 5a12c583d36365ec537cbc17ae575157439ddad9
2019-12-12 01:14:48 +01:00
Martin Prikryl
0dd8ae2347
Bug fix: ComparisonDifference.IsDirectory was not set to true for directories
...
Source commit: aec465200bdc4dd2a59473da992b22f6e9a29257
2019-12-12 00:54:18 +01:00
Martin Prikryl
9d02c4f0ce
Convenience method Session.RemoveFile
...
Source commit: c7e3a0866633669f2e08fe6516042f59707843ad
2019-12-07 01:00:41 +01:00
Martin Prikryl
e811586564
Factoring out GetOnlyFileOperation
...
Source commit: 9ba325c75ef64d4dbcf43b2bdd89e54ea86cbc9c
2019-12-06 01:26:31 +01:00
Martin Prikryl
79678dd885
Using nameof operator
...
+ One correction of an argument reference in an argument exception
Source commit: f76f49ae129bd3a64fb71c3bbbfadd44dcbcbbb1
2019-09-20 02:13:53 +02:00
Martin Prikryl
3b88e296ab
Bug 1778: Configurable S3 root path/bucket in .NET assembly
...
https://winscp.net/tracker/1778
Source commit: 64c8280512ca144e0fe8a1944832997550579b02
2019-08-19 00:51:37 +02:00
Martin Prikryl
3195d901ac
Bug 1777: Do not obsolete Session.DisableVersionCheck
...
https://winscp.net/tracker/1777
See 1225978c and 472980fc
Source commit: 9082bf3d96ab8460227e129b91c63be0a7f8c2c3
2019-08-19 00:42:26 +02:00
Martin Prikryl
fe24c90abb
Convenience methods Session.PutFileToDirectory, Session.PutFilesToDirectory, Session.GetFileToDirectory and Session.GetFilesToDirectory
...
Source commit: 0f89d088a94eeeaecbc4af11862542df9ea28667
2019-06-13 01:03:53 +02:00