[gtk-vnc] Convert VncConnectionCredential to VncDisplayCredential



commit 5a33bad94724b85fbf237dd94806ea589339c64b
Author: Daniel P. Berrange <berrange redhat com>
Date:   Fri Feb 22 11:24:09 2013 +0000

    Convert VncConnectionCredential to VncDisplayCredential
    
    When forwarding the auth signal from VncConnection to consumers
    of VncDisplay, the VncConnectionCredential enums must be turned
    into VncDisplayCredential enums
    
    Signed-off-by: Daniel P. Berrange <berrange redhat com>

 src/vncdisplay.c |   18 +++++++++++++++++-
 1 files changed, 17 insertions(+), 1 deletions(-)
---
diff --git a/src/vncdisplay.c b/src/vncdisplay.c
index 14df066..37de008 100644
--- a/src/vncdisplay.c
+++ b/src/vncdisplay.c
@@ -1220,8 +1220,24 @@ static void on_auth_cred(VncConnection *conn G_GNUC_UNUSED,
                          gpointer opaque)
 {
     VncDisplay *obj = VNC_DISPLAY(opaque);
+    GValueArray *newCreds = g_value_array_new(0);
+    gsize i;
+
+    for (i = 0 ; i < creds->n_values ; i++) {
+        GValue *cred = g_value_array_get_nth(creds, i);
+        GValue newCred;
+        memset(&newCred, 0, sizeof(newCred));
+        g_value_init(&newCred, VNC_TYPE_DISPLAY_CREDENTIAL);
+        /* Take advantage that VncDisplayCredential &
+         * VncConnectionCredential share same enum values
+         */
+        g_value_set_enum(&newCred, g_value_get_enum(cred));
+        newCreds = g_value_array_append(newCreds, &newCred);
+    }
+
+    g_signal_emit(G_OBJECT(obj), signals[VNC_AUTH_CREDENTIAL], 0, newCreds);
 
-    g_signal_emit(G_OBJECT(obj), signals[VNC_AUTH_CREDENTIAL], 0, creds);
+    g_value_array_free(newCreds);
 }
 
 static void on_auth_choose_type(VncConnection *conn,


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