Patchwork qemu-char: (Re-)connect for tcp_chr_write() unconnected writing

login
register
mail settings
Submitter Lei Li
Date July 16, 2012, 2:58 a.m.
Message ID <1342407511-5111-1-git-send-email-lilei@linux.vnet.ibm.com>
Download mbox | patch
Permalink /patch/171124/
State New
Headers show

Comments

Lei Li - July 16, 2012, 2:58 a.m.
tcp_chr_write() did not deal with writing to an unconnected
connection, (re-)connect it for this situation.

Signed-off-by: Lei Li <lilei@linux.vnet.ibm.com>
---
 qemu-char.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

Patch

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;
     }
 }