[Spice-devel] [PATCH spice-gtk v2 3/4] uri: generate spice://host:port or spice+tls://host:port

Frediano Ziglio fziglio at redhat.com
Fri Mar 2 17:20:19 UTC 2018


> 
> Hi
> 
> On Wed, Feb 21, 2018 at 5:53 PM, Marc-André Lureau
> <marcandre.lureau at gmail.com> wrote:
> > On Wed, Feb 21, 2018 at 10:17 AM, Frediano Ziglio <fziglio at redhat.com>
> > wrote:
> >>> From: Marc-André Lureau <marcandre.lureau at redhat.com>
> >>>
> >>> Signed-off-by: Marc-André Lureau <marcandre.lureau at redhat.com>
> >>> ---
> >>>  src/spice-session.c | 31 +++++++++++++++++++++++--------
> >>>  tests/session.c     | 20 ++++++++++----------
> >>>  2 files changed, 33 insertions(+), 18 deletions(-)
> >>>
> >>> diff --git a/src/spice-session.c b/src/spice-session.c
> >>> index d2aa5e7..6faf0f2 100644
> >>> --- a/src/spice-session.c
> >>> +++ b/src/spice-session.c
> >>> @@ -400,17 +400,32 @@ static gchar* spice_uri_create(SpiceSession
> >>> *session)
> >>>      if (s->unix_path != NULL) {
> >>>          return g_strdup_printf(URI_SCHEME_SPICE_UNIX "%s",
> >>>          s->unix_path);
> >>>      } else if (s->host != NULL) {
> >>> +        GString *str;
> >>>          g_return_val_if_fail(s->port != NULL || s->tls_port != NULL,
> >>>          NULL);
> >>>
> >>> -        GString *str = g_string_new(URI_SCHEME_SPICE);
> >>> +        if (!!s->tls_port + !!s->port == 1) {
> >>> +            /* use spice://foo:4390 or spice+tls://.. form */
> >>> +            const char *port;
> >>>
> >>> -        g_string_append(str, s->host);
> >>> -        g_string_append(str, "?");
> >>> -        if (s->port != NULL) {
> >>> -            g_string_append_printf(str, "port=%s&", s->port);
> >>> -        }
> >>> -        if (s->tls_port != NULL) {
> >>> -            g_string_append_printf(str, "tls-port=%s", s->tls_port);
> >>> +            if (s->tls_port) {
> >>> +                str = g_string_new(URI_SCHEME_SPICE_TLS);
> >>> +                port = s->tls_port;
> >>> +            } else {
> >>> +                str = g_string_new(URI_SCHEME_SPICE);
> >>> +                port = s->port;
> >>> +            }
> >>> +            g_string_append_printf(str, "%s:%s", s->host, port);
> >>> +        } else {
> >>> +            /* use spice://foo?port=4390&tls-port= form */
> >>> +            str = g_string_new(URI_SCHEME_SPICE);
> >>> +            g_string_append(str, s->host);
> >>> +            g_string_append(str, "?");
> >>> +            if (s->port != NULL) {
> >>> +                g_string_append_printf(str, "port=%s&", s->port);
> >>> +            }
> >>> +            if (s->tls_port != NULL) {
> >>> +                g_string_append_printf(str, "tls-port=%s", s->tls_port);
> >>> +            }
> >>>          }
> >>>          return g_string_free(str, FALSE);
> >>>      }
> >>
> >> Looks more complicated than should be, specially the !!s->tls_port +
> >> !!s->port == 1
> >> check. Considered that the row above remove the case where none are set
> >> the check can just be if both are set and the reverse, I propose (tested)
> >> a
> >>
> >>
> >
> > Indeed, thanks for the suggestion!
> 
> ack with your changes, or would you like me to resend the pending patches?
> 

Fine, merged, was going to ask but either you or me seems busy.

Frediano


More information about the Spice-devel mailing list