Subject: Re: #1313 Newsgroups and reserved characters

From: [email-masked]
Date: Thu, 27 Jul 2006 12:05:08 -0700 (PDT)

Harald Alvestrand <harald@xxxxxxxxxxxxx>:

> Proposed new text ...

   A newsgroup component SHOULD NOT consist of digits only, and SHOULD
   NOT contain uppercase letters.  Such components MAY be used  to
   refer to existing groups that do not conform to this naming scheme,
   but MUST NOT be used otherwise.

Since the restriction on future creation of groups is only SHOULD NOT,
you now have a situation where new groups with digit-only or uppercase
names can be created but MUST NOT be accessable. This needs to be either
SHOULD NOT or MUST NOT throughout.

   <component>s beginning with "+" and "-" are reserved for private use
   and MUST NOT be generated by user agents (whether in
   header fields or in newgroup control messages [I-D.ietf-usefor-
   usepro]) without a private prior agreement to do so.  However, such
   names MUST be accepted by news servers.

How does the user agent know if a "private prior agreement" exists? Just
where would a user agent generate said components in the first place? 
Is moving a newsgroup name from a Followup-To to the Newsgroups header
field "generating"? (It would seem to be, since the Followup-To causes
the existing Newsgroups to be discarded and a new one generated.) Is
the mere existance of a Followup-To in the parent proof of the "private
prior agreement" that allows the user agent to generate an otherwise 
prohibited "component". I don't think so.

---

From: Harald Alvestrand <[email-masked]>
Date: Fri, 28 Jul 2006 08:26:02 +0200

> SHOULD NOT or MUST NOT throughout.
No, you have it the wrong way around.
 SHOULD NOT = don't use it if you don't know what you're doing.
The MAY identifies one case where you have to use it - access to 
existing group.
The MUST NOT coves the rest of the cases, including newsgroup creation.
> How does the user agent know if a "private prior agreement" exists?
Because it's entered into the private prior agreement. How that's done 
is their own business.
> Just
Me neither. But that's outside the scope of the standard.

---

From: Seth Breidbart <[email-masked]>
Date: Fri, 28 Jul 2006 03:20:37 -0400 (EDT)

>   names MUST be accepted by news servers.

So if a user agent incorrectly believes there's a private prior
agreement, it generates such a component.  The server knows that
there's no such agreement, but it can't reject on that basis?  That
doesn't seem right; I'd say that in the absence of such an agreement,
such names SHOULD NOT be accepted by the news server.

Seth

---

From: Harald Alvestrand <[email-masked]>
Date: Fri, 28 Jul 2006 00:37:50 -0700

> such names SHOULD NOT be accepted by the news server.
the idea (as I understood others' explanation of previous debates in the 
group, about a year ago) is to be able to create groups with special 
semantics, interpreted by clients, and perhaps acted upon in special 
ways by servers that are part of the experiment, which nevertheless get 
passed along just like ordinary groups by "old" servers - allowing the 
participants in the experiment to get a predictable behaviour from 
newsservers that are not part of the experiment.

Search for #1021 in the archive, June 2005.

I'm not a great fan of the thing myself - the document would be one 
paragraph shorter if we just removed the whole idea and made the ABNF 
say that these chars are not permitted. But I didn't see any reason to 
challenge a consensus of the WG that predated my involvement, and my 
judgment of consensus a year ago was that the WG wanted to retain it.

                             Harald

---

From: [email-masked]
Date: Fri, 28 Jul 2006 09:44:07 -0700 (PDT)

On Fri, 28 Jul 2006, Harald Alvestrand wrote:

> The MAY identifies one case where you have to use it - access to existing 
> group.

Then there is no use for the SHOULD NOT's. You are putting special 
requirements on the user who accesses known existing groups -- why should
he have to think twice about going to alt.2600 every time he does?

> Because it's entered into the private prior agreement. How that's done is 
> their own business.

I've seen a lot of strange things come out of this group, but a user agent
that enters into private agreements is just too silly.

>>Just where would a user agent generate said components in the first 
>>place? Is moving a newsgroup name from a Followup-To to the Newsgroups 
>>header field "generating"? (It would seem to be, since the Followup-To 
>>causes the existing Newsgroups to be discarded and a new one generated.) 
>>Is the mere existance of a Followup-To in the parent proof of the 
>>"private prior agreement" that allows the user agent to generate an 
>>otherwise prohibited "component". I don't think so.

>Me neither. But that's outside the scope of the standard.

