[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: #1132: Allowing IP addresses as path-identiites - Poll result
Charles Lindsey wrote:
> path-identity = dot-atom-text / bareword
Hi, you can't say <dot-atom-text> here, it contains some
characters we don't like (delimiters for 1036 incl. "!"):
ATEXT: ALNUM ! # $ % & ' * + - / = ? ^ _ ` { | } ~
LDH : ALNUM _
Let's stick to some kind of <ldh-string>.
> bareword = ALPHA *( [ "-" / "_" ] (ALPHA / DIGIT) )
Yes. For a "bare" version of <ldh-string> you'd get...
ldh-fqdn = ALPHA *( [ "-" / "." ] (ALPHA / DIGIT) )
...or similar. And for an unambiguous bareword without
underscore you'd need the "at least one dot" kludge, i.e.
path-identity = ( 1*( label "." ) label ) / bareword
label = alphanum [ *( alphanum / "-" ) alphanum ]
alphanum = ALPHA / DIGIT
There are several cases of ALPHA / DIGIT in USEFOR, so the
additional <alphanum> is justified.
With that version of <label> there's still an unnecessary
ambiguity with <IPv4address>, it can be solved by <toplabel>:
path-identity = ( 1*( label "." ) toplabel ) / bareword
label = alphanum [ *( alphanum / "-" ) alphanum ]
toplabel = ALPHA [ *( alphanum / "-" ) alphanum ]
alphanum = ALPHA / DIGIT
IIRC we already had this part of the syntax before in the
discussions.
> tail-entry = dot-atom-text / bareword
No <dot-atom-text>, just say tail-entry = path-identity
> source-identity = dot-atom-text / IP-address / bareword
Dito, source-identity = path-identity / IP-address
Actually I don't see the point of bareword here, is that for
POSTED and MISMATCH in this variant ? You could enumerate it:
source-identity = ( 1*( label "." ) toplabel )
/ "MISMATCH" / "POSTED" / IP-address
> IP-address = IPv4address / IPv6address ; see [RFC 3986]
Okay. The latter has always a colon, so that's unambiguous
(add usual dead:beef rant here). The former has always three
dots and digits, but never an ALPHA => no <toplabel>, no FQDN.
> [2nd version of syntax, making <source-identity>s readily
> distinguishable from <path-identity>s.]
[...]
> path-identity = dot-atom-text / bareword
See above, better use <label> - in this variant an IPv4 is
always unambiguous, you don't need the <toplabel> detail.
> tail-entry = dot-atom-text / bareword
See above, tail-entry = path-identity or, as you have it,
just the same syntax, but not the <dot-atom-text> version.
> path-source = source-identity ( ".SEEN" / ".MATCH" /
> ".MISMATCH" )
> source-identity = dot-atom-text / IP-address / bareword
Something's wrong here, your syntax aparently allows...
path-identity!path-identity!POSTED!path-source!
path-identity!path-identity path-source!
path-identity!path-identity
The third case is wrong, you want an "!" at the end, always.
The second case is also wrong, missing "!" before the source.
> Two "!"s in succession are equivelent to
> "!site.example.MATCH!"
Okay, here's the fixed (?) version:
path-entry = 1*( path-identity "!" )
[ "POSTED!" ] [[ path-source ] "!" ]
Skipping the prose, please could somebody else check this ?
Bye, Frank