• JamNNTPd updates

    From Tommi Koivula@2:221/360 to Stephen Walsh on Sunday, February 22, 2026 09:07:54
    * Originally in jamnntpd
    * Crossposted in linux_bbs

    Hi Stephen.

    22 Feb 26 12:35, you wrote to me:

    .... This is intended to be a tagline.
    BTW, an extra dot was inserted there. :-|

    I also noticed that. PyGate in not yet to displace Jamnntpd as a
    nntp reader. :)

    It's not even designed to do that, so you get to keep the broken bits!

    But PyGate is designed to post messages to NNTP server. It should take into consideration the special case of a dot as a first character.

    It's not a big deal. We can keep the broken bits. ;)

    You can also see rfc3977 if you wish.

    'Tommi

    ---
    * Origin: nntps://news.fidonet.fi (2:221/360)
  • From Stephen Walsh@3:633/280 to Tommi Koivula on Monday, February 23, 2026 16:16:24

    Hello Tommi!

    22 Feb 26 09:07, you wrote to me:

    .... This is intended to be a tagline.
    BTW, an extra dot was inserted there. :-|

    I also noticed that. PyGate in not yet to displace Jamnntpd as a
    nntp reader. :)

    It's not even designed to do that, so you get to keep the broken
    bits!

    But PyGate is designed to post messages to NNTP server. It should take into consideration the special case of a dot as a first character.

    It's not a big deal. We can keep the broken bits. ;)

    You can also see rfc3977 if you wish.

    ### Version 1.5.12 (February 23, 2026)

    #### Double Dot-Stuffing Fix (RFC 3977 Compliance)
    Fixed a bug where lines starting with a dot in FidoNet messages had an extra dot
    added when gated to NNTP, violating RFC 3977 s3.1.1.

    Result: a FidoNet body line `. 1` became `... 1` on the wire. INN stripped one dot
    per RFC 3977 and stored `.. 1`, so the user saw an extra leading dot on every dot-prefixed line.

    Fix: removed the dot-stuffing block from `build_nntp_article()`. Dot-stuffing is a
    wire-level transport encoding and belongs only in `post()`. Article content must
    contain literal dots; `post()` handles the protocol escaping.





    Stephen


    --- GoldED+/LNX 1.1.5-b20250409
    * Origin: Dragon's Lair ---:- dragon.vk3heg.net -:--- Prt: 6800 (3:633/280)