If we are putting a MUST NOT on a certain activity, then we certainly
are making that activity within the scope of this standard, and are
making an implicit requirement for the software author to be able to
detect such conditions.

I've now seen the message where you explain why this paragraph is deemed 
necessary. I'd challenge any software author to correctly deal with the 
situation of a leaked experimental article that contains "Followup-To: 
+test.me.please". His code is either going to generate a Newsgroups header 
we tell him he MUST NOT, or he will be fastidious and refuse to do so, 
even though the user just called Bob the Server Admin and got permission 
to join the experiment.

User agent has no way of knowing. The only thing it can do is assume that
the user knows, and that means that when the user presses 'f' to followup,
or any other command that generates an otherwise prohibited component,
the user agent has to assume that agreement exists. Since this is no 
different than any other situation, there is no reason to even mention it.

---

From: Seth Breidbart <[email-masked]>
Date: Fri, 28 Jul 2006 13:47:20 -0400 (EDT)

> I've now seen the message where you explain why this paragraph is
> deemed necessary. I'd challenge any software author to correctly
> deal with the situation of a leaked experimental article that
> contains "Followup-To: +test.me.please". His code is either going to
> generate a Newsgroups header we tell him he MUST NOT, or he will be
> fastidious and refuse to do so, even though the user just called Bob
> the Server Admin and got permission to join the experiment.

The user agent asks the user: "You just generated an article to be
posted in the newsgroup '+test.me.please'.  That name violates the
RFCs unless there is a private agreement in place allowing it.  Do you
want to Continue or Edit?: "

> User agent has no way of knowing. The only thing it can do is assume
> that the user knows, and that means that when the user presses 'f'
> to followup, or any other command that generates an otherwise
> prohibited component, the user agent has to assume that agreement
> exists. Since this is no different than any other situation, there
> is no reason to even mention it.

Being a user agent, it's allowed to communicate with the user.

Seth

---

From: "Charles Lindsey" <[email-masked]>
Date: Sat, 29 Jul 2006 21:21:01 GMT

>SHOULD NOT or MUST NOT throughout.

Yes, I think John is right here. To be consistent, it should be "SHOULD
NOT be used otherwise".

>How does the user agent know if a "private prior agreement" exists?

Because the server that created it (i.e. the NNTP server he connects to)
should have told him. For example, a server might choose to offer filtered
and unfiltered versions of a newsgroup, using a '-' to indicate the
filtered one. In that case, it might be wise to insert Followup-To the
unfiltered group.

-- 
Charles H. Lindsey ---------At Home, doing my own thing------------------------
Tel: +44 161 436 6131 Fax: +44 161 436 6133   Web: http://www.cs.man.ac.uk/~chl
Email: [email-masked]      Snail: 5 Clerewood Ave, CHEADLE, SK8 3JU, U.K.
PGP: 2C15F1A9      Fingerprint: 73 6D C2 51 93 A0 01 E7 65 E8 64 7E 14 A4 AB A5

---

From: "Charles Lindsey" <[email-masked]>
Date: Sun, 30 Jul 2006 19:54:12 GMT

>> The MUST NOT coves the rest of the cases, including newsgroup creation.

On further thought (I agreed with John the first time) I think Harald's
argument is right.

>he have to think twice about going to alt.2600 every time he does?

One should be happy if posters to that group even get as far as thinking
once :-) . So no real danger of them actually thinking twice.

>that enters into private agreements is just too silly.

But is is mainly serving agents that will set up these private
arrangements, not user agents. The _users_ should be aware of the "private
arrangement", as a result of which they may configure their user agent to
subscribe to the group.

>even though the user just called Bob the Server Admin and got permission 

No, we told him he SHOULD NOT. If he inadvertently does, then it will be
propagated if there are are further proper crossposts, otherwise it will
only be accepted at sites where that group exists (i.e. those that are
party to the "private arrangement"). That all seems OK to me.

---

From: "Forrest J. Cavalier III" <[email-masked]>
Date: Mon, 31 Jul 2006 06:45:44 -0400

> party to the "private arrangement"). That all seems OK to me.

Why can't we let the "private arrangements" fall outside the standard?

Why even discuss how "contractual" those arrangements must be?

I think the language in the text under discussion about "accepting newsgroup 
names" is confusing, because "accepting newsgroup names" is different than
"accepting newsgroup."

Besides: if I have a private heirarchy, I may want to configure my relayer
to reject articles which are cross-posted to private newsgroups (either inbound
or outbound.)

In the draft, that violates a MUST.  That's a problem with the draft.