Re: Reg-name conflict between 2396 and 3986

Elliotte Rusty Harold wrote:

> For instance, dcp.tcp.pft://192.168.0.1:1002:3002?fec=1&crc=0
> is legal in 2396

Let's see, the ":3002" is odd.

 URI-reference = [ absoluteURI | relativeURI ] [ "#" fragment ]

Strike fragment in URI-reference.

 relativeURI   = ( net_path | abs_path | rel_path ) [ "?" query ]

 net_path      = "//" authority [ abs_path ]
 abs_path      = "/"  path_segments
 rel_path      = rel_segment [ abs_path ]

Strike net_path and abs_path in relativeURI.

 rel_segment   = 1*( unreserved | escaped |
                    ";" | "@" | "&" | "=" | "+" | "$" | "," )

":" is reserved.
Strike rel_segment killing rel_path,
Strike rel_path killing RelativeURI.
Strike RelativeURI in URI-Reference.

 absoluteURI   = scheme ":" ( hier_part | opaque_part )
 scheme        = alpha *( alpha | digit | "+" | "-" | "." )

Note "dcp.tcp.pft" as scheme.

 opaque_part   = uric_no_slash *uric
 uric_no_slash = unreserved | escaped | ";" | "?" | ":" | "@" |
                 "&" | "=" | "+" | "$" | ","

"//" is no uric_no_slash.
Strike opaque_part in absoluteURI.

 hier_part     = ( net_path | abs_path ) [ "?" query ]

Strike abs_path in hier_part, "//" is a net_path, see above.

 authority     = server | reg_name
 reg_name      = 1*( unreserved | escaped | "$" | "," |
                    ";" | ":" | "@" | "&" | "=" | "+" )
 unreserved    = alphanum | mark
 mark          = "-" | "_" | "." | "!" | "~" | "*" | "'" |
                 "(" | ")"
 alphanum      = alpha | digit

Oops, "192.168.0.1:1002:3002" is a reg_name.  And how was that
supposed to work with an IPv4address in hostport of a server ?
Is there any "try alternatives left to right" precedence rule
in RfC 2234 ?
              Bye, Frank

Received on Saturday, 9 April 2005 03:19:45 UTC