[Spice-devel] [PATCH 2/3] Add "username" property to SpiceSession

Christophe Fergeau cfergeau at redhat.com
Fri Oct 3 06:36:43 PDT 2014


On Wed, Oct 01, 2014 at 04:36:45PM +0200, Fabiano Fidêncio wrote:
> From: Dietmar Maurer <dietmar at proxmox.com>
> 
> ---
>  gtk/spice-session-priv.h |  2 ++
>  gtk/spice-session.c      | 43 +++++++++++++++++++++++++++++++++++++++++--
>  2 files changed, 43 insertions(+), 2 deletions(-)
> 
> diff --git a/gtk/spice-session-priv.h b/gtk/spice-session-priv.h
> index 4b2c151..da43866 100644
> --- a/gtk/spice-session-priv.h
> +++ b/gtk/spice-session-priv.h
> @@ -45,6 +45,7 @@ struct _SpiceSessionPrivate {
>      char              *host;
>      char              *port;
>      char              *tls_port;
> +    char              *username;
>      char              *password;
>      char              *ca_file;
>      char              *ciphers;
> @@ -146,6 +147,7 @@ void spice_session_set_migration_state(SpiceSession *session, SpiceSessionMigrat
>  void spice_session_set_port(SpiceSession *session, int port, gboolean tls);
>  void spice_session_get_pubkey(SpiceSession *session, guint8 **pubkey, guint *size);
>  guint spice_session_get_verify(SpiceSession *session);
> +const gchar* spice_session_get_username(SpiceSession *session);
>  const gchar* spice_session_get_password(SpiceSession *session);
>  const gchar* spice_session_get_host(SpiceSession *session);
>  const gchar* spice_session_get_cert_subject(SpiceSession *session);
> diff --git a/gtk/spice-session.c b/gtk/spice-session.c
> index 49afc97..592325a 100644
> --- a/gtk/spice-session.c
> +++ b/gtk/spice-session.c
> @@ -111,7 +111,8 @@ enum {
>      PROP_CA,
>      PROP_PROXY,
>      PROP_SECURE_CHANNELS,
> -    PROP_SHARED_DIR
> +    PROP_SHARED_DIR,
> +    PROP_USERNAME
>  };
>  
>  /* signals */
> @@ -217,6 +218,7 @@ spice_session_finalize(GObject *gobject)
>      g_free(s->host);
>      g_free(s->port);
>      g_free(s->tls_port);
> +    g_free(s->username);
>      g_free(s->password);
>      g_free(s->ca_file);
>      g_free(s->ciphers);
> @@ -262,7 +264,7 @@ static int spice_uri_create(SpiceSession *session, char *dest, int len)
>  static int spice_parse_uri(SpiceSession *session, const char *original_uri)
>  {
>      SpiceSessionPrivate *s = session->priv;
> -    gchar *host = NULL, *port = NULL, *tls_port = NULL, *uri = NULL, *password = NULL;
> +    gchar *host = NULL, *port = NULL, *tls_port = NULL, *uri = NULL, *username = NULL, *password = NULL;
>      gchar *path = NULL;
>      gchar *unescaped_path = NULL;
>      gchar *authority = NULL;
> @@ -348,6 +350,8 @@ static int spice_parse_uri(SpiceSession *session, const char *original_uri)
>              target_key = &port;
>          } else if (g_str_equal(key, "tls-port")) {
>              target_key = &tls_port;
> +        } else if (g_str_equal(key, "username")) {
> +            target_key = &username;
>          } else if (g_str_equal(key, "password")) {
>              target_key = &password;
>              g_warning("password may be visible in process listings");
> @@ -375,10 +379,12 @@ static int spice_parse_uri(SpiceSession *session, const char *original_uri)
>      g_free(s->host);
>      g_free(s->port);
>      g_free(s->tls_port);
> +    g_free(s->username);
>      g_free(s->password);
>      s->host = host;
>      s->port = port;
>      s->tls_port = tls_port;
> +    s->username = username;
>      s->password = password;
>      return 0;
>  
> @@ -412,6 +418,9 @@ static void spice_session_get_property(GObject    *gobject,
>      case PROP_TLS_PORT:
>          g_value_set_string(value, s->tls_port);
>  	break;
> +    case PROP_USERNAME:
> +        g_value_set_string(value, s->username);
> +	break;
>      case PROP_PASSWORD:
>          g_value_set_string(value, s->password);
>  	break;
> @@ -522,6 +531,10 @@ static void spice_session_set_property(GObject      *gobject,
>          g_free(s->tls_port);
>          s->tls_port = g_value_dup_string(value);
>          break;
> +    case PROP_USERNAME:
> +        g_free(s->username);
> +        s->username = g_value_dup_string(value);
> +        break;
>      case PROP_PASSWORD:
>          g_free(s->password);
>          s->password = g_value_dup_string(value);
> @@ -688,6 +701,21 @@ static void spice_session_class_init(SpiceSessionClass *klass)
>                               G_PARAM_STATIC_STRINGS));
>  
>      /**
> +     * SpiceSession:username:
> +     *
> +     * Username to use
> +     *
> +     **/
> +    g_object_class_install_property
> +        (gobject_class, PROP_USERNAME,
> +         g_param_spec_string("username",
> +                             "Username",
> +                             "",

I'd add a bit of text here, patch looks good otherwise.

Christophe

> +                             NULL,
> +                             G_PARAM_READWRITE |
> +                             G_PARAM_STATIC_STRINGS));
> +
> +    /**
>       * SpiceSession:password:
>       *
>       * TLS password to use
> @@ -1214,6 +1242,7 @@ SpiceSession *spice_session_new_from_session(SpiceSession *session)
>  
>      g_warn_if_fail(c->host == NULL);
>      g_warn_if_fail(c->tls_port == NULL);
> +    g_warn_if_fail(c->username == NULL);
>      g_warn_if_fail(c->password == NULL);
>      g_warn_if_fail(c->ca_file == NULL);
>      g_warn_if_fail(c->ciphers == NULL);
> @@ -1225,6 +1254,7 @@ SpiceSession *spice_session_new_from_session(SpiceSession *session)
>      g_object_get(session,
>                   "host", &c->host,
>                   "tls-port", &c->tls_port,
> +                 "username", &c->username,
>                   "password", &c->password,
>                   "ca-file", &c->ca_file,
>                   "ciphers", &c->ciphers,
> @@ -2073,6 +2103,15 @@ void spice_session_set_migration_state(SpiceSession *session, SpiceSessionMigrat
>  }
>  
>  G_GNUC_INTERNAL
> +const gchar* spice_session_get_username(SpiceSession *session)
> +{
> +    SpiceSessionPrivate *s = session->priv;
> +
> +    g_return_val_if_fail(s != NULL, NULL);
> +    return s->username;
> +}
> +
> +G_GNUC_INTERNAL
>  const gchar* spice_session_get_password(SpiceSession *session)
>  {
>      SpiceSessionPrivate *s = session->priv;
> -- 
> 1.9.3
> 
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/spice-devel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/spice-devel/attachments/20141003/9bba69fd/attachment.sig>


More information about the Spice-devel mailing list