🚀 zftpd v1.2.2
Version 1.2.2 brings significant improvements to data transfer robustness and overall network performance. This release heavily focuses on optimizing file I/O and socket behavior—particularly for PS4 and PS5 platforms—ensuring higher stability, safer connections, and more consistent transfer speeds.
Core Changes
📡 Network & Transfer Optimizations
- Replaced the old per-session token-bucket rate limiter with socket corking around
sendfile/readloops. - Implemented a graceful data-socket close sequence to avoid connection resets (RSTs).
- Added
fsyncflushes and richer failure reporting forRETR,STOR, andAPPEcommands. - Hardened HTTP CSRF token formatting to prevent buffer overruns.
🎮 Platform-Specific (PS4 / PS5 / Consoles)
- Increased default buffer and stream sizes for better throughput.
- Added data-specific I/O timeouts and linger settings for PS4, PS5, and other platforms.
- Disabled transfer rate limiting on PS5 to maximize speeds.
- Made file I/O significantly more robust on consoles using
F_NOCACHEandposix_fadvise.
🛠️ PAL (Platform Abstraction Layer) Updates
- Introduced new PAL networking primitives (e.g.,
pal_socket_configure_data, cork/uncork, timeouts, and drain helpers). - Updated
pal_network.hand.cfor safer, more configurable socket behavior and telemetry.
⚙️ Build & Maintenance
- Fixed minor
Makefileissues to ensure build directories are properly created. - Added internal API docs and tweaked build configurations &
.gitignore.
🙌 Acknowledgements
I would like to thank all the testers who helped me achieve such high stability and consistent speed. Without them, zftpd would not have achieved these results in such a short time.
Full Changelog: v1.2.1...v1.2.2