From 2b6acdf74987835c4416009c6af2f767c33dd2b7 Mon Sep 17 00:00:00 2001 From: fengzero Date: Mon, 26 Jun 2023 07:22:50 +0000 Subject: [PATCH] improve(connection): donot close fd if tty read returns 0 --- src/connection/connection.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/connection/connection.c b/src/connection/connection.c index 0fe054cd..b4ea7b43 100644 --- a/src/connection/connection.c +++ b/src/connection/connection.c @@ -407,14 +407,23 @@ ssize_t neu_conn_recv(neu_conn_t *conn, uint8_t *buf, ssize_t len) } break; } - if (ret <= 0) { - zlog_error( - conn->param.log, - "conn fd: %d, recv buf len %zd, ret: %zd, errno: %s(%d), type:%d", - conn->fd, len, ret, strerror(errno), errno, conn->param.type); - if (errno == EPIPE || (ret == 0 && errno != 0)) { + if (conn->param.type == NEU_CONN_TTY_CLIENT) { + if (ret == -1) { + zlog_error( + conn->param.log, + "tty conn fd: %d, recv buf len %zd, ret: %zd, errno: %s(%d)", + conn->fd, len, ret, strerror(errno), errno); conn_disconnect(conn); } + } else { + if (ret <= 0) { + zlog_error(conn->param.log, + "conn fd: %d, recv buf len %zd, ret: %zd, errno: %s(%d)", + conn->fd, len, ret, strerror(errno), errno); + if (ret == 0 || (ret == -1 && errno != EAGAIN)) { + conn_disconnect(conn); + } + } } pthread_mutex_unlock(&conn->mtx);