]> Git Repo - qemu.git/commitdiff
vnc: reorganize code for reverse mode
authorPaolo Bonzini <[email protected]>
Thu, 18 Oct 2012 07:01:01 +0000 (09:01 +0200)
committerPaolo Bonzini <[email protected]>
Tue, 23 Oct 2012 11:54:56 +0000 (13:54 +0200)
Avoid the dance between csock and vs->lsock.

Signed-off-by: Paolo Bonzini <[email protected]>
console.h
qmp.c
ui/vnc.c

index f990684ef4d294ce94ff70ebaa6c06d83f580946..6099d8d710867ccf0e9a68f97496ed328a9934ec 100644 (file)
--- a/console.h
+++ b/console.h
@@ -378,7 +378,7 @@ void cocoa_display_init(DisplayState *ds, int full_screen);
 /* vnc.c */
 void vnc_display_init(DisplayState *ds);
 void vnc_display_close(DisplayState *ds);
-int vnc_display_open(DisplayState *ds, const char *display);
+void vnc_display_open(DisplayState *ds, const char *display, Error **errp);
 void vnc_display_add_client(DisplayState *ds, int csock, int skipauth);
 int vnc_display_disable_login(DisplayState *ds);
 char *vnc_display_local_addr(DisplayState *ds);
diff --git a/qmp.c b/qmp.c
index 36c54c57cfde6074f7db92d57cccfd319f8bea7d..31bc3bfdd161e70a5797b5ec43ff496e5ace5c04 100644 (file)
--- a/qmp.c
+++ b/qmp.c
@@ -349,11 +349,9 @@ void qmp_change_vnc_password(const char *password, Error **errp)
     }
 }
 
-static void qmp_change_vnc_listen(const char *target, Error **err)
+static void qmp_change_vnc_listen(const char *target, Error **errp)
 {
-    if (vnc_display_open(NULL, target) < 0) {
-        error_set(err, QERR_VNC_SERVER_FAILED, target);
-    }
+    vnc_display_open(NULL, target, errp);
 }
 
 static void qmp_change_vnc(const char *target, bool has_arg, const char *arg,
index 72d6f68897185080e0a4855983bf11522e4bfd63..46de820c80622799c16f143ba2aebd7712c219d9 100644 (file)
--- a/ui/vnc.c
+++ b/ui/vnc.c
@@ -3053,19 +3053,17 @@ int vnc_display_open(DisplayState *ds, const char *display)
 
     if (reverse) {
         /* connect to viewer */
-        if (strncmp(display, "unix:", 5) == 0)
-            vs->lsock = unix_connect(display+5, NULL);
-        else
-            vs->lsock = inet_connect(display, NULL);
-        if (vs->lsock < 0) {
-            goto fail;
+        int csock;
+        vs->lsock = -1;
+        if (strncmp(display, "unix:", 5) == 0) {
+            csock = unix_connect(display+5, NULL);
         } else {
-            int csock = vs->lsock;
-            vs->lsock = -1;
-            vnc_connect(vs, csock, 0);
+            csock = inet_connect(display, NULL);
         }
-        return 0;
-
+        if (csock < 0) {
+            goto fail;
+        }
+        vnc_connect(vs, csock, 0);
     } else {
         /* listen for connects */
         char *dpy;
This page took 0.033109 seconds and 4 git commands to generate.