diff --git a/src/server/server.c b/src/server/server.c index 09812ec..d5c13c2 100644 --- a/src/server/server.c +++ b/src/server/server.c @@ -436,8 +436,12 @@ _start_server_cb(void* userdata) int c = sizeof(struct sockaddr_in); int client_socket; errno = 0; - // DEBUG removed while ((client_socket = accept(listen_socket, (struct sockaddr *)&client_addr, (socklen_t*)&c)) == -1) { + if (kill_recv) { + log_println(STBBR_LOGINFO, "Accept loop interrupted by stop request"); + _shutdown(); + return NULL; + } if (errno != EAGAIN && errno != EWOULDBLOCK) { log_println(STBBR_LOGERROR, "Accept failed: %s", strerror(errno)); return NULL;