diff --git a/src/connection/connection.c b/src/connection/connection.c index c6a7cd91..3e115dc0 100644 --- a/src/connection/connection.c +++ b/src/connection/connection.c @@ -342,6 +342,15 @@ ssize_t neu_conn_recv(neu_conn_t *conn, uint8_t *buf, ssize_t len) break; case NEU_CONN_TTY_CLIENT: ret = read(conn->fd, buf, len); + while (ret > 0 && ret < len) { + ssize_t rv = read(conn->fd, buf + ret, len - ret); + if (rv <= 0) { + ret = rv; + break; + } + + ret += rv; + } break; } if (ret <= 0) {