[Spice-devel] [PATCH spice-common 3/3] docs: add spice URI scheme

Marc-André Lureau marcandre.lureau at gmail.com
Tue Jan 15 14:00:09 UTC 2019


Hi

On Tue, Jan 15, 2019 at 4:53 PM Christophe Fergeau <cfergeau at redhat.com> wrote:
>
> Hey,
>
> On Fri, Jan 11, 2019 at 11:07:14PM +0400, marcandre.lureau at redhat.com wrote:
> > @@ -0,0 +1,131 @@
> > +The "spice" URI scheme
> > +======================
> > +
> > +This document is inspired by 'The "vnc" URI Scheme' (rfc7869) and
> > +attempts to document a standard Spice URI scheme.
> > +
> > +The normative syntax of the Spice URI is defined in the <spice-uri>
> > +rule in the following syntax specification.  This specification
> > +uses the Augmented Backus-Naur Form (ABNF) as described in
> > +[RFC5234].  The Spice URI conforms to the generic URI syntax
> > +specified in [RFC3986].  The <userinfo>, <host>, <port>,
> > +<unreserved>, and <pct-encoded> rules are defined in [RFC3986].
> > +
> > + spice-uri = spice-scheme "://" [ userinfo "@" ] [ host [ ":" port ] ]
> > +              [ "?" [ spice-params ] ]
> > +
> > + spice-scheme = "spice" / "spice+unix" / "spice+tls"
> > +
> > + spice-params = param "=" value *("&" param "=" value) ["&"]
> > +
> > + param = 1*( param-char )
> > +
> > + value = *( param-char )
> > +
> > + param-char = unreserved / pct-encoded / unreserved-symbols
> > +
> > + unreserved-symbols = ":" / "/" / "@" / "!" / "$" / "'"
> > +                       / "(" / ")" / "*" / "," / ";"
> > +
> > +The "?", "=", and "&" characters are used to delimit Spice parameters
> > +and must be percent-encoded when representing a data octet as
> > +specified in [RFC3986].  Within the <spice-params> portion of a Spice
> > +URI, the <unreserved-symbols> do not have special meaning and need not
> > +be percent-encoded when representing a data octet.
> > +
> > +A Spice URI has the general form:
> > +
> > + spice-scheme://host:port?param1=value1&param2=value2...
>
> I'd mention 'userinfo' in that URI.

The point of this is to show a general form, not a form that has all
the details.

Given that it is discouraged to use userinfo (unless it is done
carefully), I don't think we need to mention it here.

However, there could be more details about it, a line such as:

 userinfo = <as specified in [RFC3986]>

You can also read usage is discouraged there.


>
> > +The <host> value in the "spice+unix://" URI specify the UNIX domain
> > +socket path of the Spice server on the local host:
> > +
> > +[options="header"]
> > +|=======================================================================
> > +| Name       | Type       | Description                     | Default
> > +| host       | string     | UNIX domain socket path         | none
> > +|=======================================================================
>
> RFC3986 has a definition for a 'path-absolute', but this is something which is
> concatenated to the 'host'. A 'host' for RFC3986 cannot contain a '/':
>
>    host          = IP-literal / IPv4address / reg-name
> with
>    reg-name      = *( unreserved / pct-encoded / sub-delims )
>    unreserved    = ALPHA / DIGIT / "-" / "." / "_" / "~"
>    sub-delims    = "!" / "$" / "&" / "'" / "(" / ")"
>                    / "*" / "+" / "," / ";" / "="
>
> I guess you could rework the current definition with something like:
>
> URI = URI-unix / URI-net
> URI-net = spice-scheme-net://host:port?param1=value1&param2=value2...
> URI-unix = spice+unix://path-absolute
>
> Or decide that for now, the current definition is good enough ;)

I agree it could be improved, but for a v1, I would rather have
external contributions for this kind of refinements :)

Thanks

>
>
> Christophe
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/spice-devel



-- 
Marc-André Lureau


More information about the Spice-devel mailing list