mirror of
https://github.com/seregonwar/zftpd.git
synced 2026-10-19 01:59:57 -05:00
- copy.c: replace the 2x4 MB ping-pong with a 4-slot ring of 8 MB chunks (PS4: 1 MB), filled by concurrent pread() readers (2 on PS5, 1 on PS4) and drained by a single in-order writer. The progress callback now runs without holding the pipeline mutex, and mmap pressure degrades to fewer slots/smaller chunks before falling back to the serial copy. - Fix a source fd leak on the pre-flight ENOSPC path. - /api/copy?move=1: rename() when source and destination share a filesystem, otherwise copy and remove the source entries (keep_src=0). Moves merging into an existing folder rename file by file. - web: moves use the server-side mode instead of copy + recursive delete.