summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEduardo Lima (Etrunko) <etrunko@redhat.com>2019-10-03 15:38:43 -0300
committerEduardo Lima (Etrunko) <etrunko@redhat.com>2019-10-11 10:55:00 -0300
commitb63e90f1f9a647aa40bb9abd0129cefd849a2f21 (patch)
tree848fedaed6100ef262024423cec94cdbddc58c58
parenta13173ae649412d06106a0d9c6d29e6a45d5bf57 (diff)
remote-viewer: Prefer ca-cert from display instead of proxy
Since oVirt engine version 4.3.2.1, the API returns certificate data for display connection in the VM XML, so users do not need to specify it from the command line anymore. The certificate obtained from the XML gets precedence over the one from the command line, which is still kept to keep compatibility of older versions of oVirt. Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1402909 Signed-off-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>
-rw-r--r--src/remote-viewer.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/remote-viewer.c b/src/remote-viewer.c
index 8eaa72e..2450096 100644
--- a/src/remote-viewer.c
+++ b/src/remote-viewer.c
@@ -540,7 +540,8 @@ create_ovirt_session(VirtViewerApp *app, const char *uri, GError **err)
#ifdef HAVE_SPICE_GTK
if (type == OVIRT_VM_DISPLAY_SPICE) {
SpiceSession *session;
- GByteArray *ca_cert;
+ GByteArray *ca_cert = NULL;
+ const char *from = "display";
session = remote_viewer_get_spice_session(REMOTE_VIEWER(app));
g_object_set(G_OBJECT(session),
@@ -548,12 +549,19 @@ create_ovirt_session(VirtViewerApp *app, const char *uri, GError **err)
"cert-subject", host_subject,
"proxy", proxy_url,
NULL);
- g_object_get(G_OBJECT(proxy), "ca-cert", &ca_cert, NULL);
+
+ g_object_get(G_OBJECT(display), "ca-cert", &ca_cert, NULL);
+ if (ca_cert == NULL) {
+ g_object_get(G_OBJECT(proxy), "ca-cert", &ca_cert, NULL);
+ from = "proxy";
+ }
+
if (ca_cert != NULL) {
g_object_set(G_OBJECT(session),
"ca", ca_cert,
NULL);
g_byte_array_unref(ca_cert);
+ g_debug("Using ca-cert from %s", from);
}
}
#endif