[PULL 00/25] Win socket patches

marcandre.lureau@redhat.com posted 25 patches 1 year, 1 month ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20230313114335.424093-1-marcandre.lureau@redhat.com
Maintainers: Stefan Berger <stefanb@linux.vnet.ibm.com>, "Marc-André Lureau" <marcandre.lureau@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>, "Daniel P. Berrangé" <berrange@redhat.com>, "Dr. David Alan Gilbert" <dgilbert@redhat.com>, Stefan Hajnoczi <stefanha@redhat.com>, Fam Zheng <fam@euphon.net>, Kevin Wolf <kwolf@redhat.com>, Hanna Reitz <hreitz@redhat.com>, Markus Armbruster <armbru@redhat.com>, Michael Roth <michael.roth@amd.com>, Stefan Weil <sw@weilnetz.de>, Jason Wang <jasowang@redhat.com>, Samuel Thibault <samuel.thibault@ens-lyon.org>, Eric Blake <eblake@redhat.com>, "Alex Bennée" <alex.bennee@linaro.org>, "Philippe Mathieu-Daudé" <philmd@linaro.org>, Thomas Huth <thuth@redhat.com>, Wainer dos Santos Moschetta <wainersm@redhat.com>, Beraldo Leal <bleal@redhat.com>, Laurent Vivier <lvivier@redhat.com>, Joel Stanley <joel@jms.id.au>, Peter Maydell <peter.maydell@linaro.org>
There is a newer version of this series
qapi/misc.json                       |  36 ++-
include/block/aio.h                  |   8 -
include/qapi/error.h                 |   6 +
include/qemu/main-loop.h             |   2 -
include/qemu/osdep.h                 |  14 --
include/qemu/sockets.h               |   2 -
include/sysemu/os-posix.h            |   3 -
include/sysemu/os-win32.h            |  15 +-
tests/qtest/libqtest.h               |   5 +-
backends/tpm/tpm_emulator.c          |   6 +-
chardev/char.c                       |   2 -
crypto/afalg.c                       |   6 +-
hw/hyperv/syndbg.c                   |   4 +-
io/channel-socket.c                  |   8 +-
io/channel-watch.c                   |  10 +-
monitor/fds.c                        |  77 ++++--
monitor/hmp-cmds.c                   |   2 +
monitor/qmp-cmds.c                   |   7 +
net/dgram.c                          |  14 +-
net/slirp.c                          |  16 +-
net/socket.c                         |  22 +-
tests/qtest/libqtest.c               |  26 +-
tests/qtest/microbit-test.c          |   2 +-
tests/qtest/netdev-socket.c          |  10 +-
tests/qtest/vnc-display-test.c       |  12 +-
tests/unit/socket-helpers.c          |   2 +-
tests/unit/test-error-report.c       | 139 +++++++++++
tests/unit/test-io-channel-command.c |   2 +-
util/aio-posix.c                     |   6 +-
util/aio-win32.c                     |  23 +-
util/error.c                         |  10 +-
util/main-loop.c                     |  11 -
util/oslib-posix.c                   |  70 ------
util/oslib-win32.c                   | 350 ++++++++++++++++++++++++---
util/qemu-sockets.c                  |  22 +-
hmp-commands.hx                      |   2 +
tests/docker/docker.py               |   6 +-
tests/unit/meson.build               |   1 +
38 files changed, 701 insertions(+), 258 deletions(-)
create mode 100644 tests/unit/test-error-report.c
[PULL 00/25] Win socket patches
Posted by marcandre.lureau@redhat.com 1 year, 1 month ago
From: Marc-André Lureau <marcandre.lureau@redhat.com>

The following changes since commit 29c8a9e31a982874ce4e2c15f2bf82d5f8dc3517:

  Merge tag 'linux-user-for-8.0-pull-request' of https://gitlab.com/laurent_vivier/qemu into staging (2023-03-12 10:57:00 +0000)

are available in the Git repository at:

  https://gitlab.com/marcandre.lureau/qemu.git tags/win-socket-pull-request

for you to fetch changes up to 0006c18362cbe1e93587ac1e8ee965c08e6970f2:

  QMP/HMP: only actually implement getfd on CONFIG_POSIX (2023-03-13 15:41:32 +0400)

----------------------------------------------------------------
QMP command to import win32 sockets

----------------------------------------------------------------

