From 1c4ddd37240c6a8946f3be18acbce188665ed5b7 Mon Sep 17 00:00:00 2001 From: Max Lv Date: Fri, 9 Aug 2019 14:52:54 +0800 Subject: [PATCH] Fix #2449 --- src/server.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/server.c b/src/server.c index b0e0ba0c..c076e0cc 100644 --- a/src/server.c +++ b/src/server.c @@ -701,11 +701,6 @@ server_recv_cb(EV_P_ ev_io *w, int revents) buffer_t *buf = server->buf; - // Ignore any new packet if the server is stopped - if (server->stage == STAGE_STOP) { - return; - } - if (server->stage == STAGE_STREAM) { remote = server->remote; buf = remote->buf; @@ -731,6 +726,11 @@ server_recv_cb(EV_P_ ev_io *w, int revents) } } + // Ignore any new packet if the server is stopped + if (server->stage == STAGE_STOP) { + return; + } + tx += r; buf->len = r; @@ -1101,11 +1101,6 @@ remote_recv_cb(EV_P_ ev_io *w, int revents) remote_t *remote = remote_recv_ctx->remote; server_t *server = remote->server; - // Ignore any new packet if the server is stopped - if (server->stage == STAGE_STOP) { - return; - } - if (server == NULL) { LOGE("invalid server"); close_and_free_remote(EV_A_ remote); @@ -1134,6 +1129,11 @@ remote_recv_cb(EV_P_ ev_io *w, int revents) rx += r; + // Ignore any new packet if the server is stopped + if (server->stage == STAGE_STOP) { + return; + } + server->buf->len = r; int err = crypto->encrypt(server->buf, server->e_ctx, SOCKET_BUF_SIZE);