All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v2 00/13] A bunch of little socket + chardev fixes
@ 2013-06-24  6:39 Gerd Hoffmann
  2013-06-24  6:39 ` [Qemu-devel] [PATCH v2 01/13] qemu-socket: zero-initialize SocketAddress Gerd Hoffmann
                   ` (14 more replies)
  0 siblings, 15 replies; 22+ messages in thread
From: Gerd Hoffmann @ 2013-06-24  6:39 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-trivial, Gerd Hoffmann

  Hi,

Here is v2 of the series, addressing Michaels review comments.

cheers,
  Gerd

Gerd Hoffmann (13):
  qemu-socket: zero-initialize SocketAddress
  qemu-socket: drop pointless allocation
  qemu-socket: catch monitor_get_fd failures
  qemu-char: check optional fields using has_*
  qemu-char: use more specific error_setg_* variants
  qemu-char: print notification to stderr
  qemu-char: fix documentation for telnet+wait socket flags
  qemu-char: don't leak opts on error
  qemu-char: use ChardevBackendKind in in CharDriver
  qemu-char: minor mux chardev fixes
  qemu-char: add -chardev mux support
  qemu-char: report udb backend errors
  qemu-socket: don't leak opts on error

 include/sysemu/char.h |    2 +-
 qapi-schema.json      |    7 ++++---
 qemu-char.c           |   45 ++++++++++++++++++++++++++++++++-------------
 util/qemu-sockets.c   |    9 ++++-----
 4 files changed, 41 insertions(+), 22 deletions(-)

-- 
1.7.9.7

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

* [Qemu-devel] [PATCH v2 01/13] qemu-socket: zero-initialize SocketAddress
  2013-06-24  6:39 [Qemu-devel] [PATCH v2 00/13] A bunch of little socket + chardev fixes Gerd Hoffmann
@ 2013-06-24  6:39 ` Gerd Hoffmann
  2013-06-24  6:39 ` [Qemu-devel] [PATCH v2 02/13] qemu-socket: drop pointless allocation Gerd Hoffmann
                   ` (13 subsequent siblings)
  14 siblings, 0 replies; 22+ messages in thread
From: Gerd Hoffmann @ 2013-06-24  6:39 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-trivial, Gerd Hoffmann

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 util/qemu-sockets.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/util/qemu-sockets.c b/util/qemu-sockets.c
index 96eca2a..86fb09c 100644
--- a/util/qemu-sockets.c
+++ b/util/qemu-sockets.c
@@ -848,9 +848,9 @@ int unix_nonblocking_connect(const char *path,
 
 SocketAddress *socket_parse(const char *str, Error **errp)
 {
-    SocketAddress *addr = NULL;
+    SocketAddress *addr;
 
-    addr = g_new(SocketAddress, 1);
+    addr = g_new0(SocketAddress, 1);
     if (strstart(str, "unix:", NULL)) {
         if (str[5] == '\0') {
             error_setg(errp, "invalid Unix socket address");
-- 
1.7.9.7

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

* [Qemu-devel] [PATCH v2 02/13] qemu-socket: drop pointless allocation
  2013-06-24  6:39 [Qemu-devel] [PATCH v2 00/13] A bunch of little socket + chardev fixes Gerd Hoffmann
  2013-06-24  6:39 ` [Qemu-devel] [PATCH v2 01/13] qemu-socket: zero-initialize SocketAddress Gerd Hoffmann
@ 2013-06-24  6:39 ` Gerd Hoffmann
  2013-06-24  8:07   ` Markus Armbruster
  2013-06-24  6:39 ` [Qemu-devel] [PATCH v2 03/13] qemu-socket: catch monitor_get_fd failures Gerd Hoffmann
                   ` (12 subsequent siblings)
  14 siblings, 1 reply; 22+ messages in thread
From: Gerd Hoffmann @ 2013-06-24  6:39 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-trivial, Gerd Hoffmann

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 util/qemu-sockets.c |    1 -
 1 file changed, 1 deletion(-)

