Skip to content

ScpShell fixes; SFTP append mode for buggy servers#696

Merged
tomaswolf merged 3 commits into
apache:masterfrom
tomaswolf:winscp
Mar 15, 2025
Merged

ScpShell fixes; SFTP append mode for buggy servers#696
tomaswolf merged 3 commits into
apache:masterfrom
tomaswolf:winscp

Conversation

@tomaswolf
Copy link
Copy Markdown
Member

  • Fix current directory handling in SCPShell for WinSCP
  • Better handle SFTP append in SFTPv3 for buggy servers: send reasonable write offsets

Some SFTP v3 servers have trouble with append mode for file uploads.
OpenSSH < 6.3 didn't have append mode implemented, and some server
identifying as "7.9.0.0_openssh" apparently also cannot do it.

As a work-around get the file size first, then use that as base offset
for writing. This is at best an approximation of true append mode. We
still send the "append" flag, so for correct servers there will be no
change, but with the work-around appending may work as expected in most
cases even for servers that get append mode wrong.
Fix the handling of the home directory when a RootedFileSystem is used.

'currentDir' and 'homeDir' must be paths from the file system used.
WinSCP may, at least initially, send Windows-style paths; so ensure
that the path is converted.

When listing the root directory, don't include the ".." entry for the
parent directory.

Tested manually on Windows.
@tomaswolf tomaswolf merged commit 29f2d09 into apache:master Mar 15, 2025
@tomaswolf tomaswolf deleted the winscp branch March 15, 2025 18:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant