ykaliuta / fidogate

FidoGate
GNU General Public License v2.0
12 stars 6 forks source link

Generate the full chain in the References field #22

Open evs38 opened 2 years ago

evs38 commented 2 years ago

Is it possible to generate the full thread chain in the References field (header) when doing ftn2rfc? RFC2822 says:

The "References:" field will contain the contents of the parent's "References:" field (if any) followed by the contents of the parent's "Message-ID:" field (if any). If the parent message does not contain a "References:" field but does have an "In-Reply-To:" field containing a single message identifier, then the "References:" field will contain the contents of the parent's "In-Reply-To:" field followed by the contents of the parent's "Message-ID:" field (if any). If the parent has none of the "References:", "In-Reply-To:", or "Message-ID:" fields, then the new message will have no "References:" field.

I know that the References field's message-ids chain cannot be included unsing just only the FTN messages (because there are none of them), so it should be looked up from the innd grepgistory/sm like the xct wrapper does with "From:" fields. So, the best way I see is to include one more processing wrapper into the innd batches which will complement the full References: chain with message-ids from parent messages.

How does it work at the moment? Only the parent message-id is included in the References field, without contents of the parent's "References" fields.

Why this issue is important? With the full References in RFC messages path there will be no more teared and broken threads in NNTP clients with bad threads building alghorithms.

ykaliuta commented 2 years ago

It routes the messages to be gated on itself and when it does packing of them it actually performs gating, it's configured in 'packing', default is:

progn gate "/usr/lib/fidogate/ftn2rfc -i -x /usr/lib/fidogate/ftninpost -l %s"

So, it calls ftn2rfc which converts messages to *.rfc files and then calls ftninpost for posting them with rnews or sendmail (configured, FTNInSendmail, FTNInRnews)

Using another program instead of ftninpost, or instead of rnews is possible.