From e477336fa1c264c608c502cf7575b2fb6d790100 Mon Sep 17 00:00:00 2001 From: fengzero Date: Thu, 14 Jul 2022 06:01:05 +0000 Subject: [PATCH] fix(connection): trigger disconnect callback if reconfig --- src/connection/connection.c | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/src/connection/connection.c b/src/connection/connection.c index 59847a61..c7968114 100644 --- a/src/connection/connection.c +++ b/src/connection/connection.c @@ -243,10 +243,6 @@ ssize_t neu_conn_send(neu_conn_t *conn, uint8_t *buf, ssize_t len) if (ret == -1 && errno != EAGAIN) { conn_disconnect(conn); - if (conn->callback_trigger == true) { - conn->disconnected(conn->data, conn->fd); - conn->callback_trigger = false; - } } if (ret > 0 && conn->callback_trigger == false) { @@ -296,10 +292,6 @@ ssize_t neu_conn_recv(neu_conn_t *conn, uint8_t *buf, ssize_t len) if (errno == EPIPE || ret <= 0) { conn_disconnect(conn); - if (conn->callback_trigger == true) { - conn->disconnected(conn->data, conn->fd); - conn->callback_trigger = false; - } } if (ret > 0 && conn->callback_trigger == false) { @@ -350,10 +342,6 @@ void neu_conn_flush(neu_conn_t *conn) void neu_conn_disconnect(neu_conn_t *conn) { conn_disconnect(conn); - if (conn->callback_trigger == true) { - conn->disconnected(conn->data, conn->fd); - conn->callback_trigger = false; - } } static void conn_free_param(neu_conn_t *conn) @@ -723,6 +711,10 @@ static void conn_disconnect(neu_conn_t *conn) } conn->is_connected = false; + if (conn->callback_trigger == true) { + conn->disconnected(conn->data, conn->fd); + conn->callback_trigger = false; + } } static void conn_tcp_server_add_client(neu_conn_t *conn, int fd,