https://gitlab.synchro.net/main/sbbs/-/commit/fa07ec6808f54334ed5bf73c
Added Files:
exec/ftpclient.js
Modified Files:
docs/v322_new.md exec/CLAUDE.md GNUmakefile Makefile exec/load/ftp.js Removed Files:
exec/ftp.src
Log Message:
Port the Baja FTP client to JavaScript as ftpclient.js
ftpclient.js replaces ftp.src/.bin, using the load/ftp.js library for the protocol itself. Same commands (open, close, dir, pwd, cd, pasv, ascii,
hash, debug, get, put, delete, quit and ?), same help screen with the
current mode settings, same response echoing (with debug adding the
commands sent), and the same auto-connect from the module's argument.
'get' still downloads to the temp directory and sends the file to the
user; 'put' receives from the user and uploads.
It is NOT named ftp.js: load() resolves a bare filename from the calling script's own directory first, so an exec/ftp.js would shadow the exec/load/ftp.js library for wget.js, qnet-ftp.js and any other script
that requires 'ftp.js'. Sysops running this module as "?ftp" will need
to change that to "?ftpclient".
New: an optional port ("open host 2121" or "open host:2121") and 'ls' as
an alias for 'dir'. Control characters are now stripped from everything
the server sends, so a hostile server can't drive the user's terminal
with Ctrl-A codes.
load/ftp.js gains an optional progress callback, called with the running
byte count during transfers, which is how the client prints hash marks;
nothing else sets it. list() with no path now sends "LIST" rather than
"LIST " with a trailing space.
Only matrix.src is left to build in exec/, so the makefiles now have one target.
Co-Authored-By: Claude Opus 5 (1M context) <
noreply@anthropic.com>
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net