From c57ba8d2ec257313db7b998540865f400f69ea91 Mon Sep 17 00:00:00 2001 From: night0721 Date: Fri, 20 Sep 2024 18:24:01 +0100 Subject: [PATCH] Make server ignore if client closed connection --- src/server/server.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/server/server.c b/src/server/server.c index 3fb8d91..fe77e7d 100644 --- a/src/server/server.c +++ b/src/server/server.c @@ -69,10 +69,12 @@ int authenticate_client(int clientfd, uint8_t *username) return ZSM_STA_SUCCESS; } failure:; + /* packet_t *error_pkt = create_packet(ZSM_STA_UNAUTHORISED, ZSM_TYP_ERROR, 0, NULL, create_signature(NULL, 0, NULL)); send_packet(error_pkt, clientfd); free_packet(error_pkt); + */ close(clientfd); return ZSM_STA_ERROR_AUTHENTICATE; } @@ -124,8 +126,15 @@ void *thread_worker(void *arg) if (events[i].events & EPOLLIN) { /* Handle packet */ packet_t pkt; - if (verify_packet(&pkt, client->fd) == 0) { - error(0, "Error verifying packet"); + int status = verify_packet(&pkt, client->fd); + if (status != ZSM_STA_SUCCESS) { + if (status == ZSM_STA_CLOSED_CONNECTION) { + /* TODO: Remove client from thread */ + error(0, "Client closed connection"); + } else { + error(0, "Error verifying packet"); + } + continue; } /* Message relay */