qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH 3/3] char-socket: delay setting fd-pass feature unti


From: Marc-André Lureau
Subject: [Qemu-devel] [PATCH 3/3] char-socket: delay setting fd-pass feature until connected
Date: Tue, 17 Jul 2018 14:52:39 +0200

Wait for QIO channel connection completion, and check the feature set
by QIO. This fixes setting fd-pass chardev feature on
SOCKET_ADDRESS_FD where fd has AF_UNIX.

Signed-off-by: Marc-André Lureau <address@hidden>
---
 chardev/char-socket.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/chardev/char-socket.c b/chardev/char-socket.c
index 6daa8d003a..7387e632d4 100644
--- a/chardev/char-socket.c
+++ b/chardev/char-socket.c
@@ -789,6 +789,9 @@ static int tcp_chr_new_client(Chardev *chr, 
QIOChannelSocket *sioc)
 
     qio_channel_set_blocking(s->ioc, false, NULL);
 
+    if (qio_channel_has_feature(s->ioc, QIO_CHANNEL_FEATURE_FD_PASS)) {
+        qemu_chr_set_feature(chr, QEMU_CHAR_FEATURE_FD_PASS);
+    }
     if (s->do_nodelay) {
         qio_channel_set_delay(s->ioc, false);
     }
@@ -996,11 +999,8 @@ static void qmp_chardev_open_socket(Chardev *chr,
         error_setg(errp, "'reconnect' option is incompatible with 'fd'");
         goto error;
     }
+
     qemu_chr_set_feature(chr, QEMU_CHAR_FEATURE_RECONNECTABLE);
-    /* TODO SOCKET_ADDRESS_FD where fd has AF_UNIX */
-    if (addr->type == SOCKET_ADDRESS_TYPE_UNIX) {
-        qemu_chr_set_feature(chr, QEMU_CHAR_FEATURE_FD_PASS);
-    }
 
     /* be isn't opened until we get a connection */
     *be_opened = false;
-- 
2.18.0.129.ge3331758f1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]