• src/sbbs3/sftp.cpp

    From Deuc¿@VERT to Git commit to main/sbbs/master on Fri Apr 24 14:19:28 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/2636b58611fcc712b67cd693
    Modified Files:
    src/sbbs3/sftp.cpp
    Log Message:
    Add SFTP_EXT_LNAME support.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¨@VERT to Git commit to main/sbbs/master on Fri May 1 09:47:56 2026
    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) <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net