[ietf-nntp] draft-ietf-nntpext-streaming-01.txt
Clive D.W. Feather
clive at demon.net
Mon Mar 15 02:54:14 PST 2004
Russ Allbery said:
>> Section 3.2: I don't understand the reason for this command at all, let
>> alone why it can't be pipelined. Why can't a client just start issuing
>> CHECK and TAKETHIS commands immediately after the initial connection?
>> If there is some technical reason for either requiring the command at
>> all, or for making it non-pipelined, you need to give it.
>
> I go back and forth on this, but I think we should take the stance that
> there is no technical reason for this command and that the only reason why
> it's included is that all current streaming implementations send it and
> the server needs to do something sensible with it. In other words,
> include it, state that clients that intend to use streaming commands MUST
> send either it *or* LIST EXTENSIONS,
I don't ever like the idea of using LIST EXTENSIONS to set state in the
server. However, see below.
> and state that servers that support
> streaming commands for those clients MUST NOT require MODE STREAM be sent.
[...]
> I don't know of an implementation that would inherently require that this
> command be sent (unlike with MODE READER). In practice, it was used
> instead of LIST EXTENSIONS because sending TAKETHIS without a positive
> indication that the remote side supports it is a bad idea. Now, clients
If I understand you correctly, what you're actually suggesting is:
* MODE STREAM has no effect and does not affect the server state.
* A server supporting this extension MUST support the MODE STREAM command,
while a server that does not SHOULD NOT support it (for the reason given
below).
* A client really really should not attempt a TAKETHIS unless it is *SURE*
that the server understands it, because if it doesn't then the server
is going to issue 500s (hopefully) for every line of the article!
* There are three ways to know if the server supports TAKETHIS:
- LIST EXTENSIONS reports this extension (preferred)
- MODE STREAM returns 2xx (legacy)
- external configuration or memory of previous session (dangerous).
* Therefore clients SHOULD NOT use TAKETHIS unless a LIST EXTENSIONS or
MODE STREAM in the same session has reported accordingly.
Do you agree with this analysis? If so, can we word things as such?
>> Section 5.1: what's the meaning of the 439 response? Does it indicate a
>> technical failure (so the client should retry later) or is it a "I didn't
>> want that"? The point of response codes is that they tell the client what
>> further action to take. I would suggest:
>> 239 - I got it successfully, thanks
>> 431 - I can't handle it right now, try again later
>> 438 - I got it and I've deliberately thrown it away
>> 439 - Temporary failure, please send it again ASAP.
> 439 is a rejection. The article should never be sent again.
Okay.
> TAKETHIS has no deferral return status. We could add one as part of this
> standardization process; it's not a bad idea.
Thanks.
> You cannot reuse CHECK status codes for TAKETHIS status codes given the
> way that client software is written.
[...]
Okay, that makes a lot of sense. Can I suggest that the text says that
these two commands have deliberately different responses for just this
reason?
--
Clive D.W. Feather | Work: <clive at demon.net> | Tel: +44 20 8495 6138
Internet Expert | Home: <clive at davros.org> | *** NOTE CHANGE ***
Demon Internet | WWW: http://www.davros.org | Fax: +44 870 051 9937
Thus plc | | Mobile: +44 7973 377646
More information about the ietf-nntp
mailing list