Subject: RE: RSET scope issue

From: "Woodhouse, Gregory J." <[email-masked]>
Date: Mon, 14 Aug 2000 19:06:08 -0500

It basically makes sense to me. It seems that what is happening here is an
unstated assumption that transactions will never be nested, so an RSET
always goes back to the top level (immediately after EHLO). This ought to
either be made explicit or some language like "the current transaction must
be reset to its initial state" should be used instead. I'm not sure if just
deleting the phrase is the right approach because it seems to rely on
knowledge of an unstated assumption.

===
Gregory Woodhouse <[email-masked]>
Financial Product Line
+1 415 744 6362
"Computer science is no more about computers than astronomy is
about telescopes." -- E.W. Dijkstra

-----Original Message-----
From: Russ Allbery [mailto:[email-masked]]
Sent: Monday, August 14, 2000 4:43 PM
To: Detailed Revision/Update of Message Standards
Subject: Re: RSET scope issue

Chris Newman <[email-masked]> writes:

> There is a bug in the definition of the RSET command in section 4.1.1.5
> of draft 12.  The current text follows:

>   4.1.1.5 RESET (RSET)

>   This command specifies that the current mail transaction will be
aborted.
>   Any stored sender, recipients, and mail data MUST be discarded, and all
>   buffers and state tables cleared.  The receiver MUST send a "250 OK"
reply
>   to a RSET command with no arguments.  A reset command may be issued by
the
>   client at any time.  It is effectively equivalent to a NOOP (i.e., if
has
>   no effect) if issued immediately after EHLO, before EHLO is issued in
the
>   session, after an end-of-data indicator has been sent and acknowledged,
or
>   immediately before a QUIT. In other situations, it restores the state to
>                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>   that immediately after the most recent EHLO.  An SMTP server MUST NOT
close
>   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>   the connection as the result of receiving a RSET; that action is
reserved
>   for QUIT (see section 4.1.1.10).

> The sentence I have marked is incorrect in the presence of the "AUTH" or
> "STARTTLS" extensions and is generally contradictory with the definition
> of "RSET", namely to reset the _transaction state_ rather than the
> _connection state_.

> I propose that the sentence marked above be deleted.

I support this change.

-- 
Russ Allbery ([email-masked])             <http://www.eyrie.org/~eagle/>

---

From: Russ Allbery <[email-masked]>
Date: 14 Aug 2000 20:16:30 -0700

> knowledge of an unstated assumption.

Doesn't this part of the current text already cover that?

  This command specifies that the current mail transaction will be
  aborted.  Any stored sender, recipients, and mail data MUST be
  discarded, and all buffers and state tables cleared.

I had the same question at first, but on re-reading that seems to sum up
everything that RSET should do.