FTP4DOS v1.0.0
The official 1.0.0 release. Includes last optimizations and much of the feedback in the VOGONS thread — special thanks to fly_indiz and ntalaec.
Fixed
- Long file names work in more setups. The v0.9.6 LFN support had only ever been exercised on plain DOS: detection now uses the documented Get Volume Information call instead of an undocumented probe that only Windows 9x answers (fixes DOSLFN on MS-DOS 7.x), the find-data record layout and attribute mask were wrong (garbage names, missing directories), and all file operations now route through the LFN API or the 8.3 alias. Enter long-named directories, view/copy/delete/rename long-named files, download to long names, create long-named directories — on Windows 9x DOS, MS-DOS 7.x, and DOSLFN.
- Steadier download speeds. Disk writes no longer starve the network stack: the file buffer is flushed in slices with packet processing in between, avoiding the burst/stall sawtooth seen on real hardware.
- Cancelling a download is instant instead of freezing the progress dialog for up to 10 seconds — ABOR is now sent while the data connection is still open, mirroring the upload path.
- Control-connection resync. Stale replies left over from aborted or timed-out transfers no longer desync later commands (the reported "PASV refused (257)"). A server-side idle timeout (421) now cleanly reports "connection lost" instead of failing on the next command.
- Full screen mode fix The full available space is now used for displaying long file names in full screen mode
- Minor bugfixes: UTF-8 remote paths are codepage-converted in the pane header (file lists already were), and the cursor is correctly reselected after leaving a UTF-8-named directory, Deterministic 8.3 download names for long remote names, Move+Skip no longer loses files, overflow guard for >4 GB transfer counters.
New
/SITESswitch: open the site manager directly on startup.
Downloads
FTP4DOS.EXE— the DOS executable.ftp4dos-mtcp-src-2025-01-10.zip— unmodified mTCP source (Michael B. Brutman, GPLv3), provided to satisfy the license; generated from the pinned submodule commitd68948fand unchanged in content since v0.9.5.
Full release history: HISTORY.md