Marc-André Lureau (25):
  util: drop qemu_fork()
  tests: use closesocket()
  io: use closesocket()
  tests: add test-error-report
  error: add global &error_warn destination
  win32/socket: introduce qemu_socket_select() helper
  win32/socket: introduce qemu_socket_unselect() helper
  aio: make aio_set_fd_poll() static to aio-posix.c
  aio/win32: aio_set_fd_handler() only supports SOCKET
  main-loop: remove qemu_fd_register(), win32/slirp/socket specific
  slirp: unregister the win32 SOCKET
  slirp: open-code qemu_socket_(un)select()
  win32: avoid mixing SOCKET and file descriptor space
  os-posix: remove useless ioctlsocket() define
  win32: replace closesocket() with close() wrapper
  tests: fix path separator, use g_build_filename()
  char: do not double-close fd when failing to add client
  tests/docker: fix a win32 error due to portability
  osdep: implement qemu_socketpair() for win32
  qmp: 'add_client' actually expects sockets
  monitor: release the lock before calling close()
  qmp: add 'get-win32-socket'
  libqtest: make qtest_qmp_add_client work on win32
  qtest: enable vnc-display test on win32
  QMP/HMP: only actually implement getfd on CONFIG_POSIX

 qapi/misc.json                       |  36 ++-
 include/block/aio.h                  |   8 -
 include/qapi/error.h                 |   6 +
 include/qemu/main-loop.h             |   2 -
 include/qemu/osdep.h                 |  14 --
 include/qemu/sockets.h               |   2 -
 include/sysemu/os-posix.h            |   3 -
 include/sysemu/os-win32.h            |  15 +-
 tests/qtest/libqtest.h               |   5 +-
 backends/tpm/tpm_emulator.c          |   6 +-
 chardev/char.c                       |   2 -
 crypto/afalg.c                       |   6 +-
 hw/hyperv/syndbg.c                   |   4 +-
 io/channel-socket.c                  |   8 +-
 io/channel-watch.c                   |  10 +-
 monitor/fds.c                        |  77 ++++--
 monitor/hmp-cmds.c                   |   2 +
 monitor/qmp-cmds.c                   |   7 +
 net/dgram.c                          |  14 +-
 net/slirp.c                          |  16 +-
 net/socket.c                         |  22 +-
 tests/qtest/libqtest.c               |  26 +-
 tests/qtest/microbit-test.c          |   2 +-
 tests/qtest/netdev-socket.c          |  10 +-
 tests/qtest/vnc-display-test.c       |  12 +-
 tests/unit/socket-helpers.c          |   2 +-
 tests/unit/test-error-report.c       | 139 +++++++++++
 tests/unit/test-io-channel-command.c |   2 +-
 util/aio-posix.c                     |   6 +-
 util/aio-win32.c                     |  23 +-
 util/error.c                         |  10 +-
 util/main-loop.c                     |  11 -
 util/oslib-posix.c                   |  70 ------
 util/oslib-win32.c                   | 350 ++++++++++++++++++++++++---
 util/qemu-sockets.c                  |  22 +-
 hmp-commands.hx                      |   2 +
 tests/docker/docker.py               |   6 +-
 tests/unit/meson.build               |   1 +
 38 files changed, 701 insertions(+), 258 deletions(-)
 create mode 100644 tests/unit/test-error-report.c

-- 
2.39.2


Re: [PULL 00/25] Win socket patches
Posted by Marc-André Lureau 1 year, 1 month ago
Hi

On Mon, Mar 13, 2023 at 3:43 PM <marcandre.lureau@redhat.com> wrote:

