BBS:      TELESC.NET.BR
Assunto:  src/syncterm/sftp_degraded.c sftp_degraded.h sftp_queue_screen.c sftp_
De:       Deuc¨
Data:     Fri, 24 Apr 2026 14:19:28 -0700
-----------------------------------------------------------
https://gitlab.synchro.net/main/sbbs/-/commit/ee5c974d4d3a606579257d47
Added Files:
	src/syncterm/sftp_degraded.c sftp_degraded.h sftp_queue_screen.c sftp_queue_screen.h
Modified Files:
	src/syncterm/CMakeLists.txt GNUmakefile sftp_browser.c sftp_queue.c sftp_queue.h ssh.c term.c
Log Message:
SyncTERM: SFTP queue screen, per-BBS persistence, degraded mode

Queue persistence: each BBS's cache dir now holds sftp_queue.ini.
On connect, sftp_queue_attach_bbs() reloads any pending jobs; ACTIVE
rows come back as QUEUED so interrupted transfers restart cleanly.
Every state transition atomically rewrites the file.

Alt-Q opens the queue screen: live per-job progress (done/total %),
sorted ACTIVE first, then QUEUED then terminal rows.  Del cancels
the highlighted job; Esc closes.  Uses WIN_DYN + gen_ctr polling so
the view updates as workers tick but the bar only repaints on real
change.

Browser keys finalised around uifc's built-in letter-jump: Enter
downloads a file (and stays in the list), Ins uploads, Del cancels.
Directories descend on Enter as before.

Shell-dead degraded mode: if ssh_chan closes while the SFTP queue
still has work, ssh_input/output threads now leave conn_api.terminate
clear so sftp_send and the recv thread keep flowing.  term.c's
disconnect branch runs sftp_degraded_run() first  a small overlay
that blocks until the queue drains or the user chooses "Hang up
now" / Esc.  Queued-but-unfinished jobs are preserved on disk for
the next connection.

Co-Authored-By: Claude Opus 4.7 (1M context) 
n
---
  mSynchronetn  hgVertrauen n hHome of Synchronet n gh[vert/cvs/bbs].synchro.net

-----------------------------------------------------------
[Voltar]