• How to permit user to set the right part of message-id

    From LaLibreParole@21:1/5 to All on Sun Sep 18 23:42:43 2022
    Hi,

    What is the parameter to allow user to customize right part of
    the message-id field when posting a message ?

    I don't see the right parameter to do that in inn.conf

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From John Levine@21:1/5 to vrai.ou.faux@laposte.net on Sun Sep 18 21:51:50 2022
    It appears that LaLibreParole <vrai.ou.faux@laposte.net> said:
    Hi,

    What is the parameter to allow user to customize right part of
    the message-id field when posting a message ?

    If you post a message that already has a Message-ID, inn won't change
    it. It'll add a Message-ID in the usual case that there isn't one.

    --
    Regards,
    John Levine, johnl@taugh.com, Primary Perpetrator of "The Internet for Dummies",
    Please consider the environment before reading this e-mail. https://jl.ly

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From LaLibreParole@21:1/5 to All on Mon Sep 19 00:29:32 2022
    John Levine <johnl@taugh.com> composa la prose suivante:

    It appears that LaLibreParole <vrai.ou.faux@laposte.net> said:
    Hi,

    What is the parameter to allow user to customize right part of
    the message-id field when posting a message ?

    If you post a message that already has a Message-ID, inn won't change
    it.

    You're right, thank's


    It'll add a Message-ID in the usual case that there isn't one.

    And in this case, inn will use something_uniq@machinename.domain
    Is it possible to suppress "machinename" ?

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Russ Allbery@21:1/5 to vrai.ou.faux@laposte.net on Sun Sep 18 17:32:51 2022
    LaLibreParole <vrai.ou.faux@laposte.net> writes:

    And in this case, inn will use something_uniq@machinename.domain
    Is it possible to suppress "machinename" ?

    Set domain in the readers.conf access stanza to whatever you want to use
    on the right-hand side of message IDs.

    --
    Russ Allbery (eagle@eyrie.org) <https://www.eyrie.org/~eagle/>

    Please post questions rather than mailing me directly.
    <https://www.eyrie.org/~eagle/faqs/questions.html> explains why.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From LaLibreParole@21:1/5 to All on Mon Sep 19 19:34:48 2022
    Russ Allbery <eagle@eyrie.org> composa la prose suivante:

    LaLibreParole <vrai.ou.faux@laposte.net> writes:

    And in this case, inn will use something_uniq@machinename.domain
    Is it possible to suppress "machinename" ?

    Set domain in the readers.conf access stanza to whatever you want to use
    on the right-hand side of message IDs.

    I didn't succeed: it also adds the name of the server machine.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Julien_=c3=89LIE?=@21:1/5 to All on Mon Sep 19 22:28:54 2022
    Bonsoir LaLibreParole,

    And in this case, inn will use something_uniq@machinename.domain
    Is it possible to suppress "machinename" ?

    Set domain in the readers.conf access stanza to whatever you want to use
    on the right-hand side of message IDs.

    I didn't succeed: it also adds the name of the server machine.

    Do you happen to also have the domain parameter set in inn.conf to the
    same value as the one you added to readers.conf? (If that's the case, I
    think it won't be taken into account. Try to unset the domain parameter
    in inn.conf, and only keep the one in readers.conf.)

    --
    Julien ÉLIE

    « Même avec Dieu, il ne faut pas tenter le Diable. » (Raymond Devos)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Julien_=c3=89LIE?=@21:1/5 to All on Mon Sep 19 23:43:29 2022
    Bonsoir LaLibreParole,

    Do you happen to also have the domain parameter set in inn.conf to the
    same value as the one you added to readers.conf?

    yes.

    (If that's the case, I think it won't be taken into account.

    You're right !

    the solution: put two different values: one in inn.conf
    and a different one in readers.conf.

    I don't know why we do that comparison when generating Message-IDs. If
    domain is set in both inn.conf and readers.conf to the same value, we
    take the FQDN. If domain is not set in inn.conf but is set in
    readers.conf, or both are set and different, we take the one in
    readers.conf.
    I would tend to take the one from readers.conf anyway. As it is forced
    in readers.conf, there may be a reason; inn.conf documentation says to
    have a look at domain (or virtualhost) in readers.conf to change the
    righthand side of autogenerated Message-IDs, but that special rule is
    not mentioned. I would just drop it...

    --
    Julien ÉLIE

    « Une robe de femme doit être comme une plaidoirie : assez longue pour
    couvrir le sujet, assez courte pour être suivie. »

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From LaLibreParole@21:1/5 to All on Mon Sep 19 23:19:05 2022
    Julien ÉLIE <iulius@nom-de-mon-site.com.invalid> composa la prose suivante:

    Bonsoir LaLibreParole,

    And in this case, inn will use something_uniq@machinename.domain
    Is it possible to suppress "machinename" ?

    Set domain in the readers.conf access stanza to whatever you want to use >>> on the right-hand side of message IDs.

    I didn't succeed: it also adds the name of the server machine.

    Do you happen to also have the domain parameter set in inn.conf to the
    same value as the one you added to readers.conf?

    yes.

    (If that's the case, I think it won't be taken into account.

    You're right !

    Try to unset the domain parameter in inn.conf, and only
    keep the one in readers.conf.)

    If i do that, inn does not start and "incheck" say:
    "innconfval: hostname does not resolve or domain not set in inn.conf"

    But you gave me the solution: put two different values: one in inn.conf
    and a different one in readers.conf.

    Thanks Julien and Russ :-)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From LaLibreParole@21:1/5 to All on Mon Sep 19 23:55:36 2022
    Julien ÉLIE <iulius@nom-de-mon-site.com.invalid> composa la prose suivante:

    Bonsoir LaLibreParole,

    Do you happen to also have the domain parameter set in inn.conf to the
    same value as the one you added to readers.conf?

    yes.

    (If that's the case, I think it won't be taken into account.

    You're right !

    the solution: put two different values: one in inn.conf
    and a different one in readers.conf.

    I don't know why we do that comparison when generating Message-IDs. If >domain is set in both inn.conf and readers.conf to the same value, we
    take the FQDN. If domain is not set in inn.conf but is set in
    readers.conf, or both are set and different, we take the one in
    readers.conf.

    Yes.
    There another curious thing.

    When domain is set in inn.conf and not in readers.conf,
    the message-id has the form "machin.domain"

    When domain is set in inn.conf and in readers.conf but different,
    the message-id has the form "domain" (take from reader.conf)

    Is there a reason for this different behavior ?

    I would tend to take the one from readers.conf anyway. As it is forced
    in readers.conf, there may be a reason; inn.conf documentation says to
    have a look at domain (or virtualhost) in readers.conf to change the >righthand side of autogenerated Message-IDs, but that special rule is
    not mentioned. I would just drop it...

    I think it's a good idea.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Russ Allbery@21:1/5 to iulius@nom-de-mon-site.com.invalid on Mon Sep 19 15:24:49 2022
    Julien ÉLIE <iulius@nom-de-mon-site.com.invalid> writes:

    I don't know why we do that comparison when generating Message-IDs. If domain is set in both inn.conf and readers.conf to the same value, we
    take the FQDN. If domain is not set in inn.conf but is set in
    readers.conf, or both are set and different, we take the one in
    readers.conf.

    Yeah, I was going to say that seemed weird. I'm not sure why we ended up
    doing things that way, but it doesn't make sense to me. If domain is set
    in readers.conf, we should just use it.

    I would tend to take the one from readers.conf anyway. As it is forced
    in readers.conf, there may be a reason; inn.conf documentation says to
    have a look at domain (or virtualhost) in readers.conf to change the righthand side of autogenerated Message-IDs, but that special rule is
    not mentioned. I would just drop it...

    BTW, I had a bit of a hard time following the documentation, because
    inn.conf says to set domain in readers.conf but then domain isn't
    documented in readers.conf except in the list of inn.conf settings that
    can also be set there.

    If the inn.conf documentation is correct, the domain setting is ignored if inn_getfqdn() succeeds, which also seems a bit weird. It feels like an expicitly-set configuration option should override whatever we discover
    while probing around on the system.

    I found all of this surprisingly confusing! I'm sure it all made sense to
    me at some point fifteen years ago.

    I think the right result may be:

    * Use domain unconditionally for forming message IDs if it's set in
    readers.conf.

    * Use domain if it's set in inn.conf, regardless of what we can discover
    from other system calls. (This is backwards-incompatible, so maybe not
    on the stable branch.)

    * Document domain as a first-class configuration parameter for access
    groups in readers.conf, saying that it changes the way message IDs are
    constructed. (I'm not sure if it does anything else?)

    --
    Russ Allbery (eagle@eyrie.org) <https://www.eyrie.org/~eagle/>

    Please post questions rather than mailing me directly.
    <https://www.eyrie.org/~eagle/faqs/questions.html> explains why.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?yamo'?=@21:1/5 to All on Tue Sep 20 05:49:00 2022
    Hi,
    Russ Allbery a écrit :

    * Document domain as a first-class configuration parameter for access
    groups in readers.conf, saying that it changes the way message IDs are
    constructed. (I'm not sure if it does anything else?)

    Changing it, add the domain value to the Path for messages added by nnrpd
    and when getting messages with a client of nnrpd.

    --
    Stéphane

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Julien_=c3=89LIE?=@21:1/5 to All on Tue Sep 20 10:14:11 2022
    Bonjour LaLibreParole,

    If "virtualhost" is not present it only modify the path in injection info. For example:
    With virtualhost: "injection-Info: machinename.readersconfDomain"
    Without virtualhost: "injection-Info: machinename.InnConfDomain"

    it's a pity that we can't delete the name of the machine at this place

    It's also a behaviour, already dating back to NNTP-Posting-Host, that
    should be changed, following a similar algorithm as the one suggested by
    Russ for Message-ID (directly take domain from readers.conf and inn.conf
    in that order, and fall back to FQDN otherwise).

    --
    Julien ÉLIE

    « – Mais je leur ai simplement demandé si c'était la bonne route !!!
    – Ils nous ont fait une 'éponse de No'mand ! » (Astérix)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From LaLibreParole@21:1/5 to All on Tue Sep 20 09:55:26 2022
    yamo' <user@tld.invalid> composa la prose suivante:

    Hi,
    Russ Allbery a écrit :

    * Document domain as a first-class configuration parameter for access
    groups in readers.conf, saying that it changes the way message IDs are
    constructed. (I'm not sure if it does anything else?)

    Changing it, add the domain value to the Path for messages added by nnrpd
    and when getting messages with a client of nnrpd.

    No: only if "virtualhost" is set to true in reader.conf.

    If "virtualhost" is not present it only modify the path in injection info.
    For example:
    With virtualhost: "injection-Info: machinename.readersconfDomain"
    Without virtualhost: "injection-Info: machinename.InnConfDomain"

    it's a pity that we can't delete the name of the machine at this place

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Julien_=c3=89LIE?=@21:1/5 to All on Tue Sep 20 10:10:24 2022
    Bonjour Stéphane,

    * Document domain as a first-class configuration parameter for access
    groups in readers.conf, saying that it changes the way message IDs are
    constructed. (I'm not sure if it does anything else?)

    Changing it, add the domain value to the Path for messages added by nnrpd
    and when getting messages with a client of nnrpd.

    Only when virtualhost is also set to true!

    I agree, Russ, that domain should be documented as a first-class
    configuration parameter, like virtualhost is.


    When virtualhost is set to true, domain is used in:
    - Xref,
    - Path but only in the case of pathhost being the same in inn.conf and readers.conf, to better differentiate virtual hosts.

    In all cases, domain is used in:
    - Message-ID,
    - Injection-Info (the path identity at the beginning of that header field),
    - the e-mail address at the end of the HELP command ("Report problems to <usenet@DOMAIN>.")

    --
    Julien ÉLIE

    « Pas encore uici, hélas, pas tout à fait uici… » (César)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From LaLibreParole@21:1/5 to All on Tue Sep 20 10:03:16 2022
    yamo' <user@tld.invalid> composa la prose suivante:

    Hi,
    Russ Allbery a écrit :

    * Document domain as a first-class configuration parameter for access
    groups in readers.conf, saying that it changes the way message IDs are
    constructed. (I'm not sure if it does anything else?)

    Changing it, add the domain value to the Path for messages added by nnrpd
    and when getting messages with a client of nnrpd.

    No: only if "virtualhost" is also set to true in reader.conf.

    If "virtualhost" is not present it only modify the path in injection info.
    For example:
    With virtualhost: "injection-Info: machinename.readersconfDomain"
    Without virtualhost: "injection-Info: machinename.InnConfDomain"

    it's a pity that we can't delete the name of the machine at this place

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Julien_=c3=89LIE?=@21:1/5 to All on Tue Sep 20 10:18:42 2022
    Hi Russ,

    I would tend to take the one from readers.conf anyway. As it is forced
    in readers.conf, there may be a reason; inn.conf documentation says to
    have a look at domain (or virtualhost) in readers.conf to change the
    righthand side of autogenerated Message-IDs, but that special rule is
    not mentioned. I would just drop it...

    BTW, I had a bit of a hard time following the documentation, because
    inn.conf says to set domain in readers.conf but then domain isn't
    documented in readers.conf except in the list of inn.conf settings that
    can also be set there.

    I noticed the same difficulty. It definitely needs improving; I'll have
    a look.


    If the inn.conf documentation is correct, the domain setting is ignored if inn_getfqdn() succeeds, which also seems a bit weird. It feels like an expicitly-set configuration option should override whatever we discover
    while probing around on the system.

    Yes, I agree.


    I think the right result may be:

    * Use domain unconditionally for forming message IDs if it's set in
    readers.conf.

    * Use domain if it's set in inn.conf, regardless of what we can discover
    from other system calls. (This is backwards-incompatible, so maybe not
    on the stable branch.)

    And run the current call to inn_fqdn() if domain is unset in both
    readers.conf and inn.conf.

    A similar algorithm should also be done for Injection-Info, as discussed afterwards in this thread.

    --
    Julien ÉLIE

    « Vinum bonum laetificat cor hominis. »

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Julien_=c3=89LIE?=@21:1/5 to All on Tue Sep 20 12:00:51 2022
    Hi Russ,

    I found all of this surprisingly confusing! I'm sure it all made sense to
    me at some point fifteen years ago.

    Digging in the archives, I found out this message:

    https://lists.isc.org/mailman/htdig/inn-workers/1999-September/000423.html

    """
    Suppose you've got a news farm of twenty-odd
    machines hiding behind news.example.com. You probably want just news.example.com in e-mail addresses, but if you use that for message ID generation as well, doesn't that then run a non-trivial risk of duplicate message IDs?

    The reason to use the FQDN is so that you can be fairly sure no other
    system is generating message IDs in the same namespace....
    """

    Maybe one of the reasons for using FQDN instead of domain by default?

    Besides, it could be worthwhile adding a check that the domain parameter (inn.conf or readers.conf) contains valid characters for a Message-ID...
    and fall back to FQDN otherwise (hoping that FQDN also returns a
    string suitable for a Message-ID!).



    I also found out:

    https://lists.isc.org/mailman/htdig/inn-workers/2002-August/010116.html

    """
    There is the "domain" keyword in inn.conf to set the domain name if (and
    only if) gethost*name(3) fail. This does not work for me.

    I tried the same. I think this should be taken as default if domain isn't defined in readers.conf.

    The reason why we didn't do that a while back is because that's not what
    domain was meant to be. domain was the *domain* name (to which the host
    name should be prepended) and is there as a settable parameter because of
    sites with old or broken DNS.

    domain in readers.conf is something different. :/

    I suppose we could decide that there aren't any hosts around any more that
    are so old that INN can't figure out the right domain name (although I'm
    not sure this is true for some weird local configurations) and that domain could be recycled to set the local host name. Although if we're going to
    do that, I'd rather just remove the domain parameter and add a new one.
    Like, say, hostname. :)
    """




    When all of this has been stated, there will also be a change to make in
    the FAQ:
    https://www.eyrie.org/~eagle/faqs/inn.html#S6.6

    """
    6.6. Change the domain used for message IDs

    By default, any message IDs generated by INN will use the domain of the
    local system for the right-hand-side of the message ID. In some cases,
    this isn't desirable for various reasons (the server may have an
    internal name that doesn't make sense on Usenet at large, or one may not
    want to expose the name of the server).

    In INN 2.3.3 and later, you can set virtualhost: to true in an access
    stanza of readers.conf and then set domain: in the same stanza, and all
    posts coming from connections to which that access stanza applies will
    use that domain to generate message IDs. So if you need to change the
    domain used to generate message IDs for every local post from your
    server, just add virtualhost: and domain: keys to every access stanza in readers.conf.

    This is really overkill for this option, and eventually the domain:
    parameter in inn.conf will probably be changed to allow this to be
    modified for the whole server. (Right now, domain: in inn.conf means
    something completely different.)
    """


    --
    Julien ÉLIE

    « César, c'est un Jules tout de même ! » (Astérix)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Julien_=c3=89LIE?=@21:1/5 to All on Tue Sep 20 12:23:52 2022
    Bonjour LaLibreParole,

    If "virtualhost" is not present it only modify the path in injection
    info. > For example:
    With virtualhost: "injection-Info: machinename.readersconfDomain"
    Without virtualhost: "injection-Info: machinename.InnConfDomain"

    it's a pity that we can't delete the name of the machine at this
    place
    It's also a behaviour, dating back to the obsolete X-Trace header field,
    that should be changed and follow a similar algorithm as the one
    suggested by Russ for Message-ID (directly take domain from readers.conf
    and inn.conf in that order, and fall back to FQDN otherwise).

    --
    Julien ÉLIE

    « – Mais je leur ai simplement demandé si c'était la bonne route !!!
    – Ils nous ont fait une 'éponse de No'mand ! » (Astérix)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From yamo'@21:1/5 to All on Tue Sep 20 13:59:46 2022
    Hi,

    LaLibreParole a tapoté le 20/09/2022 10:03:
    No: only if "virtualhost" is also set to true in reader.conf.

    Without virtualhost I haven't succeeded in configuring it...
    Now I'm not using it. It may be broken in 2.6.4?

    --
    Stéphane
    Sorry for my bad English.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Russ Allbery@21:1/5 to iulius@nom-de-mon-site.com.invalid on Tue Sep 20 08:53:32 2022
    Julien ÉLIE <iulius@nom-de-mon-site.com.invalid> writes:

    Digging in the archives, I found out this message:

    https://lists.isc.org/mailman/htdig/inn-workers/1999-September/000423.html

    """
    Suppose you've got a news farm of twenty-odd
    machines hiding behind news.example.com. You probably want just news.example.com in e-mail addresses, but if you use that for message ID generation as well, doesn't that then run a non-trivial risk of duplicate message IDs?

    The reason to use the FQDN is so that you can be fairly sure no other
    system is generating message IDs in the same namespace....
    """

    Ah, hm. Yes, INN's mesage ID generation algorithm is not great and we
    could indeed get duplicates if multiple hosts are using the same
    right-hand side.

    Besides, it could be worthwhile adding a check that the domain parameter (inn.conf or readers.conf) contains valid characters for a Message-ID...
    and fall back to FQDN otherwise (hoping that FQDN also returns a string suitable for a Message-ID!).

    I think if domain has invalid characters we should probably just abort
    with a fatal error, assuming it's worth checking for this. That seems
    like a basic configuration error we should just make people fix.

    I also found out:

    https://lists.isc.org/mailman/htdig/inn-workers/2002-August/010116.html

    """
    There is the "domain" keyword in inn.conf to set the domain name if (and >>> only if) gethost*name(3) fail. This does not work for me.

    I tried the same. I think this should be taken as default if domain isn't
    defined in readers.conf.

    The reason why we didn't do that a while back is because that's not what domain was meant to be. domain was the *domain* name (to which the host
    name should be prepended) and is there as a settable parameter because of sites with old or broken DNS.

    domain in readers.conf is something different. :/

    I suppose we could decide that there aren't any hosts around any more that are so old that INN can't figure out the right domain name (although I'm
    not sure this is true for some weird local configurations) and that domain could be recycled to set the local host name. Although if we're going to
    do that, I'd rather just remove the domain parameter and add a new one.
    Like, say, hostname. :)
    """

    Ah! Okay, yes, I agree with my past self, now that I've read my logic
    from 20 years ago. :) Maybe the root problem here is that we're
    overloading domain.

    I think the tactical fix to honor domain in readers.conf regardless of
    what domain in inn.conf is set to is the right fix for stable. I'm trying
    to figure out if we need to modify domain in inn.conf or if we should just configure message ID generation (and Injection-Info generation) in readers.conf. We can have it default to inn.conf's domain setting, but
    not on the grounds that that's the right place to set it, but that that's
    the right place to globally override broken DNS / gethostname.

    I don't agree with my past self that we can assume there are no more DNS
    issues of this type any more. If anything, they've gotten more common
    with the growth of internal networks. I think it's quite likely that
    there's someone out there with a server where inn_getfdqn() returns news.office.internal or some such thing, but they want to be news.foo.com
    on the Internet, and domain feels like the right overall config setting
    for that use case.

    What I'm coming around to for the next major release is that the parameter
    in readers.conf should just be called something different, since it is something different, and we should remove the domain setting in
    readers.conf (since it doesn't make sense to change the DNS resolution
    stuff in readers.conf since that will be a global problem, not just an
    nnrpd problem) and have innupgrade change it to some other name.

    The ABNF construct that's used in the standards for Xref is server-name.
    That's not a bad name for this setting; maybe the new readers.conf setting should be servername? Which normally you would want to set to the same
    thing as pathhost in inn.conf, but they're distinct settings since there
    are cases where you may want them to be different.

    The new setting should then have the same interaction with virtualhost
    that domain does, I think.

    When all of this has been stated, there will also be a change to make in
    the FAQ:
    https://www.eyrie.org/~eagle/faqs/inn.html#S6.6

    *laugh*. I didn't even read the FAQ or remember that there was a FAQ
    entry about this. Well, I was certainly right that I did understand all
    of this stuff at some point in the past and then forgot!

    --
    Russ Allbery (eagle@eyrie.org) <https://www.eyrie.org/~eagle/>

    Please post questions rather than mailing me directly.
    <https://www.eyrie.org/~eagle/faqs/questions.html> explains why.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From LaLibreParole@21:1/5 to All on Tue Sep 20 22:23:25 2022
    yamo' <yamo@beurdin.invalid> composa la prose suivante:

    Hi,

    LaLibreParole a tapoté le 20/09/2022 10:03:
    No: only if "virtualhost" is also set to true in reader.conf.

    Without virtualhost I haven't succeeded in configuring it...
    Now I'm not using it. It may be broken in 2.6.4?

    Perhaps: i use 2.6.3-3
    The last in my ubuntu version.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Julien_=c3=89LIE?=@21:1/5 to All on Wed Sep 21 22:58:28 2022
    Hi Russ,

    INN's mesage ID generation algorithm is not great and we
    could indeed get duplicates if multiple hosts are using the same
    right-hand side.

    Do you think we should improve the generation of Message-IDs?
    They're currently based on the date, PID and a counter incrementing at
    each call. A quick improvement could be to also add for instance 6
    bytes from RAND_bytes() if OpenSSL support is available (which is most
    often the case I believe).


    Besides, it could be worthwhile adding a check that the domain parameter
    (inn.conf or readers.conf) contains valid characters for a Message-ID...
    and fall back to FQDN otherwise (hoping that FQDN also returns a string
    suitable for a Message-ID!).

    I think if domain has invalid characters we should probably just abort
    with a fatal error, assuming it's worth checking for this. That seems
    like a basic configuration error we should just make people fix.

    Yes, people should fix such a misconfiguration.


    I think the tactical fix to honor domain in readers.conf regardless of
    what domain in inn.conf is set to is the right fix for stable.

    I also agree; I'll do that.


    What I'm coming around to for the next major release is that the parameter
    in readers.conf should just be called something different, since it is something different, and we should remove the domain setting in
    readers.conf (since it doesn't make sense to change the DNS resolution
    stuff in readers.conf since that will be a global problem, not just an
    nnrpd problem) and have innupgrade change it to some other name. >
    The ABNF construct that's used in the standards for Xref is server-name. That's not a bad name for this setting; maybe the new readers.conf setting should be servername?

    Yes, servername looks like an appropriate name. It will be a useful improvement for the next major release.
    I propose to also have a servername parameter in inn.conf as inews
    generates Message-IDs (and currently uses the value of the domain
    parameter in inn.conf).
    And the value of servername can be overriden in readers.conf.


    Which normally you would want to set to the same
    thing as pathhost in inn.conf, but they're distinct settings since there
    are cases where you may want them to be different.

    The default value of servername in inn.conf (optional parameter) would
    then be pathhost (mandatory to set in inn.conf).

    --
    Julien ÉLIE

    « C'est une forêt vierge où la main de l'homme n'a jamais mis le pied. »

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From LaLibreParole@21:1/5 to All on Wed Sep 21 23:46:55 2022
    Julien ÉLIE <iulius@nom-de-mon-site.com.invalid> composa la prose suivante:

    Hi Russ,

    INN's mesage ID generation algorithm is not great and we
    could indeed get duplicates if multiple hosts are using the same
    right-hand side.

    Do you think we should improve the generation of Message-IDs?
    They're currently based on the date, PID and a counter incrementing at
    each call. A quick improvement could be to also add for instance 6
    bytes from RAND_bytes() if OpenSSL support is available (which is most
    often the case I believe).


    Besides, it could be worthwhile adding a check that the domain parameter >>> (inn.conf or readers.conf) contains valid characters for a Message-ID... >>> and fall back to FQDN otherwise (hoping that FQDN also returns a string
    suitable for a Message-ID!).

    I think if domain has invalid characters we should probably just abort
    with a fatal error, assuming it's worth checking for this. That seems
    like a basic configuration error we should just make people fix.

    Yes, people should fix such a misconfiguration.


    I think the tactical fix to honor domain in readers.conf regardless of
    what domain in inn.conf is set to is the right fix for stable.

    I also agree; I'll do that.


    What I'm coming around to for the next major release is that the parameter >> in readers.conf should just be called something different, since it is
    something different, and we should remove the domain setting in
    readers.conf (since it doesn't make sense to change the DNS resolution
    stuff in readers.conf since that will be a global problem, not just an
    nnrpd problem) and have innupgrade change it to some other name. >
    The ABNF construct that's used in the standards for Xref is server-name.
    That's not a bad name for this setting; maybe the new readers.conf setting >> should be servername?

    Yes, servername looks like an appropriate name. It will be a useful >improvement for the next major release.
    I propose to also have a servername parameter in inn.conf as inews
    generates Message-IDs (and currently uses the value of the domain
    parameter in inn.conf).
    And the value of servername can be overriden in readers.conf.


    Which normally you would want to set to the same
    thing as pathhost in inn.conf, but they're distinct settings since there
    are cases where you may want them to be different.

    The default value of servername in inn.conf (optional parameter) would
    then be pathhost (mandatory to set in inn.conf).

    it looks good !

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Marc SCHAEFER@21:1/5 to iulius@nom-de-mon-site.com.invalid on Thu Sep 22 07:14:26 2022
    Julien ÉLIE <iulius@nom-de-mon-site.com.invalid> wrote:
    A quick improvement could be to also add for instance 6
    bytes from RAND_bytes() if OpenSSL support is available (which is most
    often the case I believe).

    Yes, that would be great.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From LaLibreParole@21:1/5 to All on Thu Sep 22 22:46:10 2022
    LaLibreParole <vrai.ou.faux@laposte.net> composa la prose suivante:

    yamo' <user@tld.invalid> composa la prose suivante:

    Hi,
    Russ Allbery a écrit :

    * Document domain as a first-class configuration parameter for access
    groups in readers.conf, saying that it changes the way message IDs are >>> constructed. (I'm not sure if it does anything else?)

    Changing it, add the domain value to the Path for messages added by nnrpd >>and when getting messages with a client of nnrpd.

    No: only if "virtualhost" is also set to true in reader.conf.

    If "virtualhost" is not present it only modify the path in injection info. >For example:
    With virtualhost: "injection-Info: machinename.readersconfDomain"
    Without virtualhost: "injection-Info: machinename.InnConfDomain"

    it's a pity that we can't delete the name of the machine at this place

    This day, i update ubuntu and inn2 to version 2.6.4-2.
    The name of the machine has disappeared from injection-info :-)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Adam H. Kerman@21:1/5 to Russ Allbery on Fri Sep 23 04:53:27 2022
    Russ Allbery <eagle@eyrie.org> wrote:
    Julien <iulius@nom-de-mon-site.com.invalid> writes:

    Digging in the archives, I found out this message:

    https://lists.isc.org/mailman/htdig/inn-workers/1999-September/000423.html

    """
    Suppose you've got a news farm of twenty-odd
    machines hiding behind news.example.com. You probably want just >>news.example.com in e-mail addresses, but if you use that for message ID >>generation as well, doesn't that then run a non-trivial risk of duplicate >>message IDs?

    The reason to use the FQDN is so that you can be fairly sure no other >>system is generating message IDs in the same namespace....
    """

    Ah, hm. Yes, INN's mesage ID generation algorithm is not great and we
    could indeed get duplicates if multiple hosts are using the same
    right-hand side.

    Can I ask a dumb question here?

    Let's assume the issue applies to hosts on different News sites. Either
    the News administrator or user decides there's a legitimate privacy reason
    that it's not desireable to use the working domain of the News server or
    the user's own host. With better random number generators available these
    days, is it possible to ensure uniqueness considering the left part of the Message-ID only if multiple News sites or users start to use domains in
    the right half that they don't uniquely control but are harmless to use,
    like literally example.com?

    As long as you are thinking about this, can you give some consideration
    to appending a check digit to the left part?

    A certain user I shall not name (but many of you know exactly whom I
    am talking about) has been forging other users, copying their Injection
    headers for preloading into the proto forged article which is injected
    through the News site that he uses. He typically adds crossposted
    newsgroups that the actual author did not crosspost to.

    The original Message-ID is preloaded as well, but he gets around
    clashing Message-IDs by prepending a character.

    A check digit might prevent that. Of course, he'll find all new ways to
    commit abuse.

    . . .

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Russ Allbery@21:1/5 to Adam H. Kerman on Thu Sep 22 22:36:43 2022
    "Adam H. Kerman" <ahk@chinet.com> writes:

    Let's assume the issue applies to hosts on different News sites. Either
    the News administrator or user decides there's a legitimate privacy
    reason that it's not desireable to use the working domain of the News
    server or the user's own host. With better random number generators
    available these days, is it possible to ensure uniqueness considering
    the left part of the Message-ID only if multiple News sites or users
    start to use domains in the right half that they don't uniquely control
    but are harmless to use, like literally example.com?

    Yes, assuming you have a good random number generator, any random number generator suitable for a cryptographic key will probably be good enough
    for this. The constraints are slightly different, but avoiding collisions across a fairly large space ends up looking somewhat similar to what you
    need to get protection against brute-force attacks.

    The general rule of thumb is that 128 bits is probably good enough for
    anything (although I will say that hashes these days have mostly gone to
    256 bits). With base64 encoding, that's fairly compact:

    4k2LUqc6SWY6vcGiWefcag@example.com

    Protection against collision is basically protection against a birthday
    attack, and thus grows with the square root of the message ID space. If I remember the math correctly, when there are 2^128 message IDs, you'll have
    a 50% chance of a collision in 2^64 message IDs, which is substantially
    larger than the number of Usenet messages there are ever likely to be. In practice, this should get you to much less than 50% chance, basically low enough that you don't have to care.

    Even if you think that might not be enough somehow, if you add a timestamp before the randomness, and you assume mostly non-malicious message ID generators, you reduce the chances of a collision to effectively nothing
    fairly easily, and now you don't care about how long Usenet will survive
    with unlimited retention because every second you move into a new message
    ID space. That gives you a message ID that looks something like:

    EmQM4tZ4$4k2LUqc6SWY6vcGiWefcag@example.com

    That takes the date as a number (20220922222200) and represents it in 6
    bytes, which is good enough for the next 10,000 years. With a timestamp,
    I'm pretty sure you could cut that down to 64 bits and still be pretty comfortable, which gives you something like:

    EmQM4tZ4$uYRo9tEy/80@example.com

    which is quite compact.

    As long as you are thinking about this, can you give some consideration
    to appending a check digit to the left part?

    A certain user I shall not name (but many of you know exactly whom I am talking about) has been forging other users, copying their Injection
    headers for preloading into the proto forged article which is injected through the News site that he uses. He typically adds crossposted
    newsgroups that the actual author did not crosspost to.

    The original Message-ID is preloaded as well, but he gets around
    clashing Message-IDs by prepending a character.

    A check digit might prevent that. Of course, he'll find all new ways to commit abuse.

    I'm not sure I understand how a check digit helps. The check digit won't
    match and... then what? You need some way to filter out the forged
    messages, but most people aren't going to be using some new message ID generation algorithm. Also, since the whole message is forged, that
    person can just make up a new message ID at the same domain with a good
    check digit.

    If the goal is for people to be able to opt in to forgery protection, some
    sort of public key signature is a more obvious choice.

    --
    Russ Allbery (eagle@eyrie.org) <https://www.eyrie.org/~eagle/>

    Please post questions rather than mailing me directly.
    <https://www.eyrie.org/~eagle/faqs/questions.html> explains why.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Adam H. Kerman@21:1/5 to Russ Allbery on Fri Sep 23 06:52:50 2022
    Russ Allbery <eagle@eyrie.org> wrote:
    "Adam H. Kerman" <ahk@chinet.com> writes:

    Let's assume the issue applies to hosts on different News sites. Either
    the News administrator or user decides there's a legitimate privacy
    reason that it's not desireable to use the working domain of the News >>server or the user's own host. With better random number generators >>available these days, is it possible to ensure uniqueness considering
    the left part of the Message-ID only if multiple News sites or users
    start to use domains in the right half that they don't uniquely control
    but are harmless to use, like literally example.com?

    Yes, assuming you have a good random number generator, any random number >generator suitable for a cryptographic key will probably be good enough
    for this. The constraints are slightly different, but avoiding collisions >across a fairly large space ends up looking somewhat similar to what you
    need to get protection against brute-force attacks. . . .

    Thank you very much for the detailed explanation. I appreciate it.

    As long as you are thinking about this, can you give some consideration
    to appending a check digit to the left part?

    A certain user I shall not name (but many of you know exactly whom I am >>talking about) has been forging other users, copying their Injection >>headers for preloading into the proto forged article which is injected >>through the News site that he uses. He typically adds crossposted >>newsgroups that the actual author did not crosspost to.

    The original Message-ID is preloaded as well, but he gets around
    clashing Message-IDs by prepending a character.

    A check digit might prevent that. Of course, he'll find all new ways to >>commit abuse.

    I'm not sure I understand how a check digit helps. The check digit won't >match and... then what? You need some way to filter out the forged
    messages, but most people aren't going to be using some new message ID >generation algorithm. Also, since the whole message is forged, that
    person can just make up a new message ID at the same domain with a good
    check digit.

    Fair enough. Suggestion withdrawn

    If the goal is for people to be able to opt in to forgery protection, some >sort of public key signature is a more obvious choice.

    Same issue. No reader checks.

    He was preserving the original article's text but adding the crosspost.

    The problem is that the News site was allowing the forged articles to be injected despite the fact of the preloaded Injection headers belongng to another News site, which was quite nonstandard indeed.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Russ Allbery@21:1/5 to Adam H. Kerman on Fri Sep 23 08:04:19 2022
    "Adam H. Kerman" <ahk@chinet.com> writes:
    Russ Allbery <eagle@eyrie.org> wrote:

    If the goal is for people to be able to opt in to forgery protection,
    some sort of public key signature is a more obvious choice.

    Same issue. No reader checks.

    Yeah, it's a real problem. We need something that's reasonable for
    servers to implement, at least in filters, but the problem with that is
    that somehow you need to bootstrap an identity management system since otherwise forgery is essentially undefined.

    This is basicallly "why Usenet stopped being popular" in a nutshell. It's
    not the only reason, but lots of things related to identity are, I think,
    the top reasons.

    *If* you can figure out what public keys to check against, public key signatures at least do work, technically. They can't be forged and
    provide the information you want. But that's a big if.

    The problem is that the News site was allowing the forged articles to be injected despite the fact of the preloaded Injection headers belongng to another News site, which was quite nonstandard indeed.

    Indeed, it violates a MUST in RFC 5537 section 3.5:

    2. It MUST reject any proto-article that does not have the proper
    mandatory header fields for a proto-article, that has Injection-
    Info or Xref header fields, that has a Path header field
    containing the "POSTED" <diag-keyword>, or that is not
    syntactically valid as defined by [RFC5536].

    --
    Russ Allbery (eagle@eyrie.org) <https://www.eyrie.org/~eagle/>

    Please post questions rather than mailing me directly.
    <https://www.eyrie.org/~eagle/faqs/questions.html> explains why.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Russ Allbery@21:1/5 to iulius@nom-de-mon-site.com.invalid on Fri Sep 23 08:21:52 2022
    Julien ÉLIE <iulius@nom-de-mon-site.com.invalid> writes:

    Do you think we should improve the generation of Message-IDs? They're currently based on the date, PID and a counter incrementing at each
    call. A quick improvement could be to also add for instance 6 bytes
    from RAND_bytes() if OpenSSL support is available (which is most often
    the case I believe).

    Yeah, something like that is a good idea, I think.

    INN's current algorithm is sort of interesting in that under most
    circumstances it will guarantee (as opposed to make probabilistically
    likely) unique message IDs, but only if the FQDN is unique. And it does
    that at the cost of using a global static variable, which is usually
    considered poor code, although INN uses static variables all over the
    place so it doesn't really matter.

    In theory, tossing the counter and the PID and replacing both with eight
    random bytes is better, since it doesn't rely as heavily on the uniqueness
    of the right-hand side. In practice, it feels weird because we're giving
    up designed uniqueness for probability! But it's probably still the right thing to do.

    I think this is the only use of the Radix32() function in INN as well,
    which doesn't assume that message IDs are case-sensitive. I see that we
    were worried about case-insensitive matching on message IDs when we wrote
    5536. That's unfortunate, since if you assume case-sensitivity, like I
    did in my other message, you could make the message ID a lot shorter.

    Yes, servername looks like an appropriate name. It will be a useful improvement for the next major release. I propose to also have a
    servername parameter in inn.conf as inews generates Message-IDs (and currently uses the value of the domain parameter in inn.conf). And the
    value of servername can be overriden in readers.conf.

    Ah, yes, I forgot about inews.

    One interesting wrinkle here: if serverhost and pathhost are set to
    different things, it's unclear what should go into Injection-Info. It
    looks like we never said. The ABNF grammar says it's a path-identity,
    which sort of implies it should be pathhost, but the grammar of course is identical for both elements.

    I suspect the right way to think of it is that serverhost is the identity
    of nnrpd and pathhost is the identity of innd, so it should be serverhost. (This is probably most interesting in the unusual configuration where you
    have a farm of nnrpd servers on different hosts all feeding into a central innd.)

    The default value of servername in inn.conf (optional parameter) would
    then be pathhost (mandatory to set in inn.conf).

    Yup, that sounds right. 99% of the time you're probably going to want to
    set them to the same thing.

    --
    Russ Allbery (eagle@eyrie.org) <https://www.eyrie.org/~eagle/>

    Please post questions rather than mailing me directly.
    <https://www.eyrie.org/~eagle/faqs/questions.html> explains why.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Julien_=c3=89LIE?=@21:1/5 to All on Fri Sep 23 23:46:03 2022
    Bonsoir LaLibreParole,

    If "virtualhost" is not present it only modify the path in injection info. >> For example:
    With virtualhost: "injection-Info: machinename.readersconfDomain"
    Without virtualhost: "injection-Info: machinename.InnConfDomain"

    it's a pity that we can't delete the name of the machine at this place

    This day, i update ubuntu and inn2 to version 2.6.4-2.
    The name of the machine has disappeared from injection-info :-)

    There was an improvement in INN 2.6.3 in the way INN gets the FQDN and
    handles local hostnames not in DNS. It may be the reason of the change
    you see when upgrading from a version < 2.6.3 to 2.6.4.

    At least, it solved your issue!

    --
    Julien ÉLIE

    « Tu te conduis comme un jeune marcassin qui aurait encore des dents de
    laie. » (Astérix)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Thomas Hochstein@21:1/5 to Russ Allbery on Sat Sep 24 17:05:01 2022
    Russ Allbery schrieb:

    INN's current algorithm is sort of interesting in that under most circumstances it will guarantee (as opposed to make probabilistically
    likely) unique message IDs, but only if the FQDN is unique.

    I don't think that's a problem because the FQDN should be unique anyway.

    In theory, tossing the counter and the PID and replacing both with eight random bytes is better, since it doesn't rely as heavily on the uniqueness
    of the right-hand side. In practice, it feels weird because we're giving
    up designed uniqueness for probability! But it's probably still the right thing to do.

    I'm not sure that's the right way to go. The probability of duplicates on correctly configured systems would increase, and this is a poor tradeoff
    for a decreased probability of duplicates on suboptimally configured
    systems.

    -thh
    --
    Do not go gentle into that good night.
    Rage, rage against the dying of the light.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Russ Allbery@21:1/5 to Thomas Hochstein on Sat Sep 24 08:35:26 2022
    Thomas Hochstein <thh@thh.name> writes:
    Russ Allbery schrieb:

    In theory, tossing the counter and the PID and replacing both with
    eight random bytes is better, since it doesn't rely as heavily on the
    uniqueness of the right-hand side. In practice, it feels weird because
    we're giving up designed uniqueness for probability! But it's probably
    still the right thing to do.

    I'm not sure that's the right way to go. The probability of duplicates
    on correctly configured systems would increase, and this is a poor
    tradeoff for a decreased probability of duplicates on suboptimally
    configured systems.

    The math implies that the chance of duplicates should actually go down
    because it's more likely that you'll have two systems with the same FQDN through some error or reuse an nnrpd PID within a second or have some
    other very low-probability event occur than that you'll have an accidental collision within a second in eight random bytes.

    But it's very not intuitive and I have a hard time making myself believe
    that.

    --
    Russ Allbery (eagle@eyrie.org) <https://www.eyrie.org/~eagle/>

    Please post questions rather than mailing me directly.
    <https://www.eyrie.org/~eagle/faqs/questions.html> explains why.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Russ Allbery@21:1/5 to iulius@nom-de-mon-site.com.invalid on Sat Sep 24 10:59:31 2022
    Julien ÉLIE <iulius@nom-de-mon-site.com.invalid> writes:

    Hi Russ,

    In theory, tossing the counter and the PID and replacing both with
    eight random bytes is better, since it doesn't rely as heavily on the
    uniqueness of the right-hand side. In practice, it feels weird because
    we're giving up designed uniqueness for probability! But it's probably
    still the right thing to do.

    Besides, on two different servers, OpenSSL will compute different seeds
    at startup (or better say the chance that the seeds are identical is negligible).

    Yeah, hopefully it's using /dev/urandom or getrandom(2) on most hosts.

    Radix32() only generates lower-case chars in the left-hand side. I
    don't understand the remark that it "doesn't assume that message IDs are case-sensitive": is it because it could also have used upper-case
    letters and therefore generating even smaller message IDs?

    Right, there's no reason to use a 32-character alphabet instead of a 64-character alphabet unless you're worried about case-insensitivity.
    (You have to be a little careful of the extra characters needed by base64
    since the default ones aren't always valid, but there's usually some
    alternate selection that will work.)

    Indeed, though RFC 5536 only worries about case-insensitive matching on
    the right-hand side:

    Some software will try to match the <id-right> of a <msg-id> in a
    case-insensitive fashion; some will match it in a case-sensitive
    fashion. Implementations MUST NOT generate a Message-ID where the
    only difference from another Message-ID is the case of characters in
    the <id-right> part.

    Oh! I misread that and thought it said the left-hand side. Yeah, that's
    fine then; it should be possible to assume case-sensitive message IDs, in
    which case if we switched to a 64-character alphabet for the encoding we
    could put substantial randomness, keep the existing elements of the
    message ID, and probably still make it shorter (or at least the same
    length).

    Yes, that's an wise view, and we can consider servername for the identity
    of nnrpd and pathhost for the identity of innd.
    Maybe your point is that the name of the parameter should be serverhost instead of the previously proposed servername?

    Whoops, no, that was just a mental error. I think servername is better;
    host is a bit confusing here.

    --
    Russ Allbery (eagle@eyrie.org) <https://www.eyrie.org/~eagle/>

    Please post questions rather than mailing me directly.
    <https://www.eyrie.org/~eagle/faqs/questions.html> explains why.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Julien_=c3=89LIE?=@21:1/5 to All on Sat Sep 24 19:47:18 2022
    Hi Russ,

    In theory, tossing the counter and the PID and replacing both with eight random bytes is better, since it doesn't rely as heavily on the uniqueness
    of the right-hand side. In practice, it feels weird because we're giving
    up designed uniqueness for probability! But it's probably still the right thing to do.

    Besides, on two different servers, OpenSSL will compute different seeds
    at startup (or better say the chance that the seeds are identical is negligible).


    I think this is the only use of the Radix32() function in INN as well,
    which doesn't assume that message IDs are case-sensitive.

    Radix32() only generates lower-case chars in the left-hand side. I
    don't understand the remark that it "doesn't assume that message IDs are case-sensitive": is it because it could also have used upper-case
    letters and therefore generating even smaller message IDs?


    I see that we
    were worried about case-insensitive matching on message IDs when we wrote 5536. That's unfortunate, since if you assume case-sensitivity, like I
    did in my other message, you could make the message ID a lot shorter.

    Indeed, though RFC 5536 only worries about case-insensitive matching on
    the right-hand side:

    Some software will try to match the <id-right> of a <msg-id> in a
    case-insensitive fashion; some will match it in a case-sensitive
    fashion. Implementations MUST NOT generate a Message-ID where the
    only difference from another Message-ID is the case of characters in
    the <id-right> part.


    Yes, servername looks like an appropriate name. It will be a useful
    improvement for the next major release. I propose to also have a
    servername parameter in inn.conf as inews generates Message-IDs (and
    currently uses the value of the domain parameter in inn.conf). And the
    value of servername can be overriden in readers.conf.

    Ah, yes, I forgot about inews.

    One interesting wrinkle here: if serverhost and pathhost are set to
    different things, it's unclear what should go into Injection-Info. It
    looks like we never said. The ABNF grammar says it's a path-identity,
    which sort of implies it should be pathhost, but the grammar of course is identical for both elements.

    I suspect the right way to think of it is that serverhost is the identity
    of nnrpd and pathhost is the identity of innd, so it should be serverhost. (This is probably most interesting in the unusual configuration where you have a farm of nnrpd servers on different hosts all feeding into a central innd.)

    Yes, that's an wise view, and we can consider servername for the
    identity of nnrpd and pathhost for the identity of innd.
    Maybe your point is that the name of the parameter should be serverhost
    instead of the previously proposed servername?

    --
    Julien ÉLIE

    « – Tu crois qu'ils auront du sanglier, dis ?
    – Faut pas te faire d'idées ; plus les armées sont puissantes, plus la
    nourriture est mauvaise. Ça maintient les guerriers de mauvaise
    humeur.
    – …
    – Je ne pensais pas que l'armée romaine était aussi puissante ! »
    (Astérix)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Franck@21:1/5 to All on Mon Sep 26 08:08:04 2022
    Hello,

    The session is generated when a client connects and remains bound to its > socket for its lifetime.
    To be more precise, session is generated when a client connect (and
    linked to the accepted socket) in a way (almost) like this :

    session = DATE + PID + INFO_PROCESSOR +
    INFO_INTERFACE_WHO_ACCEPT_CONNECTION + INFO_CLIENT

    Message-ID = <session.timestamp_arrival_gmt@fqdn>

    Franck

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Franck@21:1/5 to All on Mon Sep 26 07:36:27 2022
    Hello Julien,

    INN's mesage ID generation algorithm is not great and we
    could indeed get duplicates if multiple hosts are using the same
    right-hand side. >
    Do you think we should improve the generation of Message-IDs?
    They're currently based on the date, PID and a counter incrementing at
    each call.  A quick improvement could be to also add for instance 6
    bytes from RAND_bytes() if OpenSSL support is available (which is most
    often the case I believe).

    Although Spitfire News Server does not support virtual hosts, it uses
    this form of Message-Id:

    <session.timestamp_arrival_gmt@fqdn>

    The "Session" is a complex calculation based on information like "Date"
    and "PID" but also on other information from the hardware (Processor AND interface that accepts the client socket), which makes it unique to the "machine/interface" pair.

    The session is generated when a client connects and remains bound to its
    socket for its lifetime.

    If articles arrive from different sockets, the "session" makes a
    difference. If articles arrive from the same socket, the "timestamp"
    makes the difference.

    The PID and hardware information does the rest of the work to make the Message-ID (almost) unique in all cases.

    Franck

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Julien_=c3=89LIE?=@21:1/5 to All on Mon Sep 26 22:49:05 2022
    Hi Franck,

    Although Spitfire News Server does not support virtual hosts, it uses
    this form of Message-Id:

    <session.timestamp_arrival_gmt@fqdn>

    The "Session" is a complex calculation based on information like "Date"
    and "PID" but also on other information from the hardware (Processor AND interface that accepts the client socket), which makes it unique to the "machine/interface" pair.

    Are you sure that the information from the hardware will be different in
    a virtual private server (VPS)? Couldn't all the virtual machines have
    the same processor and interface name?

    --
    Julien ÉLIE

    « Lots of people want to ride with you in the limo, but what you want is
    someone who will take the bus with you when the limo breaks down. »
    (Oprah Winfrey)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Franck@21:1/5 to All on Tue Sep 27 06:58:54 2022
    Salut Julien,

    Are you sure that the information from the hardware will be different in
    a virtual private server (VPS)?  Couldn't all the virtual machines have
    the same processor and interface name?


    The generation of the "session" name is not only based on the
    "processor" and "interface" informations. There is a lot of other
    information taken into account to generate, at a given time, this
    "session" name.

    The list was not exhaustive, so I will detail it a little bit more:

    For the machine (Hardware) :

    - Processor information.
    - Network interface information (MAC address).

    For the machine (Software) :

    - Name of the Windows platform edition.
    - Windows serial number.
    - Date/time of Windows startup.

    For the service:

    - Start date/time.
    - PID.
    - IP address / FQDN.
    - Spitfire News Server serial number.

    For the client (Reader / Feed) :

    - IP of Network interface accepting the connection.
    - Date/time of connection.
    - Remote IP address of the client.
    - Remote port of the client.
    - Client's reverse resolution name.
    - Client account name (if any).

    This is how I like to kill a fly with a bazooka, and it takes no time to generate.

    For all this to be identical at any given time, chance really did it right!

    But since we don't play with chance, I took the precaution of writing:
    "To make the Message-ID (almost) unique in all cases".

    "Almost" was the precaution :-)

    Have nice day,
    Franck

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Franck@21:1/5 to All on Tue Sep 27 08:06:36 2022
    Salut Julien,

    Even if I am convinced that two articles sent on the same socket (one
    after one) cannot have the same timestamp to the nearest hundredth of a
    second, I have taken into account your remark (elsewhere) on the
    timestamp placed after the "session" name.

    Spitfire News Server now use this format :

    <session.number-of-items-submitted-during-the-same-session@fqdn>

    Btw, it's a good thing because it shorten the Message-ID :-)

    Have nice day,
    Franck

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Julien_=c3=89LIE?=@21:1/5 to All on Tue Sep 27 09:13:20 2022
    Salut Franck,

    Even if I am convinced that two articles sent on the same socket (one
    after one) cannot have the same timestamp to the nearest hundredth of a second, I have taken into account your remark (elsewhere) on the
    timestamp placed after the "session" name.

    :-)
    It is true that TAKETHIS can be pipelined contrary to POST, so the
    chance to POST more than 100 articles in one second is very small,
    contrary to a feed where we managed to exchange 140 articles in one
    second with TAKETHIS.

    A malicious poster may pipeline POST and achieve that rate, but it won't
    do any harm; his posts will just be discarded because of duplicate
    Message-IDs.


    Spitfire News Server now use this format :

    <session.number-of-items-submitted-during-the-same-session@fqdn>

    Btw, it's a good thing because it shorten the Message-ID :-)

    That's a good change then :-)
    <C63328ebc00293aaa.1@news.spitfire-nntp.fr>

    Thanks for your detailed explanation of what is present in the session
    number. Pretty complex with rare chances of collision.

    --
    Julien ÉLIE

    « Un poisson ! Mon règne pour un poisson ! » (Cétautomatix)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Franck@21:1/5 to All on Tue Sep 27 22:48:49 2022
    Bonsoir julien,

    :-)
    It is true that TAKETHIS can be pipelined contrary to POST, so the
    chance to POST more than 100 articles in one second is very small,
    contrary to a feed where we managed to exchange 140 articles in one
    second with TAKETHIS.

    I understand that you are making a comparison with TAKETHIS just to
    refer to the speed of transmission of articles since, in this case,
    there is no generation of Message-ID.
    A malicious poster may pipeline POST and achieve that rate, but it won't
    do any harm; his posts will just be discarded because of duplicate Message-IDs.


    I think a malicious poster will be confronted with one of the
    discussions we had about commands that cannot be pipelined, like POST.

    In this case, my implementation adopts part 3.5 of RFC3977 :

    If the specific description of a command says it "MUST NOT be
    pipelined", that command MUST end any pipeline of commands. That is,
    the client MUST NOT send any following command until it receives the
    CRLF at the end of the response from the command. The server MAY
    ignore any data received after the command and before the CRLF at the
    end of the response is sent to the client.


    My server does the check, and pipelining will be broken, so I think the
    client will be disconnected at some point, because of a timeout or for
    too many consecutive bad commands.

    I would give it a try...


    Franck

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Franck@21:1/5 to All on Sun Oct 9 05:24:40 2022
    Hello Russ,

    That takes the date as a number (20220922222200) and represents it in 6 bytes, which is good enough for the next 10,000 years. With a timestamp,
    I'm pretty sure you could cut that down to 64 bits and still be pretty comfortable, which gives you something like:

    EmQM4tZ4$uYRo9tEy/80@example.com

    Quickly implemented in Spitfire News Server for testing purposes.

    Message-ID: <EmQSD29Yka97hBQCPZo=@news.spitfire-nntp.fr>

    The result is only slightly larger than my previous format but I give it
    a chance :)

    Have nice day.
    Franck

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Russ Allbery@21:1/5 to Franck on Sat Oct 8 22:11:19 2022
    Franck <franck@email.invalid> writes:

    Hello Russ,

    That takes the date as a number (20220922222200) and represents it in 6
    bytes, which is good enough for the next 10,000 years. With a timestamp,
    I'm pretty sure you could cut that down to 64 bits and still be pretty
    comfortable, which gives you something like:
    EmQM4tZ4$uYRo9tEy/80@example.com

    Quickly implemented in Spitfire News Server for testing purposes.

    Message-ID: <EmQSD29Yka97hBQCPZo=@news.spitfire-nntp.fr>

    The result is only slightly larger than my previous format but I give it a chance :)

    Oh, since someone is actually using this, I should mention that I realized after my post that this is a kind of silly encoding of the date and you
    should just use seconds since epoch, which will carry the same information
    and be a lot more compact.

    Also, you can drop the = padding signs from the end of the base64 output.
    The amount of padding required can be calculated from the length of the
    string once you know it's base64-encoded, so it doesn't add any
    information.

    --
    Russ Allbery (eagle@eyrie.org) <https://www.eyrie.org/~eagle/>

    Please post questions rather than mailing me directly.
    <https://www.eyrie.org/~eagle/faqs/questions.html> explains why.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Franck@21:1/5 to All on Sun Oct 9 12:04:52 2022
    Hello Russ,

    Oh, since someone is actually using this, I should mention that I realized after my post that this is a kind of silly encoding of the date and you should just use seconds since epoch, which will carry the same information and be a lot more compact.

    Also, you can drop the = padding signs from the end of the base64 output.
    The amount of padding required can be calculated from the length of the string once you know it's base64-encoded, so it doesn't add any
    information.

    Done.

    Message ID : <Y0KVxHLrtq6oCVJ2@news.spitfire-nntp.fr>

    Now, the result is slightly smaler than my previous format 😄

    Have nice day,
    Franck

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Franck@21:1/5 to All on Tue Oct 11 07:58:49 2022
    Hi Russ,

    Oh, since someone is actually using this, I should mention that I realized after my post that this is a kind of silly encoding of the date and you should just use seconds since epoch, which will carry the same information and be a lot more compact.

    At this time, when generating a Message-ID, there is no chance to get a timestamp (at least) in the range of years 1970 to 2021, witch represent
    about 1640905200 seconds.

    Wouldn't it make sense to set the "0 Date" to 2022-01-01 so the
    Message-ID will be more compact?

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Russ Allbery@21:1/5 to Franck on Tue Oct 11 08:31:12 2022
    Franck <franck@email.invalid> writes:

    Hi Russ,

    Oh, since someone is actually using this, I should mention that I realized >> after my post that this is a kind of silly encoding of the date and you
    should just use seconds since epoch, which will carry the same information >> and be a lot more compact.

    At this time, when generating a Message-ID, there is no chance to get a timestamp (at least) in the range of years 1970 to 2021, witch represent about 1640905200 seconds.

    Wouldn't it make sense to set the "0 Date" to 2022-01-01 so the Message-ID will be more compact?

    Oh, sure, you could definitely do that. I didn't think about it since the message ID already seemed reasonably short, but that would make it even
    shorter (and make more room for other information if one wants to add it).

    --
    Russ Allbery (eagle@eyrie.org) <https://www.eyrie.org/~eagle/>

    Please post questions rather than mailing me directly.
    <https://www.eyrie.org/~eagle/faqs/questions.html> explains why.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Julien_=c3=89LIE?=@21:1/5 to All on Wed Oct 12 17:51:02 2022
    Salut Franck,

    At this time, when generating a Message-ID, there is no chance to get a timestamp (at least) in the range of years 1970 to 2021, witch represent about 1640905200 seconds.

    Wouldn't it make sense to set the "0 Date" to 2022-01-01 so the
    Message-ID will be more compact?

    We could also save 1 byte more (in the resulting Base64 string) if
    changing the timestamp every minute instead of every second. Dividing
    the number of seconds by 2^6=64 (or shifting 6 bits to the right) would
    do that, without really adding a noticeable risk of duplicate
    Message-IDs I think.



    Message-ID: <Y0KVxHLrtq6oCVJ2@news.spitfire-nntp.fr>
    16 bytes at the left-hand side of the Message-ID, and probably less with
    your suggestion of changing the "0 Date".

    FWIW, INN currently generates 13 bytes (ex: <tgu7qh$8iq1$1@news.trigofacile.com>, without random number) and I see
    that Gnus generates 14 bytes (ex: <87lepph98o.fsf@hope.eyrie.org>).

    --
    Julien ÉLIE

    « A program should always respond to the user in the way that astonishes
    him least. » (Plauger's Law of Least Astonishment)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Franck@21:1/5 to All on Thu Oct 13 08:03:44 2022
    Bonjour Julien,

    We could also save 1 byte more (in the resulting Base64 string) if
    changing the timestamp every minute instead of every second.  Dividing
    the number of seconds by 2^6=64 (or shifting 6 bits to the right) would
    do that, without really adding a noticeable risk of duplicate
    Message-IDs I think.

    If timestamp is in minutes, with a "0 date" set to 2022-01-01, the
    Base64 result looks like <QzlcrZx0k8PldQ@news.spitfire-nntp.fr>.

    It's 14 bytes.

    Franck

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Olivier Miakinen@21:1/5 to All on Thu Oct 13 12:46:37 2022
    Hello,

    Le 09/10/2022 12:04, Franck a écrit :

    Also, you can drop the = padding signs from the end of the base64 output.
    The amount of padding required can be calculated from the length of the
    string once you know it's base64-encoded, so it doesn't add any
    information.

    Done.

    Message ID : <Y0KVxHLrtq6oCVJ2@news.spitfire-nntp.fr>

    Now, the result is slightly smaler than my previous format 😄

    For the cancel reports of miakibot, I use the standard timestamp (with 1970
    as the "0-date"), but coded in a "base81" of my own. The 81 characters are :
    _ATEXT = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + \
    "abcdefghijklmnopqrstuvwxyz" + \
    "0123456789" + \
    "!#$%&'*+-/=?^_`{|}~"

    Example :
    Message-ID: <m4Pke.TCW.1@miakinen.net>

    Where "m4Pke" is the base81 of the timestamp, "TCW" the base81 of the process id, and "1" a simple disambiguation count if more than one messages are sent
    by the same process in the same second.

    --
    Olivier Miakinen

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Julien_=c3=89LIE?=@21:1/5 to All on Sun Feb 19 19:37:31 2023
    Hi Russ,

    I would tend to take the one from readers.conf anyway. As it is forced
    in readers.conf, there may be a reason; inn.conf documentation says to
    have a look at domain (or virtualhost) in readers.conf to change the
    righthand side of autogenerated Message-IDs, but that special rule is
    not mentioned. I would just drop it...

    BTW, I had a bit of a hard time following the documentation, because
    inn.conf says to set domain in readers.conf but then domain isn't
    documented in readers.conf except in the list of inn.conf settings that
    can also be set there.

    * Use domain unconditionally for forming message IDs if it's set in readers.conf.

    * Document domain as a first-class configuration parameter for
    access groups in readers.conf, saying that it changes the way message
    IDs are constructed.
    I've had a look at this issue today, and made the discussed changes to
    STABLE. They'll be available in INN 2.7.1.
    The documentation should also be easier to read now.

    --
    Julien ÉLIE

    « Inside every large problem is a small problem struggling to get out. »

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Julien_=c3=89LIE?=@21:1/5 to All on Sun Feb 19 20:02:11 2023
    Hi Russ,

    One interesting wrinkle here: if servername and pathhost are set to
    different things, it's unclear what should go into Injection-Info.
    It looks like we never said. The ABNF grammar says it's a
    path-identity, which sort of implies it should be pathhost, but the
    grammar of course is identical for both elements.
    Having a deeper look at it for INN 2.8.0 (as it is a
    backwards-incompatible change), I've found the answer in Section 3.2 of
    RFC 5537 😄

    All news server components (injecting agents, relaying agents, and
    serving agents) MUST identify themselves, when processing an article,
    by prepending their <path-identity> (defined in Section 3.1.5 of
    [RFC5536]) to the Path header field. Injecting agents MUST also use
    the same identity in Injection-Info header fields that they add, and
    serving and relaying agents SHOULD use the same identity in any Xref
    header fields they add.

    The server name in Injection-Info MUST be the path identity, and the
    server name in Xref SHOULD be the path identity.

    Hmm, nnrpd currently leaves the update of the Path header field to innd,
    so we'll break a MUST if servername (intended to be the identity of
    nnrpd) and pathhost (the identity of innd) are not the same.

    I therefore suggest that if servername and pathhost are different, we
    add both in Path.
    nnrpd will generate "servername!.POSTED.xxx!not-for-mail", and innd will
    add "pathhost!!" (with an additional verified diag match "!").

    Injection-Info (set by nnrpd) will use servername.
    Xref (set by innd) will use pathhost.

    I think it will then be all good 😄



    P.-S.: Disambiguating the use of "domain" is a good move. Thanks
    LaLibreParole for this thread! It will greatly improve how various
    parameters are (mis)used and (mis)documented, especially complaints, newsmaster, fromhost, domain, pathhost, and virtualhost.

    --
    Julien ÉLIE

    « A killfile on Usenet can get you peace and quiet. A killfile in the
    real world can get you twenty years to life. » (Nils Nieuwjaar)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Adam H. Kerman@21:1/5 to iulius@nom-de-mon-site.com.invalid on Sun Feb 19 22:00:57 2023
    Julien ELIE <iulius@nom-de-mon-site.com.invalid> wrote:

    Hi Russ,

    One interesting wrinkle here: if servername and pathhost are set to >>different things, it's unclear what should go into Injection-Info.
    It looks like we never said. The ABNF grammar says it's a
    path-identity, which sort of implies it should be pathhost, but the
    grammar of course is identical for both elements.

    Having a deeper look at it for INN 2.8.0 (as it is a
    backwards-incompatible change), I've found the answer in Section 3.2 of
    RFC 5537

    All news server components (injecting agents, relaying agents, and
    serving agents) MUST identify themselves, when processing an article,
    by prepending their <path-identity> (defined in Section 3.1.5 of
    [RFC5536]) to the Path header field. Injecting agents MUST also use
    the same identity in Injection-Info header fields that they add, and
    serving and relaying agents SHOULD use the same identity in any Xref
    header fields they add.

    The server name in Injection-Info MUST be the path identity, and the
    server name in Xref SHOULD be the path identity.

    Hmm, nnrpd currently leaves the update of the Path header field to innd,
    so we'll break a MUST if servername (intended to be the identity of
    nnrpd) and pathhost (the identity of innd) are not the same.

    I therefore suggest that if servername and pathhost are different, we
    add both in Path.
    nnrpd will generate "servername!.POSTED.xxx!not-for-mail", and innd will
    add "pathhost!!" (with an additional verified diag match "!").

    I don't have anything useful to add but I'm trying to follow along as
    best as I can. What is the purpose of the second bang? I do try to read
    Path and the purpose would not be obvious to me.

    . . .

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Julien_=c3=89LIE?=@21:1/5 to All on Sun Feb 19 23:20:40 2023
    Hi Adam,

    What is the purpose of the second bang? I do try to read
    Path and the purpose would not be obvious to me.

    "x!!y" means that x has verified that y is the right path identity for
    the peer from which it receives the article.

    I quote the relevant part of RFC 5537:


    3.2.1. Constructing the Path Header Field

    [...]
    A relaying or serving agent SHOULD prepend a <path-diagnostic> to
    the Path header field content, where the <path-diagnostic> is
    chosen as follows:

    * If the expected <path-identity> of the source of the article
    matches the leftmost <path-identity> of the Path header
    field's content, use "!" (<diag-match>), resulting in two
    consecutive "!"s.

    * If the expected <path-identity> of the source of the article
    does not match, use "!.MISMATCH." followed by the expected
    <path-identity> of the source or its IP address.

    * If the relaying or serving agent is not willing or able to
    check the <path-identity>, use "!.SEEN." followed by the FQDN,
    IP address, or expected <path-identity> of the source.

    The "expected <path-identity> of the source of the article" is a
    <path-identity> for the injecting or relaying agent that passed
    the article to this relaying or serving agent, determined by
    properties of the connection via which the article was received
    (for example, an authentication identity or a peer IP address).
    Be aware that [RFC1036] did not include <path-diagnostic>.
    Implementations that predate this specification will add only
    single "!" characters between <path-identity> strings.

    The agent MAY then prepend to the Path header field content "!"
    or "!!" followed by an additional <path-identity> for itself
    other than its primary one. Using "!!", and thereby adding a
    <diag-match> since the <path-identity> clearly is verified, is
    RECOMMENDED. This step may be repeated any number of times.
    This is permitted for agents that have multiple <path-identity>s
    (such as during a transition from one to another). Each of these
    <path-identity>s MUST meet the requirements set out in
    Section 3.2.

    [...]

    3.2.2. Path Header Field Example

    Here is an example of a Path header field created by following the
    rules for injecting and relaying agents.

    Path: foo.isp.example!.SEEN.isp.example!foo-news
    !.MISMATCH.2001:DB8:0:0:8:800:200C:417A!bar.isp.example
    !!old.site.example!barbaz!!baz.isp.example
    !.POSTED.dialup123.baz.isp.example!not-for-mail

    This article was injected by baz.isp.example as indicated by the
    <diag-keyword> "POSTED". The injector has recorded that it received
    the article from dialup123.baz.isp.example. "not-for-mail" is a
    common <tail-entry>.

    The article was relayed to the relaying agent known, at least to
    old.site.example, as "barbaz". That relaying agent confirmed to its
    satisfaction that "baz.isp.example" was an expected <path-identity>
    for the source of the article and therefore used <diag-match> ("!")
    for its <path-diagnostic>.

    barbaz relayed it to old.site.example, which does not support <diag-
    keyword> and therefore used the old "!" delimiter. This indicates
    that the identity of "barbaz" was not verified and may have been
    forged.

    old.site.example relayed it to a news server using the <path-
    identity> of bar.isp.example and claiming (by using the "!" <path-
    diagnostic>) to have verified that it came from old.site.example.

    bar.isp.example relayed it to foo-news, which, not being convinced
    that it truly came from bar.isp.example, inserted the <diag-keyword>
    "MISMATCH" and then stated that it received the article from the IPv6
    address [2001:DB8:0:0:8:800:200C:417A]. (This is not to say that
    bar.isp.example was not a correct <path-identity> for that source but
    simply that the identity did not match the expectations of foo-news.)

    foo-news then passed the article to foo.isp.example, which declined
    to validate its <path-identity> and instead appended the <diag-
    keyword> "SEEN" to indicate it knows the source of the article as
    isp.example. This may be either an expected <path-identity> or the
    FQDN of the system from which it received the article. Presumably,
    foo.isp.example is a serving agent that then delivered the article to
    a reading agent.

    baz.isp.example, bar.isp.example, and foo-news folded the Path header
    field.



    You know everything about Path now :)

    --
    Julien ÉLIE

    « The best preparation for tomorrow is to do today's work superbly
    well. » (William Osler)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Adam H. Kerman@21:1/5 to iulius@nom-de-mon-site.com.invalid on Sun Feb 19 23:51:04 2023
    Julien ELIE <iulius@nom-de-mon-site.com.invalid> wrote:

    . . .

    You know everything about Path now :)

    Thank you very much.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)