• src/sftp/sftp_client.c

    From Deuc¿@VERT to Git commit to main/sbbs/master on Tuesday, November 05, 2024 14:48:41
    https://gitlab.synchro.net/main/sbbs/-/commit/7dc93a672283caf22560886a
    Modified Files:
    src/sftp/sftp_client.c
    Log Message:
    Don't retypedef sftpc_state_t for ancient compilers

    (ie: gcc 4.4)

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Friday, April 24, 2026 23:01:06
    https://gitlab.synchro.net/main/sbbs/-/commit/2710c20e54f8a1affdcfb024
    Modified Files:
    src/sftp/sftp_client.c
    Log Message:
    sftp: drop pthread_key TLS for last-error, store on state struct

    pthread_key_create / pthread_setspecific / pthread_getspecific are not
    shimmed by xpdev/threadwrap.h (only pthread_mutex_* is), so sftp_client.c
    did not build on Win32 or any other non-pthreads target. Replace the TLS
    slot with a plain uint32_t last_error field on struct sftp_client_state; state->mtx already serializes every op, so no new lock is needed. Public
    API (sftpc_get_err and the bool returns from sftpc_open/read/write/etc.)
    is unchanged.

    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Deuc¨@VERT to Git commit to main/sbbs/master on Friday, May 01, 2026 09:47:56
    https://gitlab.synchro.net/main/sbbs/-/commit/977697e41fc2c88f6417d4b0
    Modified Files:
    src/sftp/sftp_client.c
    Log Message:
    sftp client: eager-bail per parse step in parse_readdir

    Restructure the readdir entry-parse loop so each of the three calls
    (filename getstring, longname getstring, fattr getfattr) is
    followed immediately by its NULL check, rather than running all
    three before checking any of them. On corrupt input this skips
    one or two doomed parses on the wreckage of the failing one, and
    the PENDING_RECORD error string now identifies which of the three
    steps failed and which entry of N Ä much easier to triage than the
    old "getstring/getfattr failed at entry N" generic.

    No on-the-wire change.

    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

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