> From: Marc-André Lureau <marcandre.lureau@redhat.com>
>
> The following changes since commit
> 29c8a9e31a982874ce4e2c15f2bf82d5f8dc3517:
>
>   Merge tag 'linux-user-for-8.0-pull-request' of
> https://gitlab.com/laurent_vivier/qemu into staging (2023-03-12 10:57:00
> +0000)
>
> are available in the Git repository at:
>
>   https://gitlab.com/marcandre.lureau/qemu.git
> tags/win-socket-pull-request
>
> for you to fetch changes up to 0006c18362cbe1e93587ac1e8ee965c08e6970f2:
>
>   QMP/HMP: only actually implement getfd on CONFIG_POSIX (2023-03-13
> 15:41:32 +0400)
>
> ----------------------------------------------------------------
> QMP command to import win32 sockets
>
> ----------------------------------------------------------------
>
> Marc-André Lureau (25):
>   util: drop qemu_fork()
>   tests: use closesocket()
>   io: use closesocket()
>   tests: add test-error-report
>   error: add global &error_warn destination
>   win32/socket: introduce qemu_socket_select() helper
>   win32/socket: introduce qemu_socket_unselect() helper
>   aio: make aio_set_fd_poll() static to aio-posix.c
>   aio/win32: aio_set_fd_handler() only supports SOCKET
>   main-loop: remove qemu_fd_register(), win32/slirp/socket specific
>   slirp: unregister the win32 SOCKET
>   slirp: open-code qemu_socket_(un)select()
>   win32: avoid mixing SOCKET and file descriptor space
>   os-posix: remove useless ioctlsocket() define
>   win32: replace closesocket() with close() wrapper
>   tests: fix path separator, use g_build_filename()
>   char: do not double-close fd when failing to add client
>   tests/docker: fix a win32 error due to portability
>   osdep: implement qemu_socketpair() for win32
>   qmp: 'add_client' actually expects sockets
>   monitor: release the lock before calling close()
>   qmp: add 'get-win32-socket'
>   libqtest: make qtest_qmp_add_client work on win32
>   qtest: enable vnc-display test on win32
>   QMP/HMP: only actually implement getfd on CONFIG_POSIX
>

My bad, last patch is not the one I intended (with message fix suggested by
Markus). Sending v2.


>
>  qapi/misc.json                       |  36 ++-
>  include/block/aio.h                  |   8 -
>  include/qapi/error.h                 |   6 +
>  include/qemu/main-loop.h             |   2 -
>  include/qemu/osdep.h                 |  14 --
>  include/qemu/sockets.h               |   2 -
>  include/sysemu/os-posix.h            |   3 -
>  include/sysemu/os-win32.h            |  15 +-
>  tests/qtest/libqtest.h               |   5 +-
>  backends/tpm/tpm_emulator.c          |   6 +-
>  chardev/char.c                       |   2 -
>  crypto/afalg.c                       |   6 +-
>  hw/hyperv/syndbg.c                   |   4 +-
>  io/channel-socket.c                  |   8 +-
>  io/channel-watch.c                   |  10 +-
>  monitor/fds.c                        |  77 ++++--
>  monitor/hmp-cmds.c                   |   2 +
>  monitor/qmp-cmds.c                   |   7 +
>  net/dgram.c                          |  14 +-
>  net/slirp.c                          |  16 +-
>  net/socket.c                         |  22 +-
>  tests/qtest/libqtest.c               |  26 +-
>  tests/qtest/microbit-test.c          |   2 +-
>  tests/qtest/netdev-socket.c          |  10 +-
>  tests/qtest/vnc-display-test.c       |  12 +-
>  tests/unit/socket-helpers.c          |   2 +-
>  tests/unit/test-error-report.c       | 139 +++++++++++
>  tests/unit/test-io-channel-command.c |   2 +-
>  util/aio-posix.c                     |   6 +-
>  util/aio-win32.c                     |  23 +-
>  util/error.c                         |  10 +-
>  util/main-loop.c                     |  11 -
>  util/oslib-posix.c                   |  70 ------
>  util/oslib-win32.c                   | 350 ++++++++++++++++++++++++---
>  util/qemu-sockets.c                  |  22 +-
>  hmp-commands.hx                      |   2 +
>  tests/docker/docker.py               |   6 +-
>  tests/unit/meson.build               |   1 +
>  38 files changed, 701 insertions(+), 258 deletions(-)
>  create mode 100644 tests/unit/test-error-report.c
>
> --
> 2.39.2
>
>
Re: [PULL 00/25] Win socket patches
Posted by Marc-André Lureau 1 year, 1 month ago
Hi

