BBS:      TELESC.NET.BR
Assunto:  src/sbbs3/sftp.cpp
De:       Deuc¨
Data:     Fri, 1 May 2026 09:47:56 -0700
-----------------------------------------------------------
https://gitlab.synchro.net/main/sbbs/-/commit/2083238e5d015903563ddb11
Modified Files:
	src/sbbs3/sftp.cpp
Log Message:
sftp server: long-description availability + UTF-8 conversion

Two changes to the sbbs3 SFTP server:

1. Mark filebase entries that have an extdesc.  When SFTP_EXT_DESCS is
   negotiated, get_filebase_attrs() scans the loaded message header's
   dfield[] array for a TEXT_BODY with non-zero length and, if found,
   adds a zero-length descs@syncterm.net attribute extension to the
   entry's fattr.  Presence of the extension is the marker; clients
   issue the existing descs@ EXTENDED request to fetch the actual
   text.  No additional disk I/O  file_detail_normal already loads
   the dfield array.

2. Convert CP437  UTF-8 at every user-visible string boundary that
   crosses into an SFTP attr extension or extended reply.  The SFTP
   wire is UTF-8, but Synchronet stores filebase strings (lib lnames,
   dir lnames, file short descriptions, extdescs) in CP437.  Adds a
   sftp_cp437_to_utf8_strdup() helper and applies it at the four
   sites: get_lib_attrs, get_dir_attrs, get_filebase_attrs (lname
   short-desc), and sftp_ext_descs (extended-reply long-desc).
   minval='\x80' matches the convention in writemsg / sbbsecho /
   msgtoqwk  ASCII passes through unchanged.

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

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