@@ -1899,16 +1899,6 @@ static int tcp_chr_write(CharDriverState *chr, const uint8_t *buf, int len)
}
}
-static int tcp_chr_read_poll(void *opaque)
-{
- CharDriverState *chr = opaque;
- TCPCharDriver *s = chr->opaque;
- if (!s->connected)
- return 0;
- s->max_size = qemu_chr_can_read(chr);
- return s->max_size;
-}
-
#define IAC 255
#define IAC_BREAK 243
static void tcp_chr_process_IAC_bytes(CharDriverState *chr,
@@ -2030,7 +2020,10 @@ static void tcp_chr_read(void *opaque)
uint8_t buf[READ_BUF_LEN];
int len, size;
- if (!s->connected || s->max_size <= 0)
+ if (!s->connected)
+ return;
+ s->max_size = qemu_chr_can_read(chr);
+ if (s->max_size <= 0)
return;
len = sizeof(buf);
if (len > s->max_size)
@@ -2064,8 +2057,7 @@ static void tcp_chr_connect(void *opaque)
TCPCharDriver *s = chr->opaque;
s->connected = 1;
- qemu_set_fd_handler2(s->fd, tcp_chr_read_poll,
- tcp_chr_read, NULL, chr);
+ qemu_set_fd_handler(s->fd, tcp_chr_read, NULL, chr);
qemu_chr_generic_open(chr);
}
This way we can remove the poll test Signed-off-by: Juan Quintela <quintela@redhat.com> --- qemu-char.c | 18 +++++------------- 1 files changed, 5 insertions(+), 13 deletions(-)