On Mon, Mar 13, 2023 at 3:44 PM <marcandre.lureau@redhat.com> wrote:
>
> From: Marc-André Lureau <marcandre.lureau@redhat.com>
>
> The following changes since commit 29c8a9e31a982874ce4e2c15f2bf82d5f8dc3517:
>
>   Merge tag 'linux-user-for-8.0-pull-request' of https://gitlab.com/laurent_vivier/qemu into staging (2023-03-12 10:57:00 +0000)
>
> are available in the Git repository at:
>
>   https://gitlab.com/marcandre.lureau/qemu.git tags/win-socket-pull-request
>
> for you to fetch changes up to 0006c18362cbe1e93587ac1e8ee965c08e6970f2:
>
>   QMP/HMP: only actually implement getfd on CONFIG_POSIX (2023-03-13 15:41:32 +0400)
>
> ----------------------------------------------------------------
> QMP command to import win32 sockets
>
> ----------------------------------------------------------------
>
> Marc-André Lureau (25):
>   util: drop qemu_fork()
>   tests: use closesocket()
>   io: use closesocket()
>   tests: add test-error-report
>   error: add global &error_warn destination
>   win32/socket: introduce qemu_socket_select() helper
>   win32/socket: introduce qemu_socket_unselect() helper
>   aio: make aio_set_fd_poll() static to aio-posix.c
>   aio/win32: aio_set_fd_handler() only supports SOCKET
>   main-loop: remove qemu_fd_register(), win32/slirp/socket specific
>   slirp: unregister the win32 SOCKET
>   slirp: open-code qemu_socket_(un)select()
>   win32: avoid mixing SOCKET and file descriptor space
>   os-posix: remove useless ioctlsocket() define
>   win32: replace closesocket() with close() wrapper
>   tests: fix path separator, use g_build_filename()
>   char: do not double-close fd when failing to add client
>   tests/docker: fix a win32 error due to portability
>   osdep: implement qemu_socketpair() for win32
>   qmp: 'add_client' actually expects sockets
>   monitor: release the lock before calling close()
>   qmp: add 'get-win32-socket'
>   libqtest: make qtest_qmp_add_client work on win32
>   qtest: enable vnc-display test on win32

Would you consider those 3 patches as "features"? Is it too late to
include before hard-feature freeze? The patches were ready for the
soft-freeze deadline (I was expecting Paolo to send a PR last week, so
I could quickly follow up with those patches in a PR)

>   QMP/HMP: only actually implement getfd on CONFIG_POSIX
>
>  qapi/misc.json                       |  36 ++-
>  include/block/aio.h                  |   8 -
>  include/qapi/error.h                 |   6 +
>  include/qemu/main-loop.h             |   2 -
>  include/qemu/osdep.h                 |  14 --
>  include/qemu/sockets.h               |   2 -
>  include/sysemu/os-posix.h            |   3 -
>  include/sysemu/os-win32.h            |  15 +-
>  tests/qtest/libqtest.h               |   5 +-
>  backends/tpm/tpm_emulator.c          |   6 +-
>  chardev/char.c                       |   2 -
>  crypto/afalg.c                       |   6 +-
>  hw/hyperv/syndbg.c                   |   4 +-
>  io/channel-socket.c                  |   8 +-
>  io/channel-watch.c                   |  10 +-
>  monitor/fds.c                        |  77 ++++--
>  monitor/hmp-cmds.c                   |   2 +
>  monitor/qmp-cmds.c                   |   7 +
>  net/dgram.c                          |  14 +-
>  net/slirp.c                          |  16 +-
>  net/socket.c                         |  22 +-
>  tests/qtest/libqtest.c               |  26 +-
>  tests/qtest/microbit-test.c          |   2 +-
>  tests/qtest/netdev-socket.c          |  10 +-
>  tests/qtest/vnc-display-test.c       |  12 +-
>  tests/unit/socket-helpers.c          |   2 +-
>  tests/unit/test-error-report.c       | 139 +++++++++++
>  tests/unit/test-io-channel-command.c |   2 +-
>  util/aio-posix.c                     |   6 +-
>  util/aio-win32.c                     |  23 +-
>  util/error.c                         |  10 +-
>  util/main-loop.c                     |  11 -
>  util/oslib-posix.c                   |  70 ------
>  util/oslib-win32.c                   | 350 ++++++++++++++++++++++++---
>  util/qemu-sockets.c                  |  22 +-
>  hmp-commands.hx                      |   2 +
>  tests/docker/docker.py               |   6 +-
>  tests/unit/meson.build               |   1 +
>  38 files changed, 701 insertions(+), 258 deletions(-)
>  create mode 100644 tests/unit/test-error-report.c
>
> --
> 2.39.2
>
>


-- 
Marc-André Lureau