Sftp Versions Save

SFTP support for the go.crypto/ssh package

v1.13.6

9 months ago

[GH-499] writeToSequential: improve tests for write errors [GH-513] More context for EOF during client setup [GH-516] RealPathFileLister: allow to return an error [GH-525] Document the weirdness of the reversal of arguments to SSH_FXP_SYMLINK [GH-526] request server: handle relative symlinks [GH-528] Add support for working directory in Server [GH-533] CI: add CIFuzz integration [GH-537] Stop ReadFromWithConcurrency sending more data than it needs to [GH-545] refactor sshfx encoding, fix link rot, go fmt [GH-553] Marshal extended attribute data if FileInfo supports it [GH-554] Properly handle io.EOF error conditions when reading

v1.13.5

1 year ago

[GH-498] request server: add WithStartDirectory option [GH-494] sequential writes: ensure to always return write errors, if any [GH-492] PosixRename and Hardlink: convert remote paths to local paths [GH-489] Fix missing io.EOF when concurency is disabled [GH-485] Add File.ReadFrom test on a SectionReader [GH-482] Sequentially issue write requests, process results concurrently [GH-478] Translate EACCES to PERMISSION_DENIED [GH-471] CI: run test cases also on 32-bit arch

v1.13.4

2 years ago

This release changes no actual non-test code. However, testing on 32-bit architectures was broken, and blocking a major linux distro’s progress as a result of overflows of untyped consts into implicit ints mostly when printing test failures.

v1.13.3

2 years ago

[GH-467] BUGFIX: Statfs was not populating its respond ID, leading to clients receiving unexpected 0 request ids. [GH-455] Cleanup Request mutex usage [GH-456] Regrouping code, linting, and better longname LS formatting [GH-459] Add testing for go1.17, remove testing for go1.15

v1.13.2

2 years ago

[GH-441] Use go errors instead of github.com/pkg/errors [GH-443] Sequentially issue read requests in ReadAt [GH-445] The server implementation can now handle Windows paths [GH-452] Fix long output for directory listing response

v1.13.1

2 years ago

New features and bugfixes.

Request Server:

  • [GH-437] Add support for a start directory

Client:

  • [GH-439] Export a ReadFromWithConcurrency function that permits ensuring concurrency usage
  • [GH-430] Add the internal SSH filexfer module
  • [GH-435] Fix math overflows on 32-bit architectures
  • [GH-436] Sequentially issue read requests, fixes several data loss issues
  • add fuzzer support and fix some potential crashes
  • other minor improvements and bugfixes

v1.13.0

3 years ago

New features and bugfixes.

Request Server:

  • [GH-377] Add OpenFileWriter interface to allow a file to be opened for both reading and writing.
  • [GH-379] Add Lstat support.
  • [GH-392] Return io.EOF only if there is no error.
  • [GH-393] Fix handle leaks in error cases.
  • [GH-406] Add StatVFS support.
  • Add PosixRename support.

Client:

  • [GH-385] Add Client.Extensiosn method to list supported server extensions.
  • [GH-386] Add support for [email protected].
  • [GH-397] Refactoring and performance improvements, implement WriterAt interface. Concurrent writes are not longer enabled by default for safety reasons. You can use the option UseConcurrentWrites if it's needed for your use case.
  • [GH-401] Use os.ErrPermission to map sshFxPermissionDenied.
  • [GH-408] Add an option to disable concurrent reads. This fix support for read once servers.
  • [GH-410] Expose RealPath method.

Misc:

  • [GH-380] Fix build on Plan 9.
  • [GH-382] Server: use os.IsNotExist to map sshFxNoSuchFile.
  • [GH-384] Refactor memFile.
  • [GH-387] Tests: clean up temporary files.
  • [GH-389] Fix crash with zero bytes packets.
  • [GH-402] CI: switch from Travis to GitHub Actions.
  • CI: tests against Go versions { 1.15, 1.16 }, instead of { 1.14, 1.15 }

v1.12.0

3 years ago

First release in some time. Fixing lots of bugs and adding io.ReaderAt compatibility of files, and various allocation and byte-slice optimizations courtesy of Nicola "@drakkan" Murino. Below are the highlights:

Features: [GH-285] Implement io.ReaderAt interface on File struct. [GH-338] Remove an unnecessary allocate+copy when unmarshaling data packets. [GH-343] Allocate byte-slices anticipating full capacity to avoid allocate+copies when they are extended. [GH-344] Add an optional caching allocator, to allow reuse of buffers, rather than always allocating anew.

Bugfixes: [GH-329] S_IFMT overridden for Windows, JS, WASM to the most prevalent POSIX value. [GH-337]: In integration tests, expect /usr/lib/ssh/sftp-server as a possible executable location. [GH-340]: Update golang.org/x/crypto to address vulnerability CVE-2020-9283 [GH-342]: Fix race condition between Connection and Close [GH-355]: cleanPath operates on remote paths, so always use path (POSIX) rather than filepath (local file system rules). [GH-363]: Fix some small unlikely RequestServer.Serve bugs. [GH-372]: Add mutex protection to internal File offset used by Read. [GH-373]: RequestServer incorrectly interpreted SSH_FXP_FSETSTAT as a "Put" request.

Updates: [GH-365], [GH-376]: Update dependencies In [GH-344], [GH-373]: travis now tests against Go versions { 1.14, 1.15 }, instead of { 1.12, 1.13 }