Skip to content

Releases: pkg/sftp

v1.13.6

12 Aug 07:15
669003c
Compare
Choose a tag to compare

[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

12 Jun 15:35
a17a626
Compare
Choose a tag to compare

[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

Hotfix: 32-bit tests were failing

26 Sep 20:05
42e9800
Compare
Choose a tag to compare

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

05 Sep 19:01
ec1ca37
Compare
Choose a tag to compare

[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

10 Jul 09:08
7bfa5f2
Compare
Choose a tag to compare

[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

12 Jun 08:40
5b98d05
Compare
Choose a tag to compare

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

07 Mar 08:45
5b7da38
Compare
Choose a tag to compare

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 fsync@openssh.com.
  • [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: Bugfixes, and caching buffer allocation

26 Aug 14:44
60ec050
Compare
Choose a tag to compare

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 }