• jamnntpd issues, smapinntpd

    From Nil Alexandrov@2:5015/46 to All on Tue Dec 31 23:04:06 2019
    Hi Folks,

    Here's my recent experience w/ jamnntpd.
    Cloned from https://github.com/ftnapps/smapinntpd and built for Ubuntu 14.04.6.

    First issue showed up was the message-id format for STAT/ARTICLE/HEAD/BODY, RFC-3977 says

    A message-id MUST begin with "<", end with ">" should be wrapped
    with square braces.

    Jamnntpd (and smapinntpd) won't understand the message-id w/ square braces but will be happy w/o. It breaks some NNTP readers which use message-id rather than message number.

    Second issue was w/ posting an article - it will break the JAM database!
    * Jamnntpd will not be able to read back posted message (the message counter remains the same).
    * GoldED+/LNX 1.1.5 will show a new completely empty message w/o headers and body
    * Husky HPT 1.9 will core dump while dealing w/ that JAM file (which is actually bad).

    I've also tried smapinntpd from https://github.com/ftnapps/smapinntpd and posting to JAM worked for me.

    Regards,
    Nil
    --- GoldED+/LNX 1.1.5
    * Origin: -=NIL BBS=- (2:5015/46)
  • From Fabio Bizzi@2:335/364.1 to Nil Alexandrov on Wed Jan 1 12:04:54 2020
    Hello Nil!

    31 Dec 19 23:04, you wrote to All:

    Hi Folks,

    Here's my recent experience w/ jamnntpd.
    Cloned from https://github.com/ftnapps/smapinntpd and built for Ubuntu 14.04.6.

    I've found lot of troubles with jamnntpd on x64 linux systems, the first issue is that jamlib doesn't work at all in a 64 bit environment.

    Smapinntp coredumps randomly on my system (devuan ascii x64).

    But the big issue also with 32 bit binaries on a 64 bit system is that the answering in an echo conference doesnt put the right name in the To: field.

    With some version of jamnntpd the answer is always To:ALL with others the field is left empty. :(

    I think that a complete rework of both the servers is needed.

    Ciao!
    Fabio

    --- GoldED+/LNX 1.1.5-b20180707
    * Origin: ]\/[imac Rebirth Boss Point (2:335/364.1)
  • From Tommi Koivula@2:221/0 to Nil Alexandrov on Wed Jan 1 20:30:26 2020

    Nil Alexandrov - All <0@46.5015.2> wrote:

    Hi Folks,

    Here's my recent experience w/ jamnntpd.
    Cloned from https://github.com/ftnapps/smapinntpd and built for Ubuntu 14.04.6.

    Ubuntu 64bit?

    Second issue was w/ posting an article - it will break the JAM database!

    This is a known JAM API problem in 64bit systems. :(

    * Jamnntpd will not be able to read back posted message (the message counter remains the same).
    * GoldED+/LNX 1.1.5 will show a new completely empty message w/o headers and body
    * Husky HPT 1.9 will core dump while dealing w/ that JAM file (which is actually bad).

    Yes. I have seen it happening too.

    My experience with Jamnntpd is that it compiles and works quite fine in my 32bit systems: OS/2, Cygwin/32 and Ubuntu 32bit in Raspberry Pi2.

    'Tommi

    ---
    * Origin: smapinntp://rpi.rbb.bbs.fi (2:221/0)
  • From Nil Alexandrov@2:5015/46 to Tommi Koivula on Wed Jan 1 21:55:10 2020
    Hello, Tommi!

    Wednesday January 01 2020 20:30, from Tommi Koivula -> Nil Alexandrov:

    Here's my recent experience w/ jamnntpd.
    Cloned from https://github.com/ftnapps/smapinntpd and built for
    Ubuntu 14.04.6.
    Ubuntu 64bit?

    That's right.

    Second issue was w/ posting an article - it will break the JAM
    database!
    This is a known JAM API problem in 64bit systems. :(

    Seems that JAMLIB by Bjorn Stenberg was not aware of 64bit back in 1999.

    Guess it was a reasonable move to SMAPI lib so it has better support including both JAM and Squish.

    Was the smapinntpd project a fork from jamnntpd at some point? Should we continue using smapinntpd then?

    Best Regards, Nil
    --- GoldED+/LNX 1.1.5
    * Origin: -=NIL BBS=- (2:5015/46)
  • From Oli@2:280/464.47 to Nil Alexandrov on Wed Jan 1 20:50:49 2020

    Second issue was w/ posting an article - it will
    break the JAM database!
    This is a known JAM API problem in 64bit systems. :(

    Seems that JAMLIB by Bjorn Stenberg was not aware of
    64bit back in 1999.

    does crashmail 64bit also break the jam message base? (it uses jamlib too)

    Was the smapinntpd project a fork from jamnntpd at
    some point? Should we continue using smapinntpd then?

    yes, see
    https://github.com/ftnapps/smapinntpd/commits/master

    * Origin: kakistocracy (2:280/464.47)
  • From Tommi Koivula@2:221/360 to Nil Alexandrov on Thu Jan 2 09:39:15 2020
    On 01.01.2020 20:55, Nil Alexandrov wrote :

    Guess it was a reasonable move to SMAPI lib so it has better support including both JAM and Squish.

    Was the smapinntpd project a fork from jamnntpd at some point?

    It was. And by the original author. :)

    Should we continue using smapinntpd then?

    That might be a good idea. At least in 64bit linux.

    'Tommi

    --- Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:68.0) Gecko/20100101 Thunderbird/68.3.1
    * Origin: nntp://rbb.fidonet.fi - Lake Ylo - Finland (2:221/360.0)
  • From Tommi Koivula@2:221/360 to Oli on Thu Jan 2 09:39:30 2020
    Hi Oli.

    01 Jan 20 20:50:48, you wrote to Nil Alexandrov:

    @PID: GED+LNX 1.1.5-b20180707
    @TID: CrashMail II/Linux 1.7

    Seems that JAMLIB by Bjorn Stenberg was not aware of
    64bit back in 1999.

    does crashmail 64bit also break the jam message base? (it uses jamlib too)

    Do you run 64bit linux?

    'Tommi

    ---
    * Origin: - rbb.fidonet.fi - Finland - (2:221/360)
  • From Oli@2:280/464.47 to Tommi Koivula on Thu Jan 2 14:02:39 2020

    Seems that JAMLIB by Bjorn Stenberg was not aware
    of 64bit back in 1999.

    does crashmail 64bit also break the jam message
    base? (it uses jamlib too)

    Do you run 64bit linux?

    I use a raspberry pi for fidonet, so I haven't tried it on 64 bit. But debian and ubuntu have 64 bit packages of crashmail and jamnntpd. Also more and more distros don't support 32 bit anymore ...


    * Origin: kakistocracy (2:280/464.47)
  • From Nil Alexandrov@2:5015/46 to Tommi Koivula on Thu Jan 2 18:16:56 2020
    Hello, Tommi!

    Thursday January 02 2020 09:39, from Tommi Koivula -> Nil Alexandrov:

    Should we continue using smapinntpd then?
    That might be a good idea. At least in 64bit linux.

    Looks like smapi version is the logical continuation of the project, though could have been done as a build option, link with JAMLIB or SMAPI. Hope can use
    this echo conference for SmapiNNTPd related stuff.

    Here's my list of TODO ;-)

    * Socket reuse (just one line fix, otherwise you need to wait a few mins after restart).

    * Message-id passed in <> brackets (some NNTP clients use message-id to fetch head/body/article instead of the article number, e.g. lynx text-mode browser works with nttp:// URL scheme).

    * Add encoding support in subjects (some NNTP clients even use a different encoding in subject than the body itself, e.g. Thunderbird will always use utf8
    in subjects (Subject: =?UTF-8?Q) even though the body encoding is 8 bit)

    * Add utf8 support for posting.

    * Maybe get rid of charset files completely, just compile with libiconv or ICU.

    * Having been integrated with Husky project, specifically with SMAPI library, so why not using the fidoconf to read out groups.

    Best Regards, Nil
    --- GoldED+/LNX 1.1.5
    * Origin: -=NIL BBS=- (2:5015/46)
  • From Oli@2:280/464.47 to Nil Alexandrov on Thu Jan 2 17:18:19 2020

    Here's my list of TODO ;-)

    * Socket reuse (just one line fix, otherwise you need
    to wait a few mins after restart).

    and i wondered why jamnntpd never restarts immediately ...
    * Add utf8 support for posting.

    it's already possible to post utf8 messages. there is onky a problem with quoting.

    * Maybe get rid of charset files completely, just
    compile with libiconv or ICU.

    that would be nice, i hate these charset files ... :)

    * Having been integrated with Husky project,
    specifically with SMAPI library, so why not using the
    fidoconf to read out groups.

    please, keep jamnntpd independent from the husky project, which is a mess ...

    * Origin: kakistocracy (2:280/464.47)
  • From Nil Alexandrov@2:5015/46 to Oli on Thu Jan 2 23:23:34 2020
    Hello, Oli!

    Thursday January 02 2020 17:18, from Oli -> Nil Alexandrov:

    * Socket reuse (just one line fix, otherwise you need
    to wait a few mins after restart).
    and i wondered why jamnntpd never restarts immediately ...

    Here is my patch for you.

    $ git diff
    diff --git a/src/main.c b/src/main.c
    index 6aaded8..df160f0 100644
    -+- a/src/main.c
    +++ b/src/main.c
    @@ -460,6 +460,17 @@ int main(int argc, char **argv)
    exit(10);
    }

    + int enable = 1;
    + if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &enable, sizeof(int)) < 0)
    + {
    + uchar err[200];
    +
    + os_showerror("Failed to reuse address/port: %s",os_strerr(os_errno(),err,200));
    + os_free();
    + freeargs();
    + exit(10);
    + }
    +
    memset(&local, 0, sizeof(local) );

    local.sin_family = AF_INET;

    please, keep jamnntpd independent from the husky project, which is a
    mess ...

    Though, Husky project is alive and is constantly being patched by some 2:R50 SysOps.

    Best Regards, Nil
    --- GoldED+/LNX 1.1.5
    * Origin: -=NIL BBS=- (2:5015/46)
  • From Nil Alexandrov@2:5015/46 to Fabio Bizzi on Thu Jan 2 23:56:32 2020
    Hello, Fabio!

    Wednesday January 01 2020 12:04, from Fabio Bizzi -> Nil Alexandrov:

    Smapinntp coredumps randomly on my system (devuan ascii x64).

    If you can reproduce the crash, then submit a bug report.
    I've seen a coredump inside the smapi library itself when opening a corrupted JAM database file (after jamnntpd 64bit mess).

    But the big issue also with 32 bit binaries on a 64 bit system is that
    the answering in an echo conference doesnt put the right name in the
    To: field.

    Does your NNTP client provide the 'X-Comment-To:' header?

    Just tested with NewsTapLite for iOS and SmapiNNTPd.
    NewsTapLite passes the X-Comment-To:' and SmapiNNTPd puts it to the 'To:' FTN field.

    With some version of jamnntpd the answer is always To:ALL with others
    the field is left empty. :(

    Reply (which is called a follow-up in NNTP/Usenet world) will put the right 'To:' when I post from the latest Thunderbird, cannot verify now, probably it passes the X-Comment-To as well.

    Do you expect that jamnntpd/smapinntpd would go ahead and find out the name from the original message to which the reply is being posted?

    Best Regards, Nil
    --- GoldED+/LNX 1.1.5
    * Origin: -=NIL BBS=- (2:5015/46)
  • From Fabio Bizzi@2:335/364.3 to Nil Alexandrov on Thu Jan 2 23:36:42 2020
    Hello, Nil Alexandrov.
    On 02/01/20 23:56 you wrote:

    Reply (which is called a follow-up in NNTP/Usenet world) will put
    the right 'To:' when I post from the latest Thunderbird, cannot
    verify now, probably it passes the X-Comment-To as well. Do you
    expect that jamnntpd/smapinntpd would go ahead and find out the
    name from the original message to which the reply is being posted?

    I don't expect nothing, I'm not a developer nor an nttp expert, I was just reporting a behaviour that maybe can help someone expert like you.

    Have a nice debug.

    --
    Ciao.
    Fabio.
    --- Hotdoged/2.13.5/Android
    * Origin: ]\/[imac boss android point (2:335/364.3)
  • From Nil Alexandrov@2:5015/46 to Fabio Bizzi on Fri Jan 3 08:21:40 2020
    Hello, Fabio!

    Thursday January 02 2020 23:36, from Fabio Bizzi -> Nil Alexandrov:

    I don't expect nothing, I'm not a developer nor an nttp expert, I was
    just reporting a behaviour that maybe can help someone expert like
    you. Have a nice debug.

    I have looked into the implementation details of what goes into Fidonet 'To' field when you follow-up on (reply to) a message in jamnntpd/smapinntpd.

    When you view an article, the 'To' field from the JAM message will show up as an optional 'X-Comment-To:' header.

    When you post an article as a result of a follow-up, your client may provide an optional field 'References: ' with the message-id of the original message you replied to (and sometimes the whole chain).

    I have tested with Thunderbird for Mac and NewsTapLite for iOS and both passed the correct 'References: ' header. Jamnntpd/smapinntpd will look up that message-id from the 'Reference: ' header in the JAM database and will extract the 'From' field of that message. That 'From' name will become a 'To' field of the newly posted message. That 'From' name will also be used as initials when smart quoting feature is enabled.

    Best Regards, Nil
    --- GoldED+/LNX 1.1.5
    * Origin: -=NIL BBS=- (2:5015/46)
  • From Tommi Koivula@2:221/360 to Nil Alexandrov on Fri Jan 3 09:27:55 2020

    Nil Alexandrov <0@46.5015.2> wrote:

    >> Should we continue using smapinntpd then?
    TK> That might be a good idea. At least in 64bit linux.

    Looks like smapi version is the logical continuation of the project, though could have been done as a build option, link with JAMLIB or SMAPI. Hope can use
    this echo conference for SmapiNNTPd related stuff.

    This is the most perfect echo for smapinntpd too. ;)

    Here's my list of TODO ;-)

    * Socket reuse (just one line fix, otherwise you need to wait a few mins after
    restart).

    I have noticed this too, but it happens only when the server is closed when users online. Nice to be fixed anyway.

    * Having been integrated with Husky project, specifically with SMAPI library,
    so why not using the fidoconf to read out groups.

    The current perl script fidoconfig2jamnntpd.pl works fine but why not. :)

    'Tommi

    --- Sylpheed 3.7.0 (GTK+ 2.24.30; i686-pc-mingw32)
    * Origin: nntp://rbb.fidonet.fi - Lake Ylo - Finland (2:221/360.0)
  • From Tommi Koivula@2:221/360 to Nil Alexandrov on Fri Jan 3 09:36:27 2020

    Nil Alexandrov <0@46.5015.2> wrote:

    Do you expect that jamnntpd/smapinntpd would go ahead and find out the
    name from the original message to which the reply is being posted?

    Not sure, but I think it does some reading of the message base. Maybe it uses the "References:" field to update reply links in JAM and Squish bases. It may also read the from name if "X-Comment-To:" does not exist.

    Just my thoughts... Anyway, replying works ok at least with Thunderbird, HotDogED and Sylpheed...

    'Tommi

    --- Sylpheed 3.7.0 (GTK+ 2.24.30; i686-pc-mingw32)
    * Origin: nntp://rbb.fidonet.fi - Lake Ylo - Finland (2:221/360.0)
  • From Tommi Koivula@2:221/0 to Nil Alexandrov on Fri Jan 3 09:42:14 2020
    On 03.01.2020 8:21, Nil Alexandrov - Fabio Bizzi :

    I have looked into the implementation details of what goes into
    Fidonet 'To' field when you follow-up on (reply to) a message in jamnntpd/smapinntpd.

    When you view an article, the 'To' field from the JAM message will
    show up as an optional 'X-Comment-To:' header.

    When you post an article as a result of a follow-up, your client may provide an optional field 'References: ' with the message-id of the original message you replied to (and sometimes the whole chain).

    I have tested with Thunderbird for Mac and NewsTapLite for iOS and
    both passed the correct 'References: ' header. Jamnntpd/smapinntpd
    will look up that message-id from the 'Reference: ' header in the JAM database and will extract the 'From' field of that message. That
    'From' name will become a 'To' field of the newly posted message.
    That 'From' name will also be used as initials when smart quoting
    feature is enabled.

    :D :D

    'Tommi

    ---
    * Origin: smapinntp://rpi.rbb.bbs.fi (2:221/0)
  • From Tommi Koivula@2:221/0 to Nil Alexandrov on Fri Jan 3 10:07:26 2020
    On 02.01.2020 23:23, Nil Alexandrov wrote:

    @@ -460,6 +460,17 @@ int main(int argc, char **argv)
           exit(10);
        }

    +   int enable = 1;
    +   if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &enable, sizeof(int)) < 0)
    +   {
    +      uchar err[200];
    +
    +      os_showerror("Failed to reuse address/port: %s",os_strerr(os_errno(),err,200));
    +      os_free();
    +      freeargs();
    +      exit(10);
    +   }
    +
        memset(&local, 0, sizeof(local) );

        local.sin_family = AF_INET;


    Thanks! :)

    ---
    * Origin: smapinntp://rpi.rbb.bbs.fi (2:221/0)