qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] Question on unixsocket-based chardevs and vhost-user


From: Felipe Franciosi
Subject: [Qemu-devel] Question on unixsocket-based chardevs and vhost-user
Date: Wed, 28 Sep 2016 16:56:01 +0000

Hi Daniel/Paolo,

I have a question regarding this commit:
-------------8<-------------
Author:     Daniel P. Berrange <address@hidden>
AuthorDate: Tue Jan 19 11:14:29 2016 +0000
Commit:     Paolo Bonzini <address@hidden>
CommitDate: Tue Jan 26 15:58:11 2016 +0100
-------------8<-------------

One of the hunks replace unix_send_msgfds() with io_channel_send_full():

-------------8<-------------
static int tcp_chr_write(CharDriverState *chr, const uint8_t *buf, int len)
{
     TCPCharDriver *s = chr->opaque;
     if (s->connected) {
-#ifndef _WIN32
-        if (s->is_unix && s->write_msgfds_num) {
-            return unix_send_msgfds(chr, buf, len);
-        } else
-#endif
-        {
-            return io_channel_send(s->chan, buf, len);
+        int ret =  io_channel_send_full(s->ioc, buf, len,
+                                        s->write_msgfds,
+                                        s->write_msgfds_num);
-------------8<-------------

According to the code (qemu-char.c:968), io_channel_send_full() is just 
ignoring the s->write_msgfds parameter.

So my question is: when using a chardev implemented by unix sockets, how does 
one pass file descriptors for vhost-user applications?

I’m actually searching qemu-char.c for “write_msgfds” and scratching my head. 
There are functions to set it, clear it, etc, but none to send it.

Thanks,
Felipe

reply via email to

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