• docs/v322_new.md src/sbbs3/sbbsecho.c

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Wed Sep 30 16:22:28 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/04dfc61739938207f3f302df
    Modified Files:
    docs/v322_new.md src/sbbs3/sbbsecho.c
    Log Message:
    SBBSecho: don't write a stored-message header into an inbound packet

    import_netmail() marks a netmail message as received by writing its stored-message (*.msg) header back to the file it was read from. Since e7b93ae3f3 (types-26-ease, 2025-11-01) that write-back ran for packets
    too: update_fmsghdr() seeks to offset 0 and writes the 190-byte fmsghdr_t, which lands on the packet header and the first message. Any message that followed the imported netmail in the same packet was then read through the overwritten bytes (its type word became 256, from the destzone/origzone
    bytes of the stored header), reported as "Grunged message", and the packet
    was set aside as bad, losing the rest of its netmail and echomail. Before
    that commit the write-back was conditional on a *.msg path.

    Only write the header back for a *.msg file, at both of the sites that
    were made unconditional. The robot (uses_msg) site already branched on it.

    Reproduced with a hand-built Type-2+ packet carrying two netmail messages:
    the second was grunged at offset 177 with type 256 before the fix, and both import cleanly after it. Shipped in SBBSecho 3.37 with v3.21c and v3.21e.

    Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Wed Sep 30 16:22:28 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/d7d1b58fd16bf8c7a9cab1fe
    Modified Files:
    docs/v322_new.md src/sbbs3/sbbsecho.c
    Log Message:
    SBBSecho: generate a Message-ID for imported netmail too (#1167)

    fmsgtosmsg() generated an RFC822 Message-ID only for messages going into
    a sub-board (added in 0eccdade66, 2005-09-01, for echomail cross-
    referencing); the mail-base branch never did. Every netmail SBBSecho
    imports was therefore stored without one, and SBBSecho's own locally
    originated notifications (e.g. "FAILED Area Management Request from ...",
    which have no net origin) are exactly what chksmb flags as "No Message-ID",
    as reported in the issue.

    Generate the default Message-ID after the branch, for netmail and echomail alike, the same way the BBS does for every message it stores.

    Verified on a scratch install by importing a packet holding a plain netmail
    and an AreaFix request from an unconfigured node: both the imported netmail
    and the resulting failure notification now carry a Message-ID and chksmb reports the mail base OK.

    Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

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