On Wed, Jul 27, 2022 at 5:28 PM Bin Meng <bmeng...@gmail.com> wrote: > From: Bin Meng <bin.m...@windriver.com> > > close() is a *nix function. It works on any file descriptor, and > sockets in *nix are an example of a file descriptor. > > closesocket() is a Windows-specific function, which works only > specifically with sockets. Sockets on Windows do not use *nix-style > file descriptors, and socket() returns a handle to a kernel object > instead, so it must be closed with closesocket(). > > In QEMU there is already a logic to handle such platform difference > in os-posix.h and os-win32.h, that: > > * closesocket maps to close on POSIX > * closesocket maps to a wrapper that calls the real closesocket() > on Windows > > Replace the call to close a socket with closesocket() instead. > > Signed-off-by: Bin Meng <bin.m...@windriver.com> >
This is a fix, could go in 7.1. Daniel, do you take it? Reviewed-by: Marc-André Lureau <marcandre.lur...@redhat.com> Thanks --- > > (no changes since v1) > > 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 13b5b197f9..0e2298278f 100644 > --- a/util/qemu-sockets.c > +++ b/util/qemu-sockets.c > @@ -487,7 +487,7 @@ int inet_connect_saddr(InetSocketAddress *saddr, Error > **errp) > > if (ret < 0) { > error_setg_errno(errp, errno, "Unable to set KEEPALIVE"); > - close(sock); > + closesocket(sock); > return -1; > } > } > @@ -1050,7 +1050,7 @@ static int unix_connect_saddr(UnixSocketAddress > *saddr, Error **errp) > return sock; > > err: > - close(sock); > + closesocket(sock); > return -1; > } > > -- > 2.34.1 > > > -- Marc-André Lureau