[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] chardev/char-socket: Properly make qio connections non blocking
From: |
Sai Pavan Boddu |
Subject: |
[PATCH] chardev/char-socket: Properly make qio connections non blocking |
Date: |
Fri, 17 Apr 2020 18:00:53 +0530 |
In tcp_chr_sync_read function, there is a possibility of socket
disconnection during read, then tcp_chr_hup function would clean up
the qio channel pointers(i.e ioc, sioc).
Signed-off-by: Sai Pavan Boddu <address@hidden>
---
chardev/char-socket.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/chardev/char-socket.c b/chardev/char-socket.c
index 185fe38..30f2b2b 100644
--- a/chardev/char-socket.c
+++ b/chardev/char-socket.c
@@ -549,11 +549,13 @@ static int tcp_chr_sync_read(Chardev *chr, const uint8_t
*buf, int len)
qio_channel_set_blocking(s->ioc, true, NULL);
size = tcp_chr_recv(chr, (void *) buf, len);
- qio_channel_set_blocking(s->ioc, false, NULL);
if (size == 0) {
/* connection closed */
tcp_chr_disconnect(chr);
+ return 0;
}
+ /* Connection is good */
+ qio_channel_set_blocking(s->ioc, false, NULL);
return size;
}
--
2.7.4
- [PATCH] chardev/char-socket: Properly make qio connections non blocking,
Sai Pavan Boddu <=