VirtViewerApp::activate is expected to return -1 on errors.
It calls the VirtViewerSession::open_* methods, which return FALSE
on error. However, VirtViewerApp::activate directly returns these
boolean instead of testing the returned value and properly returning
-1 on errors. This caused errors in these open methodes to be ignored.
---
 src/virt-viewer-app.c |   11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/virt-viewer-app.c b/src/virt-viewer-app.c
index 40d1ff7..2275d1c 100644
--- a/src/virt-viewer-app.c
+++ b/src/virt-viewer-app.c
@@ -846,15 +846,18 @@ virt_viewer_app_default_activate(VirtViewerApp *self)
 #endif
 
     if (fd >= 0) {
-        return virt_viewer_session_open_fd(VIRT_VIEWER_SESSION(priv->session), 
fd);
+        if (virt_viewer_session_open_fd(VIRT_VIEWER_SESSION(priv->session), 
fd))
+            return 0;
     } else if (priv->guri) {
         virt_viewer_app_trace(self, "Opening connection to display at %s\n", 
priv->guri);
-        return 
virt_viewer_session_open_uri(VIRT_VIEWER_SESSION(priv->session), priv->guri);
+        if (virt_viewer_session_open_uri(VIRT_VIEWER_SESSION(priv->session), 
priv->guri))
+            return 0;
     } else {
         virt_viewer_app_trace(self, "Opening direct TCP connection to display 
at %s:%s:%s\n",
                               priv->ghost, priv->gport, priv->gtlsport ? 
priv->gtlsport : "-1");
-        return 
virt_viewer_session_open_host(VIRT_VIEWER_SESSION(priv->session),
-                                             priv->ghost, priv->gport, 
priv->gtlsport);
+        if (virt_viewer_session_open_host(VIRT_VIEWER_SESSION(priv->session),
+                                          priv->ghost, priv->gport, 
priv->gtlsport))
+            return 0;
     }
 
     return -1;
-- 
1.7.10.2

_______________________________________________
virt-tools-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/virt-tools-list

Reply via email to