• Header ordering

    From InterLinked@nntp@phreaknet.org to news.software.nntp on Tue May 19 20:49:59 2026
    From Newsgroup: news.software.nntp

    Is order ever significant for netnews headers?

    Unlike email headers, where new headers are continually prepended at the
    top, netnews headers seem to be largely static after injection in the
    sense no new headers are added (Path is modified, but it's an existing
    header that's modified).

    The only clear ordering patterns I see is that Path is always the first
    header and Xref is always the last one. That kind of makes sense because
    it's easier to add headers either at the beginning or the end. I don't
    see this ordering required anywhere in the RFCs though, at least that I
    can find. Is this another one of those things that is just an unofficial convention, because that's how software has behaved historically? Is
    anything likely to break if these headers were in a different order? Or
    would it merely be odd?
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Russ Allbery@eagle@eyrie.org to news.software.nntp on Tue May 19 18:58:08 2026
    From Newsgroup: news.software.nntp

    InterLinked <nntp@phreaknet.org> writes:

    Is order ever significant for netnews headers?

    No, at least not that I'm aware of.
    --
    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.
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From InterLinked@nntp@phreaknet.org to news.software.nntp on Tue May 19 22:29:37 2026
    From Newsgroup: news.software.nntp

    On 5/19/2026 9:58 PM, Russ Allbery wrote:
    InterLinked <nntp@phreaknet.org> writes:

    Is order ever significant for netnews headers?

    No, at least not that I'm aware of.

    Thanks; another related question on headers - RFC 5537 spells out a few protections against duplicate injection, namely that sites MAY reject
    articles with .POSTED in the Path, and Injection-Info MUST NOT be present.

    One thing this leaves open is what the best practices would be when
    using a reading account to send articles to Usenet. I think it's
    somewhat more common (or at least, not super uncommon) to have some
    smaller servers set up to "suck" articles from a peered server if they
    aren't themselves peered with other Usenet servers. Likewise, for
    posting, a server could likewise receive articles from other sites and
    then inject them into Usenet. This way you could run your own Usenet
    server and just use a reader account to interact with Usenet, without
    needing to peer, at least initially.

    Conundrum here is because the injector is technically a reader, it can't
    use IHAVE or TAKETHIS and has to use POST, and its proto-article would
    be thus rejected for having .POSTED and/or Injection-Info.

    The only workaround I can think of for this is to have the injector omit
    the Injection-Info header when feeding the article and munge the Path
    header to omit .POSTED (leaving its site in, to avoid loops), though
    that feels somewhat awkward. It would only do it for sites for which it
    acts as a reader, as maybe it is actually peered with other servers that
    just happen to not be connected to Usenet, i.e. this "posting link" is
    the only connection between Usenet and this (otherwise) private news
    network.

    Is there a better approach here or is that the standard way of handling
    this?
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Russ Allbery@eagle@eyrie.org to news.software.nntp on Tue May 19 21:59:37 2026
    From Newsgroup: news.software.nntp

    InterLinked <nntp@phreaknet.org> writes:

    One thing this leaves open is what the best practices would be when
    using a reading account to send articles to Usenet.

    Yeah, the standard purist answer is "don't do that" because it breaks a
    bunch of desirable Usenet properties, but that's sometimes not a practical answer.

    I think it's best to think of this as a type of gatewaying (specifically,
    a type of incoming gateway). You have to transform the article in order to reinject it, and you therefore are running the risk of creating injection
    loops and you need to take the precautions required of gateways. There is considerable discussion of the risks of gateways and the measures they
    should take here:

    https://datatracker.ietf.org/doc/html/rfc5537#section-3.10

    The only workaround I can think of for this is to have the injector omit
    the Injection-Info header when feeding the article and munge the Path
    header to omit .POSTED (leaving its site in, to avoid loops), though
    that feels somewhat awkward.

    Correct, this is what you have to do. (Well, either omit or rename,
    depending on whether that information is of any use on Usenet.)
    --
    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.
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Marco Moock@mm@dorfdsl.de to news.software.nntp on Wed May 20 21:01:56 2026
    From Newsgroup: news.software.nntp

    Am 20.05.26 um 04:29 schrieb InterLinked:
    On 5/19/2026 9:58 PM, Russ Allbery wrote:
    InterLinked <nntp@phreaknet.org> writes:

    Is order ever significant for netnews headers?

    No, at least not that I'm aware of.

    Thanks; another related question on headers - RFC 5537 spells out a few protections against duplicate injection, namely that sites MAY reject articles with .POSTED in the Path, and Injection-Info MUST NOT be present.

    Are there usual situations where a newsreader includes the Path: header?

    One thing this leaves open is what the best practices would be when
    using a reading account to send articles to Usenet. I think it's
    somewhat more common (or at least, not super uncommon) to have some
    smaller servers set up to "suck" articles from a peered server if they aren't themselves peered with other Usenet servers. Likewise, for
    posting, a server could likewise receive articles from other sites and
    then inject them into Usenet. This way you could run your own Usenet
    server and just use a reader account to interact with Usenet, without needing to peer, at least initially.

    UUCP over IP exists for such situations, as this doesn't need a
    permanent connection.
    --
    Gru|f
    Marco

    Spam bitte an abfalleimer2001@stinkedores.dorfdsl.de
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From InterLinked@nntp@phreaknet.org to news.software.nntp on Wed May 20 19:38:37 2026
    From Newsgroup: news.software.nntp

    On 5/20/2026 3:01 PM, Marco Moock wrote:
    Am 20.05.26 um 04:29 schrieb InterLinked:
    On 5/19/2026 9:58 PM, Russ Allbery wrote:
    InterLinked <nntp@phreaknet.org> writes:

    Is order ever significant for netnews headers?

    No, at least not that I'm aware of.

    Thanks; another related question on headers - RFC 5537 spells out a
    few protections against duplicate injection, namely that sites MAY
    reject articles with .POSTED in the Path, and Injection-Info MUST NOT
    be present.

    Are there usual situations where a newsreader includes the Path: header?

    It's allowed by RFC 5537, but I was referring to an article going
    through actual transit servers, where the hop to Usenet just happens to
    use a reading connection instead of a peering connection. In such a case
    you would expect a Path and expect .POSTED.

    I would also guess with UUCP there could be quite a path prior to
    injection though I'm not as familiar with that.

    One thing this leaves open is what the best practices would be when
    using a reading account to send articles to Usenet. I think it's
    somewhat more common (or at least, not super uncommon) to have some
    smaller servers set up to "suck" articles from a peered server if they
    aren't themselves peered with other Usenet servers. Likewise, for
    posting, a server could likewise receive articles from other sites and
    then inject them into Usenet. This way you could run your own Usenet
    server and just use a reader account to interact with Usenet, without
    needing to peer, at least initially.

    UUCP over IP exists for such situations, as this doesn't need a
    permanent connection.

    I wasn't thinking about not having a permanent connection specifically;
    just not having a peering arrangement for any reason. I would assume
    that not just any old somebody running an NNTP server can easily peer
    with established Usenet servers? Or maybe I'm wrong and it's more open
    than I assumed.

    For context, I would like to peer eventually, but since I am writing my
    own software, would probably want to stick with a reader connection for
    a little bit until I'm sure all the kinks have been worked out. That way
    I don't irritate anybody if I'm not able to accept articles 24/7 early
    on as I fix unforseen issues and fine tune the groups I want to carry.
    No reason to use UUCP just for that as I see it.

    The scenario described is not hypothetical though as I do plan to have a private news network for private hierarchies, but also carry "curated"
    Usenet groups of interest to distribute amongst the locally peered servers.
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From InterLinked@nntp@phreaknet.org to news.software.nntp on Wed May 20 21:51:28 2026
    From Newsgroup: news.software.nntp

    On 5/20/2026 12:59 AM, Russ Allbery wrote:
    InterLinked <nntp@phreaknet.org> writes:

    One thing this leaves open is what the best practices would be when
    using a reading account to send articles to Usenet.

    Yeah, the standard purist answer is "don't do that" because it breaks a
    bunch of desirable Usenet properties, but that's sometimes not a practical answer.

    I think it's best to think of this as a type of gatewaying (specifically,
    a type of incoming gateway). You have to transform the article in order to reinject it, and you therefore are running the risk of creating injection loops and you need to take the precautions required of gateways. There is considerable discussion of the risks of gateways and the measures they
    should take here:

    https://datatracker.ietf.org/doc/html/rfc5537#section-3.10

    Thanks, will do! I also noticed 3.4.2 "Multiple Injection of Articles"
    today in a closer look, which is not quite the same situation but it
    seems like some of that might be applicable too.

    The only workaround I can think of for this is to have the injector omit
    the Injection-Info header when feeding the article and munge the Path
    header to omit .POSTED (leaving its site in, to avoid loops), though
    that feels somewhat awkward.

    Correct, this is what you have to do. (Well, either omit or rename,
    depending on whether that information is of any use on Usenet.)

    This is where it starts gets confusing... removing the header entirely
    would wipe out the history that the article was ever at that site and
    renaming the header is as good as removing it from a loop avoidance perspective. But you can still reject it as duplicate from Message-ID in history or from it being too old, so okay, so far so good.

    But RFC 5537 says that Path MUST be removed for duplicate injection and elsewhere only says the Path header SHOULD NOT contain .POSTED, not that
    it MUST NOT exist... the two seem somewhat conflicting to me. Why
    require Path to be removed if it is allowed in proto-articles?

    Another more direct conflict: 3.4.1 says Injection-Date MUST be supplied
    for multiple injection, but 3.5 #1 says if both Date and Message-ID are already present, Injection-Date MUST NOT be added, so it is seemingly impossible to satisfy both requirements at once here?

    Another question that isn't discussed - the Organization header. I
    believe practice is for only injecting servers to add this header, but I
    don't see anywhere that proto-articles MUST NOT contain this header. On
    the other hand, I would think a server would not want a client to set
    this to something different (e.g. Bell Laboratories), since the
    Organization is a reflection of the originating server rather than a
    poster, so it feels like it would be reasonable to reject articles that
    had one.

    On the other hand, INN seems to only add the Organization if it is not
    already set, so maybe this is a no-no or just an ambiguity that is left
    to local site policy. Any insight?
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Russ Allbery@eagle@eyrie.org to news.software.nntp on Wed May 20 20:37:43 2026
    From Newsgroup: news.software.nntp

    InterLinked <nntp@phreaknet.org> writes:

    But RFC 5537 says that Path MUST be removed for duplicate injection

    I'm not sure what you mean by duplicate injection. The Path header MUST be removed or renamed when reinjecting an article that was already injected elsewhere (as opposed to multiple injection done by offering the same proto-article to a bunch of injecting agents at the same time). That's
    because presumably it already has a .POSTED component and it can't be
    injected again with that present.

    and elsewhere only says the Path header SHOULD NOT contain .POSTED, not
    that it MUST NOT exist...

    I think that SHOULD NOT is a minor bug in the standard, since the
    injecting agent MUST reject articles that contain a .POSTED segment (see
    3.5). So in practice a .POSTED segment MUST NOT be present in a
    proto-article if you want to successfully post it. Maybe we left it as
    SHOULD NOT because it would work with a pre-RFC-5537 injecting agent?
    Seems like an oversight, though.

    Another more direct conflict: 3.4.1 says Injection-Date MUST be supplied
    for multiple injection, but 3.5 #1 says if both Date and Message-ID are already present, Injection-Date MUST NOT be added, so it is seemingly impossible to satisfy both requirements at once here?

    Those are two different pieces of software that have different
    requirements. Section 3.5 is about the duties of the news *server* (specifically, the component that accepts POST commands), not the client
    like 3.4.1.

    On the other hand, I would think a server would not want a client to set
    this to something different (e.g. Bell Laboratories), since the
    Organization is a reflection of the originating server rather than a
    poster, so it feels like it would be reasonable to reject articles that
    had one.

    Nah. In practice, Organization is a free-form field into which posters can
    put anything they want (and do). The standard allows either the client or
    the server to set it, but in practice, I'd just leave it to the client.
    It's not really useful for anything beyond easter eggs (and never really
    has been).
    --
    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.
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From InterLinked@nntp@phreaknet.org to news.software.nntp on Thu May 21 00:22:23 2026
    From Newsgroup: news.software.nntp

    On 5/20/2026 11:37 PM, Russ Allbery wrote:
    InterLinked <nntp@phreaknet.org> writes:

    But RFC 5537 says that Path MUST be removed for duplicate injection

    I'm not sure what you mean by duplicate injection. The Path header MUST be removed or renamed when reinjecting an article that was already injected elsewhere (as opposed to multiple injection done by offering the same proto-article to a bunch of injecting agents at the same time).

    Sorry, I did mean multiple injection. RFC 5537 3.4.2: "articles found on
    one Netnews network to another supposedly unconnected one... posting
    agent MUST remove... Path"

    That's because presumably it already has a .POSTED component and it can't be injected again with that present.

    It makes sense, but I would think the .POSTED component could be removed
    and the others retain, so that the rest of the path is preserved when reposting it, rather than neutering the existing path history.

    and elsewhere only says the Path header SHOULD NOT contain .POSTED, not
    that it MUST NOT exist...

    I think that SHOULD NOT is a minor bug in the standard, since the
    injecting agent MUST reject articles that contain a .POSTED segment (see 3.5). So in practice a .POSTED segment MUST NOT be present in a
    proto-article if you want to successfully post it. Maybe we left it as
    SHOULD NOT because it would work with a pre-RFC-5537 injecting agent?
    Seems like an oversight, though.

    I would agree, I sort of treated it as a MUST NOT anyhow as the other
    context seemed to suggest such.


    Speaking of Path, in looking at examples of headers in Usenet articles,
    I found this (as just one substring in the path): "!fx18.iad.POSTED!"

    I *think* this is ill-formed, as it doesn't seem valid from RFC 5537. "!.POSTED.fx18.iad!" would be but I think they did it backwards. And
    INN's check for already injected articles requires .POSTED be at the
    beginning or preceded by "!", so would not recognize this. (It would,
    however, recognize ".posted", even though I haven't seen that yet).

    It seems it might be beneficial to recognize ".POSTED" even when not at
    the beginning of string, to account for incorrect servers like this one (assuming this is indeed incorrect). Or maybe whatever INN is doing and
    a case-sensitive match for ".POSTED!" to reduce false positives when
    looking for non-compliant path elements. Then again, there are other
    ways of detecting injection so maybe that's why INN is strictly
    compliant? Or maybe nobody has thought about this previously?

    (Or as stated above, since it only says SHOULD NOT contain .POSTED,
    either way, INN isn't wrong not to recognize this.)

    Another more direct conflict: 3.4.1 says Injection-Date MUST be supplied
    for multiple injection, but 3.5 #1 says if both Date and Message-ID are
    already present, Injection-Date MUST NOT be added, so it is seemingly
    impossible to satisfy both requirements at once here?

    Those are two different pieces of software that have different
    requirements. Section 3.5 is about the duties of the news *server* (specifically, the component that accepts POST commands), not the client
    like 3.4.1.

    But in certain cases, they could be the same host, as in my example of receiving an article from a peer and sending it to Usenet via a reading connection, i.e. now behaving like a client. In this situation, if Date
    and Message-ID are already present in the article, but not
    Injection-Date, but then a reading connection is used to post to Usenet,
    now it is impossible to comply with both requirements... the server
    can't add the Injection-Date header if it isn't already present, yet it
    is required to provide one if this is considered a "multiple injection".

    I'm slightly leaning towards not adding Injection-Date being more
    logical, since the only way that the article could somehow make its way
    to Usenet in this scenario by another path were if the original reading
    client did multiple injection, then it should've had the header, so not
    having it implies it wasn't. But maybe that's already taking too many liberties...

    On the other hand, I would think a server would not want a client to set
    this to something different (e.g. Bell Laboratories), since the
    Organization is a reflection of the originating server rather than a
    poster, so it feels like it would be reasonable to reject articles that
    had one.

    Nah. In practice, Organization is a free-form field into which posters can put anything they want (and do). The standard allows either the client or
    the server to set it, but in practice, I'd just leave it to the client.
    It's not really useful for anything beyond easter eggs (and never really
    has been).

    Noted, thank you.
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Russ Allbery@eagle@eyrie.org to news.software.nntp on Wed May 20 21:53:51 2026
    From Newsgroup: news.software.nntp

    InterLinked <nntp@phreaknet.org> writes:
    On 5/20/2026 11:37 PM, Russ Allbery wrote:

    That's because presumably it already has a .POSTED component and it
    can't be injected again with that present.

    It makes sense, but I would think the .POSTED component could be removed
    and the others retain, so that the rest of the path is preserved when reposting it, rather than neutering the existing path history.

    I think that would be rather deceptive and would change the meaning of the header. Renaming is surely better?

    Speaking of Path, in looking at examples of headers in Usenet articles, I found this (as just one substring in the path): "!fx18.iad.POSTED!"

    I *think* this is ill-formed, as it doesn't seem valid from RFC 5537.

    Yup.

    There are some things like that which predate the standard, or are just
    from confused sites or sites that don't care about the standard. (But in
    this case I think it's the former.)

    It seems it might be beneficial to recognize ".POSTED" even when not at
    the beginning of string, to account for incorrect servers like this one (assuming this is indeed incorrect).

    Recognize and do what with it, though? By the time the article has been injected and is propagating, it's too late, unless you want to reject such articles entirely, which is probably more destructive than is warranted.

    Those are two different pieces of software that have different
    requirements. Section 3.5 is about the duties of the news *server*
    (specifically, the component that accepts POST commands), not the
    client like 3.4.1.

    But in certain cases, they could be the same host, as in my example of receiving an article from a peer and sending it to Usenet via a reading connection, i.e. now behaving like a client.

    I'm now really confused about what scenario you're describing; 3.5 is irrelevant to such a client since there is no injecting agent involved in either of those operations. That's just a case of reinjection. In that
    case, you MUST NOT add an Injection-Date header if none is present. See
    the third paragraph of 3.4.2. This is a case of gatewaying.

    In this situation, if Date and Message-ID are already present in the
    article, but not Injection-Date, but then a reading connection is used
    to post to Usenet, now it is impossible to comply with both
    requirements...

    I think the third paragraph of 3.4.2 is the relevant bit here, so I think
    the problem is just that you thought 3.5 was relevant to this, but it's
    not.

    In any case, however you implement these components is an irrelevant implementation detail from the perspective of the standard. Even if one
    piece of software is performing the duties of multiple components, it
    still needs to walk through the duties in order, and in that case there's
    no conflict or contradiction that I can see.
    --
    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.
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From InterLinked@nntp@phreaknet.org to news.software.nntp on Thu May 21 09:40:51 2026
    From Newsgroup: news.software.nntp

    On 5/21/2026 12:53 AM, Russ Allbery wrote:
    InterLinked <nntp@phreaknet.org> writes:
    On 5/20/2026 11:37 PM, Russ Allbery wrote:

    That's because presumably it already has a .POSTED component and it
    can't be injected again with that present.

    It makes sense, but I would think the .POSTED component could be removed
    and the others retain, so that the rest of the path is preserved when
    reposting it, rather than neutering the existing path history.

    I think that would be rather deceptive and would change the meaning of the header. Renaming is surely better?

    That's fair, is there any standard for that like Resent-Path or
    Original-Path or not really? I see Original-Sender but no other original headers mentioned.

    That also makes me think if, for some bizarre reason, the renamed header already existed, what to do then? e.g. The second network was not Usenet
    but a *second* news network before getting to Usenet, it might possibly encounter a second reading connection to get to Usenet... (and
    theoretically this could extend indefinitely) Original-Path-1, etc? (No,
    I am not planning such atrocities, but just trying to think of what
    could happen, I guess possible if someone else decided to "peer" using a reading connection on another peered server)

    Speaking of Path, in looking at examples of headers in Usenet articles, I
    found this (as just one substring in the path): "!fx18.iad.POSTED!"

    I *think* this is ill-formed, as it doesn't seem valid from RFC 5537.

    Yup.

    There are some things like that which predate the standard, or are just
    from confused sites or sites that don't care about the standard. (But in
    this case I think it's the former.)

    It seems it might be beneficial to recognize ".POSTED" even when not at
    the beginning of string, to account for incorrect servers like this one
    (assuming this is indeed incorrect).

    Recognize and do what with it, though? By the time the article has been injected and is propagating, it's too late, unless you want to reject such articles entirely, which is probably more destructive than is warranted.

    What I was wondering before is if receiving from a reading client if it
    seems warranted to reject such an article or not as "already posted".
    Now there is another argument I could simply reject it as "ill-formed" I suppose, to avoid propagating such ill-formed articles to Usenet. Accept
    from peers, reject from readers (as with many other things).

    Those are two different pieces of software that have different
    requirements. Section 3.5 is about the duties of the news *server*
    (specifically, the component that accepts POST commands), not the
    client like 3.4.1.

    But in certain cases, they could be the same host, as in my example of
    receiving an article from a peer and sending it to Usenet via a reading
    connection, i.e. now behaving like a client.

    I'm now really confused about what scenario you're describing; 3.5 is irrelevant to such a client since there is no injecting agent involved in either of those operations. That's just a case of reinjection. In that
    case, you MUST NOT add an Injection-Date header if none is present. See
    the third paragraph of 3.4.2. This is a case of gatewaying.

    In this situation, if Date and Message-ID are already present in the
    article, but not Injection-Date, but then a reading connection is used
    to post to Usenet, now it is impossible to comply with both
    requirements...

    I think the third paragraph of 3.4.2 is the relevant bit here, so I think
    the problem is just that you thought 3.5 was relevant to this, but it's
    not.

    Okay, I see, because when it *receives* the article, it's from a peer
    and not a reader... that makes sense.
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Russ Allbery@eagle@eyrie.org to news.software.nntp on Thu May 21 08:30:14 2026
    From Newsgroup: news.software.nntp

    InterLinked <nntp@phreaknet.org> writes:

    That's fair, is there any standard for that like Resent-Path or
    Original-Path or not really? I see Original-Sender but no other original headers mentioned.

    There isn't that I know of.

    That also makes me think if, for some bizarre reason, the renamed header already existed, what to do then?

    Repeated headers are technically allowed in netnews except for some
    specific standards-sensitive ones, but I dunno, at some point I'd probably
    just overwrite the older header because the additional value of all this
    trace information feels like it's getting rather limited. It's a good
    point, though.

    In general, for things like gatewaying and multiple injection, we don't
    have a really firm standard the way that we have for more conventional
    netnews protocols. These are edge cases for which there was not a lot of implementation experience, so the edge cases of the edge cases aren't
    explored very well. A whole RFC could be written on mail to news
    gatewaying, for instance, since there's a lot to say beyond the little bit that's in the existing RFCs.

    From the standard's perspective, though, propagating articles via POST is
    at best an ugly hack and at worse kind of a standards violation. The
    netnews protocol says that ideally an article is only POSTed once, and
    then is propagated via IHAVE or TAKETHIS or via non-NNTP methods like
    UUCP. So part of the reason why this isn't specified in detail is because
    it is kind of frowned upon since it creates a bunch of awkward edge cases,
    and it would be better to just get a peering relationship if you're going
    to be propagating posts.

    Recognize and do what with it, though? By the time the article has been
    injected and is propagating, it's too late, unless you want to reject
    such articles entirely, which is probably more destructive than is
    warranted.

    What I was wondering before is if receiving from a reading client if it
    seems warranted to reject such an article or not as "already posted".

    Oh, hm. I guess -- I'm not sure it really gains very much, though.

    Okay, I see, because when it *receives* the article, it's from a peer
    and not a reader... that makes sense.

    Right, yes, exactly.
    --
    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.
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Marco Moock@mm@dorfdsl.de to news.software.nntp on Thu May 21 20:41:29 2026
    From Newsgroup: news.software.nntp

    Am 21.05.26 um 01:38 schrieb InterLinked:
    On 5/20/2026 3:01 PM, Marco Moock wrote:
    Am 20.05.26 um 04:29 schrieb InterLinked:
    On 5/19/2026 9:58 PM, Russ Allbery wrote:
    InterLinked <nntp@phreaknet.org> writes:

    Is order ever significant for netnews headers?

    No, at least not that I'm aware of.

    Thanks; another related question on headers - RFC 5537 spells out a
    few protections against duplicate injection, namely that sites MAY
    reject articles with .POSTED in the Path, and Injection-Info MUST NOT
    be present.

    Are there usual situations where a newsreader includes the Path: header?

    It's allowed by RFC 5537, but I was referring to an article going
    through actual transit servers, where the hop to Usenet just happens to
    use a reading connection instead of a peering connection. In such a case
    you would expect a Path and expect .POSTED.

    I do not know a reason for doing this. Every news server needs peering.
    As long as this works, there is no need for using POST to transmit
    articled injected elsewhere.

    I would also guess with UUCP there could be quite a path prior to
    injection though I'm not as familiar with that.

    The Path: header originates from UUCP, NNTP came later.

    Injection is the process of a newsreader using POST to inject the post
    to the server. The server then uses its peering connections (NNTP oder
    UUCP) to transfer it to the peers (suing IHAVE). They do the same.

    One thing this leaves open is what the best practices would be when
    using a reading account to send articles to Usenet. I think it's
    somewhat more common (or at least, not super uncommon) to have some
    smaller servers set up to "suck" articles from a peered server if
    they aren't themselves peered with other Usenet servers. Likewise,
    for posting, a server could likewise receive articles from other
    sites and then inject them into Usenet. This way you could run your
    own Usenet server and just use a reader account to interact with
    Usenet, without needing to peer, at least initially.

    UUCP over IP exists for such situations, as this doesn't need a
    permanent connection.

    I wasn't thinking about not having a permanent connection specifically;
    just not having a peering arrangement for any reason. I would assume
    that not just any old somebody running an NNTP server can easily peer
    with established Usenet servers? Or maybe I'm wrong and it's more open
    than I assumed.

    That makes no sense.
    As long as you have a server without peers at all, the only articles you
    can inject are those posted by the users of this machine. Why don't you
    let them use the server with peers?
    There is a situation this will be used, called Leafnode. This is a local
    NNTP server that acts like a newsreader to its upstream server. This
    server as a local solution for local archives etc., but not for multiple
    users in general.

    If you want peering, post in news.admin.peering. There will be people
    who peer with you either by using NNTP oder UUCP.

    For context, I would like to peer eventually, but since I am writing my
    own software, would probably want to stick with a reader connection for
    a little bit until I'm sure all the kinks have been worked out. That way
    I don't irritate anybody if I'm not able to accept articles 24/7 early
    on as I fix unforseen issues and fine tune the groups I want to carry.

    The peers will queue that. But why don't run INN2 and peer your new
    software with that, so you can queue and retransmit everything you need
    - as much often as you want.

    No reason to use UUCP just for that as I see it.

    UUCP is one way to be able to run a peered server without static IP
    addresses. Certain home ISPs give you changing prefixes.

    The scenario described is not hypothetical though as I do plan to have a private news network for private hierarchies, but also carry "curated" Usenet groups of interest to distribute amongst the locally peered servers.

    Then peer your server with others, this is the right way to handle this.
    The local hierarchies need to be excluded in the settings, there are
    examples for that.
    --
    Gru|f
    Marco

    Spam bitte an abfalleimer2001@stinkedores.dorfdsl.de
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Marco Moock@mm@dorfdsl.de to news.software.nntp on Thu May 21 20:46:30 2026
    From Newsgroup: news.software.nntp

    Am 21.05.26 um 03:51 schrieb InterLinked:

    Another question that isn't discussed - the Organization header. I
    believe practice is for only injecting servers to add this header, but I don't see anywhere that proto-articles MUST NOT contain this header. On
    the other hand, I would think a server would not want a client to set
    this to something different (e.g. Bell Laboratories), since the
    Organization is a reflection of the originating server rather than a
    poster, so it feels like it would be reasonable to reject articles that
    had one.

    This header is irrelevant. You can configure your server to set it for
    your injected articles, maybe also overwrite the value that the user
    provided if you really want.

    At the end, if there is not special reason to do so, don't do it, some
    of your users might be upset.
    --
    Gru|f
    Marco

    Spam bitte an abfalleimer2001@stinkedores.dorfdsl.de
    --- Synchronet 3.22a-Linux NewsLink 1.2