[Top] [All Lists]

Re: BDAT, RFC 3030 protocol clarification?

2003-06-16 10:23:26

On Monday, June 16, 2003, at 12:31  PM, Vaudreuil, Greg M (Greg) wrote:

Do I hear an emerging consensus to clarify in the harmony with the pipelining standard? I see three points to clarify:

1) Servers must accept the state-change into receiving BDAT command and associated message data even with no valid RCPT TO recipients or problems with the MAIL FROM command.

yes. but clients are still not supposed to send BDAT unless the server has returned 2xx on MAIL and at least one RCPT command.

2) Servers must send a 4XX or 5XX in response to a BDAT if it can't accept for any reason, incluing having no valid recipients.

must seems a bit too restrictive - it could be read as requiring servers to check for any possible failure before returning a BDAT response. if we said SHOULD instead of must it would allow servers to delay checking for various failures.

3) Servers MAY choose to terminate the TCP connection rather than drink (then expell) a big gulp from a pipelining client.

not in general. this is a specific kludge for the case where the server returned 5xx to MAIL or to all RCPTs, and the client sent BDAT anyway, and the server returned 5xx to that too. we don't want to give servers license to close connections for BDAT under other conditions.

Clients must interpret the returned status codes and do the right thing (not send that message again, or delay).

pipelining clients have an obligation to read server BDAT responses and act on them in a timely fashion, just not to block waiting on those responses.