qemu-cr16/qga
Vladimir Sementsov-Ogievskiy 8cb17f9c36 util: drop qemu_socket_set_nonblock()
Use common qemu_set_blocking() instead.

Note that pre-patch the behavior of Win32 and Linux realizations
are inconsistent: we ignore failure for Win32, and assert success
for Linux.

How do we convert the callers?

1. Most of callers call qemu_socket_set_nonblock() on a
freshly created socket fd, in conditions when we may simply
report an error. Seems correct switching to error handling
both for Windows (pre-patch error is ignored) and Linux
(pre-patch we assert success). Anyway, we normally don't
expect errors in these cases.

Still in tests let's use &error_abort for simplicity.

What are exclusions?

2. hw/virtio/vhost-user.c - we are inside #ifdef CONFIG_LINUX,
so no damage in switching to error handling from assertion.

3. io/channel-socket.c: here we convert both old calls to
qemu_socket_set_nonblock() and qemu_socket_set_block() to
one new call. Pre-patch we assert success for Linux in
qemu_socket_set_nonblock(), and ignore all other errors here.
So, for Windows switch is a bit dangerous: we may get
new errors or crashes(when error_abort is passed) in
cases where we have silently ignored the error before
(was it correct in all such cases, if they were?) Still,
there is no other way to stricter API than take
this risk.

4. util/vhost-user-server - compiled only for Linux (see
util/meson.build), so we are safe, switching from assertion to
&error_abort.

Note: In qga/channel-posix.c we use g_warning(), where g_printerr()
would actually be a better choice. Still let's for now follow
common style of qga, where g_warning() is commonly used to print
such messages, and no call to g_printerr(). Converting everything
to use g_printerr() should better be another series.

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2025-09-19 12:46:07 +01:00
..
installer qga/installer: Remove QGA VSS if QGA installation failed 2025-09-01 14:02:18 +03:00
vss-win32 qga-vss: Write hex value of error in log 2025-09-01 14:02:18 +03:00
channel-posix.c util: drop qemu_socket_set_nonblock() 2025-09-19 12:46:07 +01:00
channel-win32.c qga: Add spaces around operator 2021-03-16 20:20:37 -05:00
channel.h qga: add systemd socket activation support 2017-03-06 00:54:18 -06:00
commands-bsd.c error: Drop superfluous #include "qapi/qmp/qerror.h" 2024-10-18 15:03:35 +02:00
commands-common-ssh.c qga: Refactor common SSH functions 2024-05-01 10:35:45 +03:00
commands-common-ssh.h qga: Refactor common SSH functions 2024-05-01 10:35:45 +03:00
commands-common.h qga: move CONFIG_FSFREEZE/TRIM to be meson defined options 2024-07-19 11:50:35 +03:00
commands-linux.c qga: Fix ubsan warning 2025-09-01 14:02:18 +03:00
commands-posix-ssh.c Remove glib compatibility code that is not required anymore 2024-05-14 12:46:39 +02:00
commands-posix.c qga: Add log to guest-fsfreeze-thaw command 2025-02-26 13:33:39 +02:00
commands-win32.c qga-win: implement a 'guest-get-load' command 2025-06-12 17:02:05 +03:00
commands-windows-ssh.c qga: fix -Wsometimes-uninitialized windows warning 2024-11-04 14:16:14 +02:00
commands-windows-ssh.h qga: Implement SSH commands for Windows 2024-05-01 10:35:45 +03:00
commands.c qga: Fix truncated output handling in guest-exec status reporting 2025-09-01 14:02:18 +03:00
cutils.c qga: Clean up includes 2023-02-08 07:16:23 +01:00
cutils.h qga: Clean up includes 2023-02-08 07:16:23 +01:00
guest-agent-command-state.c qga: use local path for local headers 2018-06-01 19:20:38 +03:00
guest-agent-core.h qga-win: implement a 'guest-get-load' command 2025-06-12 17:02:05 +03:00
main.c qga: ignore channel_init() fail if 'retry_path' is set 2025-09-01 14:02:18 +03:00
meson.build qga-win: implement a 'guest-get-load' command 2025-06-12 17:02:05 +03:00
messages-win32.mc qga-win: add logging to Windows event log 2022-12-20 15:54:41 +02:00
qapi-schema.json qga: Add cross-references 2025-07-28 13:45:21 +02:00
service-win32.c qga: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
service-win32.h qga-win: changing --retry-path option behavior 2018-10-31 09:04:20 -05:00
vss-win32.c qga: fix potentially not initialized nr_volumes in qga_vss_fsfreeze() 2025-09-01 14:02:18 +03:00
vss-win32.h qga-win: add support for qmp_guest_fsfreeze_freeze_list 2018-10-30 16:48:49 -05:00