qemu-e2k/chardev
Daniel P. Berrangé e8ee827ffd Revert "chardev/char-socket: Fix TLS io channels sending too much data to the backend"
This commit results in unexpected termination of the TLS connection.
When 'fd_can_read' returns 0, the code goes on to pass a zero length
buffer to qio_channel_read. The TLS impl calls into gnutls_recv()
with this zero length buffer, at which point GNUTLS returns an error
GNUTLS_E_INVALID_REQUEST. This is treated as fatal by QEMU's TLS code
resulting in the connection being torn down by the chardev.

Simply skipping the qio_channel_read when the buffer length is zero
is also not satisfactory, as it results in a high CPU burn busy loop
massively slowing QEMU's functionality.

The proper solution is to avoid tcp_chr_read being called at all
unless the frontend is able to accept more data. This will be done
in a followup commit.

This reverts commit 462945cd22

Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2024-03-19 20:17:12 +00:00
..
baum.c replace TABs with spaces 2023-03-20 12:43:50 +01:00
char-console.c
char-fd.c Refactoring: refactor TFR() macro to RETRY_ON_EINTR() 2023-01-09 13:50:47 +01:00
char-fe.c char: Slightly better error reporting when chardev is in use 2024-03-09 18:56:37 +03:00
char-file.c chardev: Allow setting file chardev input file on the command line 2023-04-20 06:50:11 +02:00
char-hmp-cmds.c char: Move HMP commands from monitor/ to chardev/ 2023-02-04 07:56:54 +01:00
char-io.c QIOChannel: Add flags on io_writev and introduce io_flush callback 2022-05-16 13:56:24 +01:00
char-mux.c chardev: don't exit() straight away on C-a x 2021-11-04 10:32:01 +00:00
char-null.c
char-parallel.c chardev/parallel: Don't close stdin on inappropriate device 2024-02-14 07:44:38 +01:00
char-pipe.c Refactoring: refactor TFR() macro to RETRY_ON_EINTR() 2023-01-09 13:50:47 +01:00
char-pty.c chardev/char-pty: Avoid losing bytes when the other side just (re-)connected 2023-10-03 15:40:09 +04:00
char-ringbuf.c
char-serial.c chardev: replace qemu_set_nonblock() 2022-05-03 15:51:52 +04:00
char-socket.c Revert "chardev/char-socket: Fix TLS io channels sending too much data to the backend" 2024-03-19 20:17:12 +00:00
char-stdio.c chardev: replace qemu_set_nonblock() 2022-05-03 15:51:52 +04:00
char-udp.c qapi chardev: Elide redundant has_FOO in generated C 2022-12-14 20:04:47 +01:00
char-win-stdio.c chardev/char-win-stdio: Support VT sequences on Windows 11 host 2023-06-27 17:08:56 +02:00
char-win.c
char.c chardev: use bool for fe_is_open 2024-01-12 13:23:48 +00:00
chardev-internal.h Clean up decorations and whitespace around header guards 2022-05-11 16:50:32 +02:00
meson.build chardev/parallel: Don't close stdin on inappropriate device 2024-02-14 07:44:38 +01:00
msmouse.c ui/input: Constify QemuInputHandler structure 2023-10-19 23:13:28 +02:00
spice.c ui/spice: Require spice-server >= 0.14.0 2023-01-19 13:30:01 +01:00
testdev.c
trace-events docs: fix references to docs/devel/tracing.rst 2021-06-02 06:51:09 +02:00
trace.h
wctablet.c ui/input: Constify QemuInputHandler structure 2023-10-19 23:13:28 +02:00