diff --git a/util/qemu-sockets.c b/util/qemu-sockets.c
index 86fb09c..35023a8 100644
--- a/util/qemu-sockets.c
+++ b/util/qemu-sockets.c
@@ -871,7 +871,6 @@ SocketAddress *socket_parse(const char *str, Error **errp)
         }
     } else {
         addr->kind = SOCKET_ADDRESS_KIND_INET;
-        addr->inet = g_new(InetSocketAddress, 1);
         addr->inet = inet_parse(str, errp);
         if (addr->inet == NULL) {
             goto fail;
-- 
1.7.9.7

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

* [Qemu-devel] [PATCH v2 03/13] qemu-socket: catch monitor_get_fd failures
  2013-06-24  6:39 [Qemu-devel] [PATCH v2 00/13] A bunch of little socket + chardev fixes Gerd Hoffmann
  2013-06-24  6:39 ` [Qemu-devel] [PATCH v2 01/13] qemu-socket: zero-initialize SocketAddress Gerd Hoffmann
  2013-06-24  6:39 ` [Qemu-devel] [PATCH v2 02/13] qemu-socket: drop pointless allocation Gerd Hoffmann
@ 2013-06-24  6:39 ` Gerd Hoffmann
  2013-06-24  6:39 ` [Qemu-devel] [PATCH v2 04/13] qemu-char: check optional fields using has_* Gerd Hoffmann
                   ` (11 subsequent siblings)
  14 siblings, 0 replies; 22+ messages in thread
From: Gerd Hoffmann @ 2013-06-24  6:39 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-trivial, Gerd Hoffmann

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 util/qemu-sockets.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/util/qemu-sockets.c b/util/qemu-sockets.c
index 35023a8..126cbb6 100644
--- a/util/qemu-sockets.c
+++ b/util/qemu-sockets.c
@@ -903,7 +903,7 @@ int socket_connect(SocketAddress *addr, Error **errp,
 
     case SOCKET_ADDRESS_KIND_FD:
         fd = monitor_get_fd(cur_mon, addr->fd->str, errp);
-        if (callback) {
+        if (fd >= 0 && callback) {
             qemu_set_nonblock(fd);
             callback(fd, opaque);
         }
-- 
1.7.9.7

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

* [Qemu-devel] [PATCH v2 04/13] qemu-char: check optional fields using has_*
  2013-06-24  6:39 [Qemu-devel] [PATCH v2 00/13] A bunch of little socket + chardev fixes Gerd Hoffmann
                   ` (2 preceding siblings ...)
  2013-06-24  6:39 ` [Qemu-devel] [PATCH v2 03/13] qemu-socket: catch monitor_get_fd failures Gerd Hoffmann
@ 2013-06-24  6:39 ` Gerd Hoffmann
  2013-06-24  6:39 ` [Qemu-devel] [PATCH v2 05/13] qemu-char: use more specific error_setg_* variants Gerd Hoffmann
                   ` (10 subsequent siblings)
  14 siblings, 0 replies; 22+ messages in thread
From: Gerd Hoffmann @ 2013-06-24  6:39 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-trivial, Anthony Liguori, Gerd Hoffmann

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 qemu-char.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/qemu-char.c b/qemu-char.c
index 2c3cfe6..ee7c70e 100644
--- a/qemu-char.c
+++ b/qemu-char.c
@@ -3500,7 +3500,7 @@ static CharDriverState *qmp_chardev_open_file(ChardevFile *file, Error **errp)
 {
     HANDLE out;
 
-    if (file->in) {
+    if (file->has_in) {
         error_setg(errp, "input file not supported");
         return NULL;
     }
@@ -3551,7 +3551,7 @@ static CharDriverState *qmp_chardev_open_file(ChardevFile *file, Error **errp)
         return NULL;
     }
 
-    if (file->in) {
+    if (file->has_in) {
         flags = O_RDONLY;
         in = qmp_chardev_open_file_source(file->in, flags, errp);
         if (error_is_set(errp)) {
-- 
1.7.9.7

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

* [Qemu-devel] [PATCH v2 05/13] qemu-char: use more specific error_setg_* variants
  2013-06-24  6:39 [Qemu-devel] [PATCH v2 00/13] A bunch of little socket + chardev fixes Gerd Hoffmann
                   ` (3 preceding siblings ...)
  2013-06-24  6:39 ` [Qemu-devel] [PATCH v2 04/13] qemu-char: check optional fields using has_* Gerd Hoffmann
@ 2013-06-24  6:39 ` Gerd Hoffmann
  2013-06-24  6:39 ` [Qemu-devel] [PATCH v2 06/13] qemu-char: print notification to stderr Gerd Hoffmann
                   ` (9 subsequent siblings)
  14 siblings, 0 replies; 22+ messages in thread
From: Gerd Hoffmann @ 2013-06-24  6:39 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-trivial, Anthony Liguori, Gerd Hoffmann

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 qemu-char.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/qemu-char.c b/qemu-char.c
index ee7c70e..cfc68cd 100644
--- a/qemu-char.c
+++ b/qemu-char.c
@@ -2604,7 +2604,7 @@ static CharDriverState *qemu_chr_open_socket_fd(int fd, bool do_nodelay,
 
     memset(&ss, 0, ss_len);
     if (getsockname(fd, (struct sockaddr *) &ss, &ss_len) != 0) {
-        error_setg(errp, "getsockname: %s", strerror(errno));
+        error_setg_errno(errp, errno, "getsockname");
         return NULL;
     }
 
@@ -3536,7 +3536,7 @@ static int qmp_chardev_open_file_source(char *src, int flags,
 
     TFR(fd = qemu_open(src, flags, 0666));
     if (fd == -1) {
-        error_setg(errp, "open %s: %s", src, strerror(errno));
+        error_setg_file_open(errp, errno, src);
     }
     return fd;
 }
-- 
1.7.9.7

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

* [Qemu-devel] [PATCH v2 06/13] qemu-char: print notification to stderr
  2013-06-24  6:39 [Qemu-devel] [PATCH v2 00/13] A bunch of little socket + chardev fixes Gerd Hoffmann
                   ` (4 preceding siblings ...)
  2013-06-24  6:39 ` [Qemu-devel] [PATCH v2 05/13] qemu-char: use more specific error_setg_* variants Gerd Hoffmann
@ 2013-06-24  6:39 ` Gerd Hoffmann
  2013-06-24  6:39 ` [Qemu-devel] [PATCH v2 07/13] qemu-char: fix documentation for telnet+wait socket flags Gerd Hoffmann
                   ` (8 subsequent siblings)
  14 siblings, 0 replies; 22+ messages in thread
From: Gerd Hoffmann @ 2013-06-24  6:39 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-trivial, Anthony Liguori, Gerd Hoffmann

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 qemu-char.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/qemu-char.c b/qemu-char.c
index cfc68cd..3e0044b 100644
--- a/qemu-char.c
+++ b/qemu-char.c
@@ -2666,8 +2666,8 @@ static CharDriverState *qemu_chr_open_socket_fd(int fd, bool do_nodelay,
     }
 
     if (is_listen && is_waitconnect) {
-        printf("QEMU waiting for connection on: %s\n",
-               chr->filename);
+        fprintf(stderr, "QEMU waiting for connection on: %s\n",
+                chr->filename);
         tcp_chr_accept(s->listen_chan, G_IO_IN, chr);
         qemu_set_nonblock(s->listen_fd);
     }
-- 
1.7.9.7

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

* [Qemu-devel] [PATCH v2 07/13] qemu-char: fix documentation for telnet+wait socket flags
  2013-06-24  6:39 [Qemu-devel] [PATCH v2 00/13] A bunch of little socket + chardev fixes Gerd Hoffmann
                   ` (5 preceding siblings ...)
  2013-06-24  6:39 ` [Qemu-devel] [PATCH v2 06/13] qemu-char: print notification to stderr Gerd Hoffmann
@ 2013-06-24  6:39 ` Gerd Hoffmann
  2013-06-24  8:08   ` Markus Armbruster
  2013-06-24  6:39 ` [Qemu-devel] [PATCH v2 08/13] qemu-char: don't leak opts on error Gerd Hoffmann
                   ` (7 subsequent siblings)
  14 siblings, 1 reply; 22+ messages in thread
From: Gerd Hoffmann @ 2013-06-24  6:39 UTC (permalink / raw)
  To: qemu-devel
  Cc: qemu-trivial, Markus Armbruster, Gerd Hoffmann, Luiz Capitulino

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 qapi-schema.json |    7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/qapi-schema.json b/qapi-schema.json
index a80ee40..a29ce57 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -3185,10 +3185,11 @@
 # @addr: socket address to listen on (server=true)
 #        or connect to (server=false)
 # @server: #optional create server socket (default: true)
-# @wait: #optional wait for connect (not used for server
-#        sockets, default: false)
+# @wait: #optional wait for incoming connection on server
+#        sockets (default: false).
 # @nodelay: #optional set TCP_NODELAY socket option (default: false)
-# @telnet: #optional enable telnet protocol (default: false)
+# @telnet: #optional enable telnet protocol on server
+#          sockets (default: false)
 #
 # Since: 1.4
 ##
-- 
1.7.9.7

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

* [Qemu-devel] [PATCH v2 08/13] qemu-char: don't leak opts on error
  2013-06-24  6:39 [Qemu-devel] [PATCH v2 00/13] A bunch of little socket + chardev fixes Gerd Hoffmann
                   ` (6 preceding siblings ...)
  2013-06-24  6:39 ` [Qemu-devel] [PATCH v2 07/13] qemu-char: fix documentation for telnet+wait socket flags Gerd Hoffmann
@ 2013-06-24  6:39 ` Gerd Hoffmann
  2013-06-24  6:39 ` [Qemu-devel] [PATCH v2 09/13] qemu-char: use ChardevBackendKind in in CharDriver Gerd Hoffmann
                   ` (6 subsequent siblings)
  14 siblings, 0 replies; 22+ messages in thread
From: Gerd Hoffmann @ 2013-06-24  6:39 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-trivial, Anthony Liguori, Gerd Hoffmann

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 qemu-char.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/qemu-char.c b/qemu-char.c
index 3e0044b..5751391 100644
--- a/qemu-char.c
+++ b/qemu-char.c
@@ -3185,7 +3185,7 @@ CharDriverState *qemu_chr_new_from_opts(QemuOpts *opts,
     if (i == NULL) {
         error_setg(errp, "chardev: backend \"%s\" not found",
                    qemu_opt_get(opts, "backend"));
-        return NULL;
+        goto err;
     }
 
     if (!cd->open) {
-- 
1.7.9.7

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

* [Qemu-devel] [PATCH v2 09/13] qemu-char: use ChardevBackendKind in in CharDriver
  2013-06-24  6:39 [Qemu-devel] [PATCH v2 00/13] A bunch of little socket + chardev fixes Gerd Hoffmann
                   ` (7 preceding siblings ...)
  2013-06-24  6:39 ` [Qemu-devel] [PATCH v2 08/13] qemu-char: don't leak opts on error Gerd Hoffmann
@ 2013-06-24  6:39 ` Gerd Hoffmann
  2013-06-24  6:39 ` [Qemu-devel] [PATCH v2 10/13] qemu-char: minor mux chardev fixes Gerd Hoffmann
                   ` (5 subsequent siblings)
  14 siblings, 0 replies; 22+ messages in thread
From: Gerd Hoffmann @ 2013-06-24  6:39 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-trivial, Anthony Liguori, Gerd Hoffmann

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 include/sysemu/char.h |    2 +-
 qemu-char.c           |    4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/include/sysemu/char.h b/include/sysemu/char.h
index 066c216..e65e4a4 100644
--- a/include/sysemu/char.h
+++ b/include/sysemu/char.h
@@ -281,7 +281,7 @@ CharDriverState *qemu_chr_find(const char *name);
 QemuOpts *qemu_chr_parse_compat(const char *label, const char *filename);
 
 void register_char_driver(const char *name, CharDriverState *(*open)(QemuOpts *));
-void register_char_driver_qapi(const char *name, int kind,
+void register_char_driver_qapi(const char *name, ChardevBackendKind kind,
         void (*parse)(QemuOpts *opts, ChardevBackend *backend, Error **errp));
 
 /* add an eventfd to the qemu devices that are polled */
diff --git a/qemu-char.c b/qemu-char.c
index 5751391..5a2291d 100644
--- a/qemu-char.c
+++ b/qemu-char.c
@@ -3127,7 +3127,7 @@ typedef struct CharDriver {
     /* old, pre qapi */
     CharDriverState *(*open)(QemuOpts *opts);
     /* new, qapi-based */
-    int kind;
+    ChardevBackendKind kind;
     void (*parse)(QemuOpts *opts, ChardevBackend *backend, Error **errp);
 } CharDriver;
 
@@ -3144,7 +3144,7 @@ void register_char_driver(const char *name, CharDriverState *(*open)(QemuOpts *)
     backends = g_slist_append(backends, s);
 }
 
-void register_char_driver_qapi(const char *name, int kind,
+void register_char_driver_qapi(const char *name, ChardevBackendKind kind,
         void (*parse)(QemuOpts *opts, ChardevBackend *backend, Error **errp))
 {
     CharDriver *s;
-- 
1.7.9.7

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

* [Qemu-devel] [PATCH v2 10/13] qemu-char: minor mux chardev fixes
  2013-06-24  6:39 [Qemu-devel] [PATCH v2 00/13] A bunch of little socket + chardev fixes Gerd Hoffmann
                   ` (8 preceding siblings ...)
  2013-06-24  6:39 ` [Qemu-devel] [PATCH v2 09/13] qemu-char: use ChardevBackendKind in in CharDriver Gerd Hoffmann
@ 2013-06-24  6:39 ` Gerd Hoffmann
  2013-06-24  6:39 ` [Qemu-devel] [PATCH v2 11/13] qemu-char: add -chardev mux support Gerd Hoffmann
                   ` (4 subsequent siblings)
  14 siblings, 0 replies; 22+ messages in thread
From: Gerd Hoffmann @ 2013-06-24  6:39 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-trivial, Anthony Liguori, Gerd Hoffmann

mux failure path has a memory leak.  creating a mux chardev can't
fail though, so just assert() that instead of fixing an error path
which never ever runs anyway ...

Also fix bid being leaked while being at it.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 qemu-char.c |    7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/qemu-char.c b/qemu-char.c
index 5a2291d..e6c3157 100644
--- a/qemu-char.c
+++ b/qemu-char.c
@@ -3193,7 +3193,7 @@ CharDriverState *qemu_chr_new_from_opts(QemuOpts *opts,
         ChardevBackend *backend = g_new0(ChardevBackend, 1);
         ChardevReturn *ret = NULL;
         const char *id = qemu_opts_id(opts);
-        const char *bid = NULL;
+        char *bid = NULL;
 
         if (qemu_opt_get_bool(opts, "mux", 0)) {
             bid = g_strdup_printf("%s-base", id);
@@ -3220,9 +3220,7 @@ CharDriverState *qemu_chr_new_from_opts(QemuOpts *opts,
             backend->kind = CHARDEV_BACKEND_KIND_MUX;
             backend->mux->chardev = g_strdup(bid);
             ret = qmp_chardev_add(id, backend, errp);
-            if (error_is_set(errp)) {
-                goto qapi_out;
-            }
+            assert(!error_is_set(errp));
         }
 
         chr = qemu_chr_find(id);
@@ -3230,6 +3228,7 @@ CharDriverState *qemu_chr_new_from_opts(QemuOpts *opts,
     qapi_out:
         qapi_free_ChardevBackend(backend);
         qapi_free_ChardevReturn(ret);
+        g_free(bid);
         return chr;
     }
 
-- 
1.7.9.7

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

* [Qemu-devel] [PATCH v2 11/13] qemu-char: add -chardev mux support
  2013-06-24  6:39 [Qemu-devel] [PATCH v2 00/13] A bunch of little socket + chardev fixes Gerd Hoffmann
                   ` (9 preceding siblings ...)
  2013-06-24  6:39 ` [Qemu-devel] [PATCH v2 10/13] qemu-char: minor mux chardev fixes Gerd Hoffmann
@ 2013-06-24  6:39 ` Gerd Hoffmann
  2013-06-24  6:39 ` [Qemu-devel] [PATCH v2 12/13] qemu-char: report udb backend errors Gerd Hoffmann
                   ` (3 subsequent siblings)
  14 siblings, 0 replies; 22+ messages in thread
From: Gerd Hoffmann @ 2013-06-24  6:39 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-trivial, Anthony Liguori, Gerd Hoffmann

Allow to explicitly create mux chardevs on the command line,
like you can using QMP.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 qemu-char.c |   18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/qemu-char.c b/qemu-char.c
index e6c3157..7d072a8 100644
--- a/qemu-char.c
+++ b/qemu-char.c
@@ -3122,6 +3122,19 @@ static void qemu_chr_parse_memory(QemuOpts *opts, ChardevBackend *backend,
     }
 }
 
+static void qemu_chr_parse_mux(QemuOpts *opts, ChardevBackend *backend,
+                               Error **errp)
+{
+    const char *chardev = qemu_opt_get(opts, "chardev");
+
+    if (chardev == NULL) {
+        error_setg(errp, "chardev: mux: no chardev given");
+        return;
+    }
+    backend->mux = g_new0(ChardevMux, 1);
+    backend->mux->chardev = g_strdup(chardev);
+}
+
 typedef struct CharDriver {
     const char *name;
     /* old, pre qapi */
@@ -3488,6 +3501,9 @@ QemuOptsList qemu_chardev_opts = {
         },{
             .name = "size",
             .type = QEMU_OPT_SIZE,
+        },{
+            .name = "chardev",
+            .type = QEMU_OPT_STRING,
         },
         { /* end of list */ }
     },
@@ -3778,6 +3794,8 @@ static void register_types(void)
     register_char_driver_qapi("console", CHARDEV_BACKEND_KIND_CONSOLE, NULL);
     register_char_driver_qapi("pipe", CHARDEV_BACKEND_KIND_PIPE,
                               qemu_chr_parse_pipe);
+    register_char_driver_qapi("mux", CHARDEV_BACKEND_KIND_MUX,
+                              qemu_chr_parse_mux);
 }
 
 type_init(register_types);
-- 
1.7.9.7

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

* [Qemu-devel] [PATCH v2 12/13] qemu-char: report udb backend errors
  2013-06-24  6:39 [Qemu-devel] [PATCH v2 00/13] A bunch of little socket + chardev fixes Gerd Hoffmann
                   ` (10 preceding siblings ...)
  2013-06-24  6:39 ` [Qemu-devel] [PATCH v2 11/13] qemu-char: add -chardev mux support Gerd Hoffmann
@ 2013-06-24  6:39 ` Gerd Hoffmann
  2013-06-24  8:06   ` Markus Armbruster
  2013-06-24  6:39 ` [Qemu-devel] [PATCH v2 13/13] qemu-socket: don't leak opts on error Gerd Hoffmann
                   ` (2 subsequent siblings)
  14 siblings, 1 reply; 22+ messages in thread
From: Gerd Hoffmann @ 2013-06-24  6:39 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-trivial, Anthony Liguori, Gerd Hoffmann

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 qemu-char.c |    2 ++
 1 file changed, 2 insertions(+)

diff --git a/qemu-char.c b/qemu-char.c
index 7d072a8..dcc91bb 100644
--- a/qemu-char.c
+++ b/qemu-char.c
@@ -2255,6 +2255,8 @@ static CharDriverState *qemu_chr_open_udp(QemuOpts *opts)
 
     fd = inet_dgram_opts(opts, &local_err);
     if (fd < 0) {
+        qerror_report_err(local_err);
+        error_free(local_err);
         return NULL;
     }
     return qemu_chr_open_udp_fd(fd);
-- 
1.7.9.7

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

* [Qemu-devel] [PATCH v2 13/13] qemu-socket: don't leak opts on error
  2013-06-24  6:39 [Qemu-devel] [PATCH v2 00/13] A bunch of little socket + chardev fixes Gerd Hoffmann
                   ` (11 preceding siblings ...)
  2013-06-24  6:39 ` [Qemu-devel] [PATCH v2 12/13] qemu-char: report udb backend errors Gerd Hoffmann
@ 2013-06-24  6:39 ` Gerd Hoffmann
  2013-06-24  7:18 ` [Qemu-devel] [Qemu-trivial] [PATCH v2 00/13] A bunch of little socket + chardev fixes Michael Tokarev
  2013-06-24  8:54 ` [Qemu-devel] " Laszlo Ersek
  14 siblings, 0 replies; 22+ messages in thread
From: Gerd Hoffmann @ 2013-06-24  6:39 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-trivial, Gerd Hoffmann

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 util/qemu-sockets.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/util/qemu-sockets.c b/util/qemu-sockets.c
index 126cbb6..095716e 100644
--- a/util/qemu-sockets.c
+++ b/util/qemu-sockets.c
@@ -963,7 +963,7 @@ int socket_dgram(SocketAddress *remote, SocketAddress *local, Error **errp)
 
     default:
         error_setg(errp, "socket type unsupported for datagram");
-        return -1;
+        fd = -1;
     }
     qemu_opts_del(opts);
     return fd;
-- 
1.7.9.7

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

* Re: [Qemu-devel] [Qemu-trivial] [PATCH v2 00/13] A bunch of little socket + chardev fixes
  2013-06-24  6:39 [Qemu-devel] [PATCH v2 00/13] A bunch of little socket + chardev fixes Gerd Hoffmann
                   ` (12 preceding siblings ...)
  2013-06-24  6:39 ` [Qemu-devel] [PATCH v2 13/13] qemu-socket: don't leak opts on error Gerd Hoffmann
@ 2013-06-24  7:18 ` Michael Tokarev
  2013-06-24  8:14   ` Markus Armbruster
  2013-06-24  8:54 ` [Qemu-devel] " Laszlo Ersek
  14 siblings, 1 reply; 22+ messages in thread
From: Michael Tokarev @ 2013-06-24  7:18 UTC (permalink / raw)
  To: Gerd Hoffmann; +Cc: qemu-trivial, qemu-devel

24.06.2013 10:39, Gerd Hoffmann wrote:
>   Hi,
> 
> Here is v2 of the series, addressing Michaels review comments.

Thank you Gerd, applied all series to the trivial-patches queue,
with two edits:

>   qemu-char: use ChardevBackendKind in in CharDriver
>   qemu-char: report udb backend errors

fxed these :)

/mjt

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

* Re: [Qemu-devel] [PATCH v2 12/13] qemu-char: report udb backend errors
  2013-06-24  6:39 ` [Qemu-devel] [PATCH v2 12/13] qemu-char: report udb backend errors Gerd Hoffmann
@ 2013-06-24  8:06   ` Markus Armbruster
  0 siblings, 0 replies; 22+ messages in thread
From: Markus Armbruster @ 2013-06-24  8:06 UTC (permalink / raw)
  To: Gerd Hoffmann; +Cc: qemu-trivial, Anthony Liguori, qemu-devel

Typo in subject: s/udb/UDP/

Gerd Hoffmann <kraxel@redhat.com> writes:

> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> ---
>  qemu-char.c |    2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/qemu-char.c b/qemu-char.c
> index 7d072a8..dcc91bb 100644
> --- a/qemu-char.c
> +++ b/qemu-char.c
> @@ -2255,6 +2255,8 @@ static CharDriverState *qemu_chr_open_udp(QemuOpts *opts)
>  
>      fd = inet_dgram_opts(opts, &local_err);
>      if (fd < 0) {
> +        qerror_report_err(local_err);
> +        error_free(local_err);
>          return NULL;
>      }
>      return qemu_chr_open_udp_fd(fd);

Also plugs memory leak on error path.  Worth mentioning in commit
message.

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

* Re: [Qemu-devel] [PATCH v2 02/13] qemu-socket: drop pointless allocation
  2013-06-24  6:39 ` [Qemu-devel] [PATCH v2 02/13] qemu-socket: drop pointless allocation Gerd Hoffmann
@ 2013-06-24  8:07   ` Markus Armbruster
  0 siblings, 0 replies; 22+ messages in thread
From: Markus Armbruster @ 2013-06-24  8:07 UTC (permalink / raw)
  To: Gerd Hoffmann; +Cc: qemu-trivial, qemu-devel

Gerd Hoffmann <kraxel@redhat.com> writes:

> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> ---
>  util/qemu-sockets.c |    1 -
>  1 file changed, 1 deletion(-)
>
> diff --git a/util/qemu-sockets.c b/util/qemu-sockets.c
> index 86fb09c..35023a8 100644
> --- a/util/qemu-sockets.c
> +++ b/util/qemu-sockets.c
> @@ -871,7 +871,6 @@ SocketAddress *socket_parse(const char *str, Error **errp)
>          }
>      } else {
>          addr->kind = SOCKET_ADDRESS_KIND_INET;
> -        addr->inet = g_new(InetSocketAddress, 1);
>          addr->inet = inet_parse(str, errp);
>          if (addr->inet == NULL) {
>              goto fail;

Plugs a memory leak, which is a bit more than "drop pointless
allocation".

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

* Re: [Qemu-devel] [PATCH v2 07/13] qemu-char: fix documentation for telnet+wait socket flags
  2013-06-24  6:39 ` [Qemu-devel] [PATCH v2 07/13] qemu-char: fix documentation for telnet+wait socket flags Gerd Hoffmann
@ 2013-06-24  8:08   ` Markus Armbruster
  0 siblings, 0 replies; 22+ messages in thread
From: Markus Armbruster @ 2013-06-24  8:08 UTC (permalink / raw)
  To: Gerd Hoffmann; +Cc: qemu-trivial, qemu-devel, Luiz Capitulino

Gerd Hoffmann <kraxel@redhat.com> writes:

> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> ---
>  qapi-schema.json |    7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/qapi-schema.json b/qapi-schema.json
> index a80ee40..a29ce57 100644
> --- a/qapi-schema.json
> +++ b/qapi-schema.json
> @@ -3185,10 +3185,11 @@
>  # @addr: socket address to listen on (server=true)
>  #        or connect to (server=false)
>  # @server: #optional create server socket (default: true)
> -# @wait: #optional wait for connect (not used for server
> -#        sockets, default: false)
> +# @wait: #optional wait for incoming connection on server
> +#        sockets (default: false).
>  # @nodelay: #optional set TCP_NODELAY socket option (default: false)
> -# @telnet: #optional enable telnet protocol (default: false)
> +# @telnet: #optional enable telnet protocol on server
> +#          sockets (default: false)
>  #
>  # Since: 1.4
>  ##

Yes, both options apply only with server=true (I double-checked).

Curiously, qemu_chr_open_socket_fd() puts "telnet" into chr->filename
regardless of server.

qemu_chr_open_socket() has

    if (!is_listen)
        is_waitconnect = 0;

Should this perhaps be

    if (!is_listen) {
        is_waitconnect = 0;
        is_telnet = 0;
    }

?

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

* Re: [Qemu-devel] [Qemu-trivial] [PATCH v2 00/13] A bunch of little socket + chardev fixes
  2013-06-24  7:18 ` [Qemu-devel] [Qemu-trivial] [PATCH v2 00/13] A bunch of little socket + chardev fixes Michael Tokarev
@ 2013-06-24  8:14   ` Markus Armbruster
  2013-06-24  8:24     ` Michael Tokarev
  0 siblings, 1 reply; 22+ messages in thread
From: Markus Armbruster @ 2013-06-24  8:14 UTC (permalink / raw)
  To: Michael Tokarev; +Cc: qemu-trivial, Gerd Hoffmann, qemu-devel

Michael Tokarev <mjt@tls.msk.ru> writes:

> 24.06.2013 10:39, Gerd Hoffmann wrote:
>>   Hi,
>> 
>> Here is v2 of the series, addressing Michaels review comments.
>
> Thank you Gerd, applied all series to the trivial-patches queue,
> with two edits:
>
>>   qemu-char: use ChardevBackendKind in in CharDriver
>>   qemu-char: report udb backend errors
>
> fxed these :)

My commit message nitpicks aren't worth a respin.  Perhaps you want to
fix them in your tree.

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

* Re: [Qemu-devel] [Qemu-trivial] [PATCH v2 00/13] A bunch of little socket + chardev fixes
  2013-06-24  8:14   ` Markus Armbruster
@ 2013-06-24  8:24     ` Michael Tokarev
  2013-06-24  8:57       ` Markus Armbruster
  0 siblings, 1 reply; 22+ messages in thread
From: Michael Tokarev @ 2013-06-24  8:24 UTC (permalink / raw)
  To: Markus Armbruster; +Cc: qemu-trivial, Gerd Hoffmann, qemu-devel

24.06.2013 12:14, Markus Armbruster wrote:
> Michael Tokarev <mjt@tls.msk.ru> writes:
[]
>> Thank you Gerd, applied all series to the trivial-patches queue,
>> with two edits:
>>
>>>   qemu-char: use ChardevBackendKind in in CharDriver
>>>   qemu-char: report udb backend errors
>>
>> fxed these :)
> 
> My commit message nitpicks aren't worth a respin.  Perhaps you want to
> fix them in your tree.

I'm not sure I understand what you're saying.  I fixed them
in my tree while applying, and that's exactly what I said --
"applied all..fixed these".  What does not worth what?

Thanks,

/mjt

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

* Re: [Qemu-devel] [PATCH v2 00/13] A bunch of little socket + chardev fixes
  2013-06-24  6:39 [Qemu-devel] [PATCH v2 00/13] A bunch of little socket + chardev fixes Gerd Hoffmann
                   ` (13 preceding siblings ...)
  2013-06-24  7:18 ` [Qemu-devel] [Qemu-trivial] [PATCH v2 00/13] A bunch of little socket + chardev fixes Michael Tokarev
@ 2013-06-24  8:54 ` Laszlo Ersek
  14 siblings, 0 replies; 22+ messages in thread
From: Laszlo Ersek @ 2013-06-24  8:54 UTC (permalink / raw)
  To: Gerd Hoffmann; +Cc: qemu-trivial, qemu-devel

On 06/24/13 08:39, Gerd Hoffmann wrote:
>   Hi,
> 
> Here is v2 of the series, addressing Michaels review comments.
> 
> cheers,
>   Gerd
> 
> Gerd Hoffmann (13):
>   qemu-socket: zero-initialize SocketAddress
>   qemu-socket: drop pointless allocation
>   qemu-socket: catch monitor_get_fd failures
>   qemu-char: check optional fields using has_*
>   qemu-char: use more specific error_setg_* variants
>   qemu-char: print notification to stderr
>   qemu-char: fix documentation for telnet+wait socket flags
>   qemu-char: don't leak opts on error
>   qemu-char: use ChardevBackendKind in in CharDriver
>   qemu-char: minor mux chardev fixes
>   qemu-char: add -chardev mux support
>   qemu-char: report udb backend errors
>   qemu-socket: don't leak opts on error
> 
>  include/sysemu/char.h |    2 +-
>  qapi-schema.json      |    7 ++++---
>  qemu-char.c           |   45 ++++++++++++++++++++++++++++++++-------------
>  util/qemu-sockets.c   |    9 ++++-----
>  4 files changed, 41 insertions(+), 22 deletions(-)
> 

I think 11/13 doesn't qualify for qemu-trivial. In any case, it does
seem correct, like the rest.

With the commit message fixups from Michael: series

Reviewed-by: Laszlo Ersek <lersek@redhat.com>

Thanks
Laszlo

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

* Re: [Qemu-devel] [Qemu-trivial] [PATCH v2 00/13] A bunch of little socket + chardev fixes
  2013-06-24  8:24     ` Michael Tokarev
@ 2013-06-24  8:57       ` Markus Armbruster
  0 siblings, 0 replies; 22+ messages in thread
From: Markus Armbruster @ 2013-06-24  8:57 UTC (permalink / raw)
  To: Michael Tokarev; +Cc: qemu-trivial, Gerd Hoffmann, qemu-devel

Michael Tokarev <mjt@tls.msk.ru> writes:

> 24.06.2013 12:14, Markus Armbruster wrote:
>> Michael Tokarev <mjt@tls.msk.ru> writes:
> []
>>> Thank you Gerd, applied all series to the trivial-patches queue,
>>> with two edits:
>>>
>>>>   qemu-char: use ChardevBackendKind in in CharDriver
>>>>   qemu-char: report udb backend errors
>>>
>>> fxed these :)
>> 
>> My commit message nitpicks aren't worth a respin.  Perhaps you want to
>> fix them in your tree.
>
> I'm not sure I understand what you're saying.  I fixed them
> in my tree while applying, and that's exactly what I said --
> "applied all..fixed these".  What does not worth what?

I replied to 02/13 and 12/13, suggesting commit message fixes.  You may
have covered some of them already, I don't know.

The question I asked re 07/13 is outside the scope of this series, so
don't worry about that one.

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

end of thread, other threads:[~2013-06-24  9:05 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-06-24  6:39 [Qemu-devel] [PATCH v2 00/13] A bunch of little socket + chardev fixes Gerd Hoffmann
2013-06-24  6:39 ` [Qemu-devel] [PATCH v2 01/13] qemu-socket: zero-initialize SocketAddress Gerd Hoffmann
2013-06-24  6:39 ` [Qemu-devel] [PATCH v2 02/13] qemu-socket: drop pointless allocation Gerd Hoffmann
2013-06-24  8:07   ` Markus Armbruster
2013-06-24  6:39 ` [Qemu-devel] [PATCH v2 03/13] qemu-socket: catch monitor_get_fd failures Gerd Hoffmann
2013-06-24  6:39 ` [Qemu-devel] [PATCH v2 04/13] qemu-char: check optional fields using has_* Gerd Hoffmann
2013-06-24  6:39 ` [Qemu-devel] [PATCH v2 05/13] qemu-char: use more specific error_setg_* variants Gerd Hoffmann
2013-06-24  6:39 ` [Qemu-devel] [PATCH v2 06/13] qemu-char: print notification to stderr Gerd Hoffmann
2013-06-24  6:39 ` [Qemu-devel] [PATCH v2 07/13] qemu-char: fix documentation for telnet+wait socket flags Gerd Hoffmann
2013-06-24  8:08   ` Markus Armbruster
2013-06-24  6:39 ` [Qemu-devel] [PATCH v2 08/13] qemu-char: don't leak opts on error Gerd Hoffmann
2013-06-24  6:39 ` [Qemu-devel] [PATCH v2 09/13] qemu-char: use ChardevBackendKind in in CharDriver Gerd Hoffmann
2013-06-24  6:39 ` [Qemu-devel] [PATCH v2 10/13] qemu-char: minor mux chardev fixes Gerd Hoffmann
2013-06-24  6:39 ` [Qemu-devel] [PATCH v2 11/13] qemu-char: add -chardev mux support Gerd Hoffmann
2013-06-24  6:39 ` [Qemu-devel] [PATCH v2 12/13] qemu-char: report udb backend errors Gerd Hoffmann
2013-06-24  8:06   ` Markus Armbruster
2013-06-24  6:39 ` [Qemu-devel] [PATCH v2 13/13] qemu-socket: don't leak opts on error Gerd Hoffmann
2013-06-24  7:18 ` [Qemu-devel] [Qemu-trivial] [PATCH v2 00/13] A bunch of little socket + chardev fixes Michael Tokarev
2013-06-24  8:14   ` Markus Armbruster
2013-06-24  8:24     ` Michael Tokarev
2013-06-24  8:57       ` Markus Armbruster
2013-06-24  8:54 ` [Qemu-devel] " Laszlo Ersek

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.