From: "Daniel P. Berrangé" <berrange@redhat.com>
To: "Marc-André Lureau" <marcandre.lureau@gmail.com>
Cc: Bin Meng <bmeng.cn@gmail.com>,
qemu-devel@nongnu.org, Bin Meng <bin.meng@windriver.com>,
Xuzhou Cheng <xuzhou.cheng@windriver.com>,
Stefan Weil <sw@weilnetz.de>
Subject: Re: [PATCH v3 2/4] util/qemu-sockets: Enable unix socket support on Windows
Date: Mon, 1 Aug 2022 10:39:56 +0100 [thread overview]
Message-ID: <YuefbIRSenOsMuVi@redhat.com> (raw)
In-Reply-To: <CAJ+F1CK7CPiWY8GLO+0VJNLkVj=RERf4gcFw_j6RZgjW7q6XQQ@mail.gmail.com>
On Mon, Aug 01, 2022 at 11:09:24AM +0400, Marc-André Lureau wrote:
> Hi
>
> On Sat, Jul 30, 2022 at 6:52 PM Bin Meng <bmeng.cn@gmail.com> wrote:
>
> > From: Bin Meng <bin.meng@windriver.com>
> >
> > Support for the unix socket has existed both in BSD and Linux for the
> > longest time, but not on Windows. Since Windows 10 build 17063 [1],
> > the native support for the unix socket has come to Windows. Starting
> > this build, two Win32 processes can use the AF_UNIX address family
> > over Winsock API to communicate with each other.
> >
> > [1] https://devblogs.microsoft.com/commandline/af_unix-comes-to-windows/
> >
> > Signed-off-by: Xuzhou Cheng <xuzhou.cheng@windriver.com>
> > Signed-off-by: Bin Meng <bin.meng@windriver.com>
> > ---
> >
> > Changes in v3:
> > - drop the run-time check afunix_available()
> >
> > Changes in v2:
> > - move #include <afunix.h> to os-win32.h
> > - define WIN_BUILD_AF_UNIX only when CONFIG_WIN32
> >
> > meson.build | 6 ++++++
> > include/sysemu/os-win32.h | 4 ++++
> > util/qemu-sockets.c | 14 +++++++-------
> > 3 files changed, 17 insertions(+), 7 deletions(-)
> >
> > diff --git a/meson.build b/meson.build
> > index 294e9a8f32..3663b925d4 100644
> > --- a/meson.build
> > +++ b/meson.build
> > @@ -2327,6 +2327,12 @@ have_afalg = get_option('crypto_afalg') \
> > '''), error_message: 'AF_ALG requested but could not be
> > detected').allowed()
> > config_host_data.set('CONFIG_AF_ALG', have_afalg)
> >
> > +if targetos != 'windows'
> > + config_host_data.set('CONFIG_AF_UNIX', true)
> >
>
> Imho, we should simply define CONFIG_AFUNIX_H, regardless of the OS.
>
>
> > +else
> > + config_host_data.set('CONFIG_AF_UNIX', cc.has_header('afunix.h'))
> > +endif
> >
> +
> > config_host_data.set('CONFIG_AF_VSOCK', cc.has_header_symbol(
> > 'linux/vm_sockets.h', 'AF_VSOCK',
> > prefix: '#include <sys/socket.h>',
> > diff --git a/include/sysemu/os-win32.h b/include/sysemu/os-win32.h
> > index edc3b38a57..cebf260694 100644
> > --- a/include/sysemu/os-win32.h
> > +++ b/include/sysemu/os-win32.h
> > @@ -30,6 +30,10 @@
> > #include <windows.h>
> > #include <ws2tcpip.h>
> >
> > +#ifdef CONFIG_AF_UNIX
> > +# include <afunix.h>
> > +#endif
> >
>
> we could also provide a fallback, the same I did for glib:
> https://gitlab.gnome.org/GNOME/glib/-/commit/4339192b5391a37ecd55816c713537fb1990cd07
>
> So all Windows build will have afunix code compiled.
That's much nicer. It lets us get rid of the conditionals around all
the UNIX socket handling code across the codebase, except for the
FD passing checks which have to remain.
With regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
next prev parent reply other threads:[~2022-08-01 9:42 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-07-30 14:50 [PATCH v3 0/4] Enable unix socket support on Windows Bin Meng
2022-07-30 14:50 ` [PATCH v3 1/4] util/qemu-sockets: Replace the call to close a socket with closesocket() Bin Meng
2022-07-30 14:50 ` [PATCH v3 2/4] util/qemu-sockets: Enable unix socket support on Windows Bin Meng
2022-08-01 7:09 ` Marc-André Lureau
2022-08-01 9:39 ` Daniel P. Berrangé [this message]
2022-07-30 14:50 ` [PATCH v3 3/4] chardev/char-socket: Update AF_UNIX for Windows Bin Meng
2022-08-01 7:19 ` Marc-André Lureau
2022-07-30 14:50 ` [PATCH v3 4/4] tests/unit: Update test-io-channel-socket.c " Bin Meng
2022-08-01 7:32 ` Marc-André Lureau
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YuefbIRSenOsMuVi@redhat.com \
--to=berrange@redhat.com \
--cc=bin.meng@windriver.com \
--cc=bmeng.cn@gmail.com \
--cc=marcandre.lureau@gmail.com \
--cc=qemu-devel@nongnu.org \
--cc=sw@weilnetz.de \
--cc=xuzhou.cheng@windriver.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).