Ping?
On 07/20/2012 07:09 AM, Anthony Liguori wrote:
Lei Li <li...@linux.vnet.ibm.com> writes:
tcp_chr_write() did not deal with writing to an unconnected
connection and return the original length of the data, it's
not right and would cause false writing. So (re-)connect it
and return 0 for this situation.
Signed-off-by: Lei Li <li...@linux.vnet.ibm.com>
Looks good.
Reviewed-by: Anthony Liguori <aligu...@us.ibm.com>
Regards,
Anthony Liguori
---
qemu-char.c | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/qemu-char.c b/qemu-char.c
index c2aaaee..25eaeeb 100644
--- a/qemu-char.c
+++ b/qemu-char.c
@@ -2141,14 +2141,17 @@ typedef struct {
static void tcp_chr_accept(void *opaque);
+static void tcp_chr_connect(void *opaque);
+
static int tcp_chr_write(CharDriverState *chr, const uint8_t *buf, int len)
{
TCPCharDriver *s = chr->opaque;
if (s->connected) {
return send_all(s->fd, buf, len);
} else {
- /* XXX: indicate an error ? */
- return len;
+ /* (Re-)connect for unconnected writing */
+ tcp_chr_connect(chr);
+ return 0;
}
}
--
1.7.7.6
--
Lei