From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:54125) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SrzqJ-0003av-34 for qemu-devel@nongnu.org; Thu, 19 Jul 2012 19:09:11 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SrzqI-0005y9-2J for qemu-devel@nongnu.org; Thu, 19 Jul 2012 19:09:11 -0400 Received: from mail-yx0-f173.google.com ([209.85.213.173]:55492) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SrzqH-0005y1-UQ for qemu-devel@nongnu.org; Thu, 19 Jul 2012 19:09:09 -0400 Received: by yenl1 with SMTP id l1so3530151yen.4 for ; Thu, 19 Jul 2012 16:09:09 -0700 (PDT) From: Anthony Liguori In-Reply-To: <1342706962-11268-1-git-send-email-lilei@linux.vnet.ibm.com> References: <1342706962-11268-1-git-send-email-lilei@linux.vnet.ibm.com> Date: Thu, 19 Jul 2012 18:09:05 -0500 Message-ID: <87394nbb72.fsf@codemonkey.ws> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Subject: Re: [Qemu-devel] [PATCH] qemu-char: (Re-)connect for tcp_chr_write() unconnected writing List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Lei Li , qemu-devel@nongnu.org Lei Li 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 Looks good. Reviewed-by: Anthony Liguori 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