Releases: pkg/sftp
v1.13.7 - z/OS support
What's Changed
- Fix typo in request-interfaces.go by @Lilja in #558
- fix: remove ioutil and use io/os libraries by @urko-b in #560
- fix: sftp client hang when exit in sftp server example by @wwcd in #564
- Cancelable ReadDirContext by @ungerik in #565
- Bump golang.org/x/crypto from 0.1.0 to 0.17.0 by @dependabot in #568
- Rework client to prevent after-Close usage, and support perm at Open by @puellanivis in #574
- Add support for z/OS by @puellanivis in #580
- Add support for zos/s390x by @dustin-ward in #582
- add CloserListerAt by @drakkan in #577
- Add SetExtendedAttrs to Client by @peterverraedt in #583
- Add WithMaxTxPacket server option by @peterverraedt in #584
- update ReadFrom and ReadFromWithConcurrency docs by @emar-kar in #588
New Contributors
- @Lilja made their first contribution in #558
- @urko-b made their first contribution in #560
- @wwcd made their first contribution in #564
- @ungerik made their first contribution in #565
- @dependabot made their first contribution in #568
- @dustin-ward made their first contribution in #582
- @emar-kar made their first contribution in #588
Full Changelog: v1.13.6...v1.13.7
v1.13.6
[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
[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
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 const
s into implicit int
s mostly when printing test failures.
v1.13.3
v1.13.2
v1.13.1
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
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 mapsshFxPermissionDenied
. - [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 mapsshFxNoSuchFile
. - [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
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 }