diff options
| author | Roman Penyaev <r.peniaev@gmail.com> | 2025-01-23 09:53:21 +0100 |
|---|---|---|
| committer | Marc-André Lureau <marcandre.lureau@redhat.com> | 2025-02-03 13:57:08 +0400 |
| commit | 4e059a9d966703e27c9f15e47c9b5e94509c5538 (patch) | |
| tree | 650c81b066c4d77284ed19e1b98a91a6e02d6493 | |
| parent | 6fccaa2fba391815308a746d68f7fa197bc93586 (diff) | |
| download | focaccia-qemu-4e059a9d966703e27c9f15e47c9b5e94509c5538.tar.gz focaccia-qemu-4e059a9d966703e27c9f15e47c9b5e94509c5538.zip | |
chardev/char-pty: send CHR_EVENT_CLOSED on disconnect
Change makes code symmetric to the code, which handles the "connected" state, i.e. send CHR_EVENT_CLOSED when state changes from "connected" to "disconnected". This behavior is similar to char-socket, for example. Signed-off-by: Roman Penyaev <r.peniaev@gmail.com> Reviewed-by: "Marc-André Lureau" <marcandre.lureau@redhat.com> Reviewed-by: "Alex Bennée" <alex.bennee@linaro.org> Cc: qemu-devel@nongnu.org Message-ID: <20250123085327.965501-2-r.peniaev@gmail.com>
Diffstat (limited to '')
| -rw-r--r-- | chardev/char-pty.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/chardev/char-pty.c b/chardev/char-pty.c index cbb21b76ae..6a2c1dc13a 100644 --- a/chardev/char-pty.c +++ b/chardev/char-pty.c @@ -181,6 +181,9 @@ static void pty_chr_state(Chardev *chr, int connected) if (!connected) { remove_fd_in_watch(chr); + if (s->connected) { + qemu_chr_be_event(chr, CHR_EVENT_CLOSED); + } s->connected = 0; /* (re-)connect poll interval for idle guests: once per second. * We check more frequently in case the guests sends data to @@ -215,7 +218,6 @@ static void char_pty_finalize(Object *obj) pty_chr_state(chr, 0); object_unref(OBJECT(s->ioc)); pty_chr_timer_cancel(s); - qemu_chr_be_event(chr, CHR_EVENT_CLOSED); } #if defined HAVE_PTY_H |