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