Releases: fclairamb/ftpserverlib
Releases · fclairamb/ftpserverlib
v0.8.0: Minor changes
v0.7.0
Changes are:
- It's now only a library, not a an independent server. The server side has been moved to ftpserver.
- Logging changes:
- Simplified the
Logger
interface so that the first argument is always the message and the remaining ones key/value pairs - This means "action" are not reported anymore. They added a lot of development effort and didn't bring much.
- Simplified the
- Moved all core files (server library and tests) to the root. Only the logs are in the sub-package
- Clarified some APIs:
- A bit of renaming
- Adding some returned errors
- Switched to afero.Fs for the files handling
- Small refactoring and code cleanup
v0.6.0 - Various updates
It's been quite some time (2 years) since the last release 😬.
I'm really sorry about that. I'm not very active on this project but I still take the time to review and most of the time merge the PRs your provide.
Thank you for all the contributors that have participated in improving this library so that it can become quite useable.
Changes
- #85 Various code changes, most of them coming from #63 made by @stevenh:
- Variables renaming, constants declaration, comments fixes, cleaner map initialization, removed variable shadowing
- Dial timeout for active connections and usage of SetDeadLine
- #98 by @semouk as asked in #90 by @iofxl -
NLST
support - #111 by @marodere - Fix of error when reaching listening port exhaustion
- #119 by @ernierasta - Fix
MFMT
/MDTM
returned statuses - #123 by @zavla - Proper handling of files with spaces
- #114 by @fahman - Chmod handling fix
- #108 - Added a reference implementation of the disk driver
- #94 by @adrianduke - Allowing to use an absolute path
- #81 fixes #74 reported by @nifflerfox - Loopback handling
- #89 - Switch to go.mod
- #79 by @Lukino2000 - Changed the default config
- #103 - Clearer explanation around improper ASCII support reported by @shellus
- Updated to the latest version of go-kit/log
- Switching to golangci-lint for linting
- #128 - Switch to github actions
- #132 - Passive allocation port fix on port range
Notes for the future
I'd like to make a few changes to:
- Change the driver architecture to be compatible with some existing libraries
- Provide a set of drivers (S3, Google Drive, Dropbox)
- Create a much better sample server so that people can comfortably use it
v0.5
This is a bug fix release.
- #64 : Files listing (fixed by @backlin, reviewed by @mgenov): LIST/MLSD files listing were adding incorrect caracters
- #71 : Handling file transfers (contributions from @buyology, @marshallbrekka): File access errors and file transfers were not correctly handled. For file access errors, this resulted in possibly giving a false impression that the file was correctly flushed because the error on Close was discarded. For errors during connection handling, it was resulting in not closing the opened file, which means file descriptor leak.
v0.4 - Improvements + Docker sample
Library improvements
- Added support for
MLST
FTP command, it has taken a lot of time to properly support. Mostly because of laziness (#31) - Allowing to use
PASV
behind load balancer by allowing to provide a custom listener and a dynamic way to get our IP address (#53 thanks to @marshallbrekka's work) - Added a connection IDLE timeout (#59 thanks to @worddevfr's request)
- Modified the
ClientContext
interface API to allow to provide slightly more info about the client to the driver. - Dropped logrus, replaced it by go-kit/log and allowed to path a logger at server's instantiation (#33)
- TLS auth is now added to the tests (#51 thanks to @asv's work)
- Dropped the last mutexes (#37)
- Switched all tests to
-race
testing mode and fixed a small issue (#41)
Sample server improvements
Docker
- Added a docker build
- Automatic upload of docker builds on docker hub
- Running some basic tests for each docker build
- Updated the doc to make it the recommended way to test the lib
Multi-arch builds
- Building for lots of architecture (linux/amd64, linux/x86, linux/arm, darwin/amd64, windows/amd64, windows/x86)
- The builds should be available as part of this release assets (hope it works)
- Making it possible to easily run it everywhere (config file isn't mandatory)
v0.3 - Transfer fix and cleanup
- Correct handling of files transfer in case of error, thanks to @byrnedo for reporting #30
- Strengthen the tests to make them more stable using secsy/goftp to test active and passive transfer
- Added MLSD command support
- Allowing non-standard transfer file port (not 20)
- Various code cleanups
- Added the code of conduct (everybody is nice in Goland anyway)
v0.2 - General cleanup
- Active FTP connections
- Configurable range of listening port
- Chmod support
- General code cleanup
- Added full travis integration
v0.1 - First release
file