Re: [PATCH] session: accept argument in URI without value

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



----- Original Message -----
> The examples below should be considered valid URIs:
> 
> e.g: spice://localhost?port=5900&tls-port=
> e.g: spice://localhost?tls-port=&port=5900
> 
> This patch deals with arguments with empty value;

Looks good,

would you mind making a second patch to test parsing of a couple of valid and invalid URIs?

This will help when glib will finally have GUri support (we will still have to keep all URI parsing around for a while)

> ---
>  gtk/spice-session.c | 20 ++++++++++++++++++--
>  1 file changed, 18 insertions(+), 2 deletions(-)
> 
> diff --git a/gtk/spice-session.c b/gtk/spice-session.c
> index 82ea55f..607224b 100644
> --- a/gtk/spice-session.c
> +++ b/gtk/spice-session.c
> @@ -470,10 +470,26 @@ static int spice_parse_uri(SpiceSession *session, const
> char *original_uri)
>          gchar **target_key;
>  
>          int len;
> -        if (sscanf(query, "%31[-a-zA-Z0-9]=%127[^;&]%n", key, value, &len)
> != 2) {
> -            g_warning("Failed to parse URI query '%s'", query);
> +        if (sscanf(query, "%31[-a-zA-Z0-9]=%n", key, &len) != 1) {
> +            spice_warning("Failed to parse key in URI '%s'", query);
>              goto fail;
>          }
> +
> +        query += len;
> +        if (*query == '\0') {
> +            spice_warning ("key '%s' without value", key);
> +            break;
> +        } else if (*query == ';' || *query == '&') {
> +            /* another argument */
> +            query++;
> +            continue;
> +        }
> +
> +        if (sscanf(query, "%127[^;&]%n", value, &len) != 1) {
> +            spice_warning("Failed to parse value of key '%s' in URI '%s'",
> key, query);
> +            goto fail;
> +        }
> +
>          query += len;
>          if (*query)
>              query++;
> --
> 2.1.0
> 
> _______________________________________________
> Spice-devel mailing list
> Spice-devel@xxxxxxxxxxxxxxxxxxxxx
> http://lists.freedesktop.org/mailman/listinfo/spice-devel
> 
_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/spice-devel





[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]