[Spice-devel] [PATCHv2 04/10] session: add unix-path property

Marc-André Lureau marcandre.lureau at redhat.com
Tue Jan 27 05:53:17 PST 2015


---
 gtk/spice-session.c | 35 ++++++++++++++++++++++++++++++++++-
 1 file changed, 34 insertions(+), 1 deletion(-)

diff --git a/gtk/spice-session.c b/gtk/spice-session.c
index d7f014c..98708c8 100644
--- a/gtk/spice-session.c
+++ b/gtk/spice-session.c
@@ -45,6 +45,7 @@ struct channel {
 
 struct _SpiceSessionPrivate {
     char              *host;
+    char              *unix_path;
     char              *port;
     char              *tls_port;
     char              *username;
@@ -197,7 +198,8 @@ enum {
     PROP_PROXY,
     PROP_SECURE_CHANNELS,
     PROP_SHARED_DIR,
-    PROP_USERNAME
+    PROP_USERNAME,
+    PROP_UNIX_PATH,
 };
 
 /* signals */
@@ -318,6 +320,7 @@ spice_session_finalize(GObject *gobject)
     SpiceSessionPrivate *s = session->priv;
 
     /* release stuff */
+    g_free(s->unix_path);
     g_free(s->host);
     g_free(s->port);
     g_free(s->tls_port);
@@ -524,6 +527,9 @@ static void spice_session_get_property(GObject    *gobject,
     case PROP_HOST:
         g_value_set_string(value, s->host);
 	break;
+    case PROP_UNIX_PATH:
+        g_value_set_string(value, s->unix_path);
+        break;
     case PROP_PORT:
         g_value_set_string(value, s->port);
 	break;
@@ -635,6 +641,10 @@ static void spice_session_set_property(GObject      *gobject,
         g_free(s->host);
         s->host = g_value_dup_string(value);
         break;
+    case PROP_UNIX_PATH:
+        g_free(s->unix_path);
+        s->unix_path = g_value_dup_string(value);
+        break;
     case PROP_PORT:
         g_free(s->port);
         s->port = g_value_dup_string(value);
@@ -779,6 +789,23 @@ static void spice_session_class_init(SpiceSessionClass *klass)
                              G_PARAM_STATIC_STRINGS));
 
     /**
+     * SpiceSession:unix-path:
+     *
+     * Path of the Unix socket to connect to
+     *
+     * Since: 0.28
+     **/
+    g_object_class_install_property
+        (gobject_class, PROP_UNIX_PATH,
+         g_param_spec_string("unix-path",
+                             "Unix path",
+                             "Unix path",
+                             NULL,
+                             G_PARAM_READWRITE |
+                             G_PARAM_CONSTRUCT |
+                             G_PARAM_STATIC_STRINGS));
+
+    /**
      * SpiceSession:port:
      *
      * Port to connect to for unencrypted sessions
@@ -1359,6 +1386,7 @@ SpiceSession *spice_session_new_from_session(SpiceSession *session)
     g_clear_object(&c->proxy);
 
     g_warn_if_fail(c->host == NULL);
+    g_warn_if_fail(c->unix_path == NULL);
     g_warn_if_fail(c->tls_port == NULL);
     g_warn_if_fail(c->username == NULL);
     g_warn_if_fail(c->password == NULL);
@@ -1371,6 +1399,7 @@ SpiceSession *spice_session_new_from_session(SpiceSession *session)
 
     g_object_get(session,
                  "host", &c->host,
+                 "unix-path", &c->unix_path,
                  "tls-port", &c->tls_port,
                  "username", &c->username,
                  "password", &c->password,
@@ -1544,6 +1573,10 @@ void spice_session_start_migrating(SpiceSession *session,
     s->tls_port = m->tls_port;
     m->tls_port = tmp;
 
+    tmp = s->unix_path;
+    s->unix_path = m->unix_path;
+    m->unix_path = tmp;
+
     g_warn_if_fail(ring_get_length(&s->channels) == ring_get_length(&m->channels));
 
     SPICE_DEBUG("migration channels left:%d (in migration:%d)",
-- 
2.1.0



More information about the Spice-devel mailing list