提交 257e9cfc 编写于 作者: S Sebastian Tanase 提交者: Michael Roth

pty: Fix byte loss bug when connecting to pty

When trying to print data to the pty, we first check if it is connected.
If not, we try to reconnect, but we drop the pending data even if we
have successfully reconnected; this makes us lose the first byte of the very
first transmission.
This small fix addresses the issue by checking once more if the pty is connected
after having tried to reconnect.
Signed-off-by: NSebastian Tanase <sebastian.tanase@openwide.fr>
Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
(cherry picked from commit cf7330c7)
Signed-off-by: NMichael Roth <mdroth@linux.vnet.ibm.com>
上级 1aa87d36
......@@ -1160,7 +1160,9 @@ static int pty_chr_write(CharDriverState *chr, const uint8_t *buf, int len)
if (!s->connected) {
/* guest sends data, check for (re-)connect */
pty_chr_update_read_handler_locked(chr);
return 0;
if (!s->connected) {
return 0;
}
}
return io_channel_send(s->fd, buf, len);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册