All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Daniel P. Berrangé" <berrange@redhat.com>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: "Bin Meng" <bmeng.cn@gmail.com>,
	qemu-devel@nongnu.org,
	"Marc-André Lureau" <marcandre.lureau@redhat.com>,
	"Xuzhou Cheng" <xuzhou.cheng@windriver.com>,
	"Bin Meng" <bin.meng@windriver.com>,
	"Laurent Vivier" <lvivier@redhat.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Thomas Huth" <thuth@redhat.com>
Subject: Re: [PATCH v5 09/18] tests/qtest: Use send/recv for socket communication
Date: Tue, 18 Oct 2022 18:14:05 +0100	[thread overview]
Message-ID: <Y07e3ZCDgv4IIzQW@redhat.com> (raw)
In-Reply-To: <CAFEAcA9nyy47p=Mextm8qTFu1LDTMYBv1BubtywyzGPuDiD0XQ@mail.gmail.com>

On Tue, Oct 18, 2022 at 06:09:28PM +0100, Peter Maydell wrote:
> On Thu, 6 Oct 2022 at 17:20, Bin Meng <bmeng.cn@gmail.com> wrote:
> >
> > From: Xuzhou Cheng <xuzhou.cheng@windriver.com>
> >
> > Socket communication in the libqtest and libqmp codes uses read()
> > and write() which work on any file descriptor on *nix, and sockets
> > in *nix are an example of a file descriptor.
> >
> > However sockets on Windows do not use *nix-style file descriptors,
> > so read() and write() cannot be used on sockets on Windows.
> > Switch over to use send() and recv() instead which work on both
> > Windows and *nix.
> >
> > Signed-off-by: Xuzhou Cheng <xuzhou.cheng@windriver.com>
> > Signed-off-by: Bin Meng <bin.meng@windriver.com>
> > Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> > ---
> >
> > (no changes since v2)
> >
> > Changes in v2:
> > - Introduce qemu_send_full() and use it
> >
> >  include/qemu/sockets.h |  2 ++
> >  tests/qtest/libqmp.c   |  5 +++--
> >  tests/qtest/libqtest.c |  4 ++--
> >  util/osdep.c           | 33 +++++++++++++++++++++++++++++++++
> >  4 files changed, 40 insertions(+), 4 deletions(-)
> >
> > diff --git a/include/qemu/sockets.h b/include/qemu/sockets.h
> > index 036745e586..adf2b21bd9 100644
> > --- a/include/qemu/sockets.h
> > +++ b/include/qemu/sockets.h
> > @@ -33,6 +33,8 @@ int qemu_socketpair(int domain, int type, int protocol, int sv[2]);
> >  #endif
> >
> >  int qemu_accept(int s, struct sockaddr *addr, socklen_t *addrlen);
> > +ssize_t qemu_send_full(int s, const void *buf, size_t count)
> > +    G_GNUC_WARN_UNUSED_RESULT;
> 
> New global function prototypes in headers need documentation
> comments, please.

In previous versions of this series I suggested we should be making
libqmp/libqtest use the QIOChannelSocket API, instead of raw sockets
code. The latter gives us portability already, and is what almost
all of the rest of the codebase uses for sockets I/O.

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 :|



  reply	other threads:[~2022-10-18 17:28 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-06 15:19 [PATCH v5 00/18] tests/qtest: Enable running qtest on Windows Bin Meng
2022-10-06 15:19 ` [PATCH v5 01/18] semihosting/arm-compat-semi: Avoid using hardcoded /tmp Bin Meng
2022-10-06 15:19 ` [PATCH v5 02/18] tcg: " Bin Meng
2022-10-06 15:19 ` [PATCH v5 03/18] util/qemu-sockets: Use g_get_tmp_dir() to get the directory for temporary files Bin Meng
2022-10-06 15:19 ` [PATCH v5 04/18] tests/qtest: migration-test: Avoid using hardcoded /tmp Bin Meng
2022-10-25 23:44   ` Richard Henderson
2022-10-26  0:44     ` Bin Meng
2022-10-26  1:25       ` Richard Henderson
2022-10-06 15:19 ` [PATCH v5 05/18] block/vvfat: Unify the mkdir() call Bin Meng
2022-10-06 15:19 ` [PATCH v5 06/18] fsdev/virtfs-proxy-helper: Use g_mkdir() Bin Meng
2022-10-06 15:19 ` [PATCH v5 07/18] hw/usb: dev-mtp: " Bin Meng
2022-10-06 15:19 ` [PATCH v5 08/18] accel/qtest: Support qtest accelerator for Windows Bin Meng
2022-10-11 12:32   ` Thomas Huth
2022-10-11 12:37     ` Bin Meng
2022-10-06 15:19 ` [PATCH v5 09/18] tests/qtest: Use send/recv for socket communication Bin Meng
2022-10-18 16:47   ` Alex Bennée
2022-10-19  7:09     ` Bin Meng
2022-10-19  9:28       ` Thomas Huth
2022-10-18 17:09   ` Peter Maydell
2022-10-18 17:14     ` Daniel P. Berrangé [this message]
2022-10-06 15:19 ` [PATCH v5 10/18] tests/qtest: libqtest: Install signal handler via signal() Bin Meng
2022-10-11 14:14   ` Thomas Huth
2022-10-11 14:54     ` Bin Meng
2022-10-06 15:19 ` [PATCH v5 11/18] tests/qtest: Support libqtest to build and run on Windows Bin Meng
2022-10-12  7:43   ` Marc-André Lureau
2022-10-06 15:19 ` [PATCH v5 12/18] tests/qtest: migration-test: Make sure QEMU process "to" exited after migration is canceled Bin Meng
2022-10-12  7:57   ` Marc-André Lureau
2022-10-06 15:19 ` [PATCH v5 13/18] tests/qtest: libqtest: Correct the timeout unit of blocking receive calls for win32 Bin Meng
2022-10-06 15:19 ` [PATCH v5 14/18] io/channel-watch: Drop a superfluous '#ifdef WIN32' Bin Meng
2022-10-06 15:19 ` [PATCH v5 15/18] io/channel-watch: Drop the unnecessary cast Bin Meng
2022-10-06 15:19 ` [PATCH v5 16/18] io/channel-watch: Fix socket watch on Windows Bin Meng
2022-10-06 15:19 ` [PATCH v5 17/18] .gitlab-ci.d/windows.yml: Increase the timeout to 90 minutes Bin Meng
2022-10-07  9:57   ` Marc-André Lureau
2022-10-08  1:11     ` Bin Meng
2022-10-11 14:41   ` Thomas Huth
2022-10-11 15:10     ` Bin Meng
2022-10-06 15:19 ` [PATCH v5 18/18] tests/qtest: Enable qtest build on Windows Bin Meng
2022-10-06 20:33 ` [PATCH v5 00/18] tests/qtest: Enable running qtest " Alex Bennée
2022-10-07  5:31   ` Bin Meng
2022-10-17 15:00     ` Bin Meng
2022-10-17 16:40       ` Christian Schoenebeck
2022-10-18 15:59       ` Alex Bennée
2022-10-19  7:07         ` Bin Meng

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=Y07e3ZCDgv4IIzQW@redhat.com \
    --to=berrange@redhat.com \
    --cc=bin.meng@windriver.com \
    --cc=bmeng.cn@gmail.com \
    --cc=lvivier@redhat.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=thuth@redhat.com \
    --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 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.