1
0
mirror of https://github.com/winscp/winscp.git synced 2026-10-24 02:28:55 +03:00

123 Commits

Author SHA1 Message Date
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