All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 0/2] vnc: -readconfig fixups
@ 2015-02-17  9:02 Gerd Hoffmann
  2015-02-17  9:02 ` [Qemu-devel] [PATCH 1/2] vnc: set id at parse time not init time Gerd Hoffmann
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Gerd Hoffmann @ 2015-02-17  9:02 UTC (permalink / raw)
  To: qemu-devel; +Cc: armbru, Gerd Hoffmann

  Hi,

Series applies on top of the pending vnc pull request.
Fix -writeconfig/-readconfig related fallout from
the QemuOpts conversion of the vnc configuration.

cheers,
  Gerd

Gerd Hoffmann (2):
  vnc: set id at parse time not init time
  vnc: -readconfig fix

 include/ui/console.h |  1 -
 qmp.c                |  1 -
 ui/vnc.c             | 22 ++++++++++++----------
 vl.c                 |  7 +++++--
 4 files changed, 17 insertions(+), 14 deletions(-)

-- 
1.8.3.1

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Qemu-devel] [PATCH 1/2] vnc: set id at parse time not init time
  2015-02-17  9:02 [Qemu-devel] [PATCH 0/2] vnc: -readconfig fixups Gerd Hoffmann
@ 2015-02-17  9:02 ` Gerd Hoffmann
  2015-02-17  9:02 ` [Qemu-devel] [PATCH 2/2] vnc: -readconfig fix Gerd Hoffmann
  2015-02-17 12:19 ` [Qemu-devel] [PATCH 0/2] vnc: -readconfig fixups Markus Armbruster
  2 siblings, 0 replies; 4+ messages in thread
From: Gerd Hoffmann @ 2015-02-17  9:02 UTC (permalink / raw)
  To: qemu-devel; +Cc: Luiz Capitulino, armbru, Anthony Liguori, Gerd Hoffmann

This way the generated id will be stored in -writeconfig cfg files.
Also we can make vnc_auto_assign_id() local to vnc.c.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 include/ui/console.h |  1 -
 qmp.c                |  1 -
 ui/vnc.c             | 22 ++++++++++++----------
 3 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/include/ui/console.h b/include/ui/console.h
index 5c19c3c..8a4d671 100644
--- a/include/ui/console.h
+++ b/include/ui/console.h
@@ -335,7 +335,6 @@ void vnc_display_init(const char *id);
 void vnc_display_open(const char *id, Error **errp);
 void vnc_display_add_client(const char *id, int csock, bool skipauth);
 char *vnc_display_local_addr(const char *id);
-void vnc_auto_assign_id(QemuOptsList *olist, QemuOpts *opts);
 #ifdef CONFIG_VNC
 int vnc_display_password(const char *id, const char *password);
 int vnc_display_pw_expire(const char *id, time_t expires);
diff --git a/qmp.c b/qmp.c
index d701cff..c479e77 100644
--- a/qmp.c
+++ b/qmp.c
@@ -391,7 +391,6 @@ static void qmp_change_vnc_listen(const char *target, Error **errp)
         return;
     }
 
-    vnc_auto_assign_id(olist, opts);
     vnc_display_open("default", errp);
 }
 
diff --git a/ui/vnc.c b/ui/vnc.c
index 10a2724..ff0b5bd 100644
--- a/ui/vnc.c
+++ b/ui/vnc.c
@@ -3687,12 +3687,7 @@ void vnc_display_add_client(const char *id, int csock, bool skipauth)
     vnc_connect(vs, csock, skipauth, false);
 }
 
-QemuOpts *vnc_parse_func(const char *str)
-{
-    return qemu_opts_parse(qemu_find_opts("vnc"), str, 1);
-}
-
-void vnc_auto_assign_id(QemuOptsList *olist, QemuOpts *opts)
+static void vnc_auto_assign_id(QemuOptsList *olist, QemuOpts *opts)
 {
     int i = 2;
     char *id;
@@ -3705,18 +3700,25 @@ void vnc_auto_assign_id(QemuOptsList *olist, QemuOpts *opts)
     qemu_opts_set_id(opts, id);
 }
 
-int vnc_init_func(QemuOpts *opts, void *opaque)
+QemuOpts *vnc_parse_func(const char *str)
 {
-    Error *local_err = NULL;
     QemuOptsList *olist = qemu_find_opts("vnc");
-    char *id = (char *)qemu_opts_id(opts);
+    QemuOpts *opts = qemu_opts_parse(olist, str, 1);
+    const char *id = qemu_opts_id(opts);
 
     if (!id) {
         /* auto-assign id if not present */
         vnc_auto_assign_id(olist, opts);
-        id = (char *)qemu_opts_id(opts);
     }
+    return opts;
+}
+
+int vnc_init_func(QemuOpts *opts, void *opaque)
+{
+    Error *local_err = NULL;
+    char *id = (char *)qemu_opts_id(opts);
 
+    assert(id);
     vnc_display_init(id);
     vnc_display_open(id, &local_err);
     if (local_err != NULL) {
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [Qemu-devel] [PATCH 2/2] vnc: -readconfig fix
  2015-02-17  9:02 [Qemu-devel] [PATCH 0/2] vnc: -readconfig fixups Gerd Hoffmann
  2015-02-17  9:02 ` [Qemu-devel] [PATCH 1/2] vnc: set id at parse time not init time Gerd Hoffmann
@ 2015-02-17  9:02 ` Gerd Hoffmann
  2015-02-17 12:19 ` [Qemu-devel] [PATCH 0/2] vnc: -readconfig fixups Markus Armbruster
  2 siblings, 0 replies; 4+ messages in thread
From: Gerd Hoffmann @ 2015-02-17  9:02 UTC (permalink / raw)
  To: qemu-devel; +Cc: Paolo Bonzini, armbru, Anthony Liguori, Gerd Hoffmann

Now that -vnc goes through QemuOpts we can get vnc configuration
via -readconfig too.  So setting display_remote in the command
line parsing code doesn't cut it any more, we must check QemuOpts
instead to see whenever any vnc display is configured.

Reported-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 vl.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/vl.c b/vl.c
index 8c8f142..6677f6c 100644
--- a/vl.c
+++ b/vl.c
@@ -2000,7 +2000,6 @@ static DisplayType select_display(const char *p)
     } else if (strstart(p, "vnc", &opts)) {
 #ifdef CONFIG_VNC
         if (*opts == '=') {
-            display_remote++;
             if (vnc_parse_func(opts+1) == NULL) {
                 exit(1);
             }
@@ -3474,7 +3473,6 @@ int main(int argc, char **argv, char **envp)
                 break;
             case QEMU_OPTION_vnc:
 #ifdef CONFIG_VNC
-                display_remote++;
                 if (vnc_parse_func(optarg) == NULL) {
                     exit(1);
                 }
@@ -3967,6 +3965,11 @@ int main(int argc, char **argv, char **envp)
         }
     }
 
+#if defined(CONFIG_VNC)
+    if (!QTAILQ_EMPTY(&(qemu_find_opts("vnc")->head))) {
+        display_remote++;
+    }
+#endif
     if (display_type == DT_DEFAULT && !display_remote) {
 #if defined(CONFIG_GTK)
         display_type = DT_GTK;
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [Qemu-devel] [PATCH 0/2] vnc: -readconfig fixups
  2015-02-17  9:02 [Qemu-devel] [PATCH 0/2] vnc: -readconfig fixups Gerd Hoffmann
  2015-02-17  9:02 ` [Qemu-devel] [PATCH 1/2] vnc: set id at parse time not init time Gerd Hoffmann
  2015-02-17  9:02 ` [Qemu-devel] [PATCH 2/2] vnc: -readconfig fix Gerd Hoffmann
@ 2015-02-17 12:19 ` Markus Armbruster
  2 siblings, 0 replies; 4+ messages in thread
From: Markus Armbruster @ 2015-02-17 12:19 UTC (permalink / raw)
  To: Gerd Hoffmann; +Cc: qemu-devel

Gerd Hoffmann <kraxel@redhat.com> writes:

>   Hi,
>
> Series applies on top of the pending vnc pull request.
> Fix -writeconfig/-readconfig related fallout from
> the QemuOpts conversion of the vnc configuration.

Tested-by: Markus Armbruster <armbru@redhat.com>

I don't like that ID "default" is special, but as long as I can't offer
better ideas...

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-02-17 12:20 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-02-17  9:02 [Qemu-devel] [PATCH 0/2] vnc: -readconfig fixups Gerd Hoffmann
2015-02-17  9:02 ` [Qemu-devel] [PATCH 1/2] vnc: set id at parse time not init time Gerd Hoffmann
2015-02-17  9:02 ` [Qemu-devel] [PATCH 2/2] vnc: -readconfig fix Gerd Hoffmann
2015-02-17 12:19 ` [Qemu-devel] [PATCH 0/2] vnc: -readconfig fixups Markus Armbruster

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.