Re: RFC 5321 VRFY and quoting syntax
2011-05-11 15:25:21
It's a bit hard to follow which part here responds to which of the 3
issues, but I'll try (within) :-)
On 05/11/2011 04:12 PM, Hector Santos wrote:
I think that is it saying for INPUT, you can take either the angle
bracket or non-angle bracket form, but for OUTPUT it MUST be shown in
angle bracket form. It is analogous to looking up someone by name in
a phone book - ultimately it is the single output form - telephone #
Both sections I quoted in #3 explicitly discuss the server's response
(not input, or client request, if I understand your terminology
correctly). They are also both MUSTs. One of them requires inclusion of
the construction "<local-part@domain>" in any response, whereas the
other one gives a response without the brackets as one of the two
allowed forms - that's the conflict I'm seeing.
I'm all for the 'being lenient in input and strict with output' motto -
but the spec must be unambiguous about the output part in order to do
this, and preferably also discuss the possible inputs and preferred ones.
Yes, I agree that in many areas of software, the term QUOTE can be
mixed up with the idea of ESCAPING. In my opinion, ESCAPING is the
proper communications term as it used in many data communications
protocols.
http://www.google.com/search?q=define:character+escaping
Terminology might be ambiguous, but in this case it's not what bothers
me - I'm sticking to the ABNF syntax notation definitions and the
discussion of the use of backslash for its special purpose, regardless
of what we call it :-)
For VRFY, EXPN, the escaping "\" (SLASH) character is used to escape
the next character which could be a formal delimiting character to
separate multiple inputs. For example:
VRFY santos,hector,shane,cory(_at_)localhost(_dot_)com
This would be would be four "local account" user name changes,
santos
hector,
shane,
cory(_at_)localhost(_dot_)com
And depending on the host on how it looks up users, it be by some name
or even address. Some systems (like ours) has three identities per
user account; A number ID, user name and email address. And the user
name may have an old school MHS format (first.last), and in addition
it may take into account the possible internal translations a system
may have like BOSS, PRESIDENT, SYSOP, SUPPORT etc.
Versus:
VRFY santos\,hector,shane,cory(_at_)localhost(_dot_)com
which would be three accounts to look up:
santos,hector
shane
cory(_at_)localhost(_dot_)com
I think I understand your examples and why use of the backslash would be
necessary. However, the part I find problematic, which shows up in your
examples as well, is that according to the spec's ABNF this is invalid:
VRFY santos\,hector,shane,cory(_at_)localhost(_dot_)com
and this is the way it should be:
VRFY "santos\,hector,shane,cory(_at_)localhost(_dot_)com"
In other words, the issue is whether use of the backslash is valid
anywhere, or only within a Quoted-string (as defined in ABNF). If your
examples are indeed valid, then there's a bug in the ABNF part that
needs to be fixed, or at the very least, the paragraph discussing the
backslash should be explicit about it being allowed everywhere despite
the ABNF limiting it just to quotes.
-Amichai
|
|