From b1656cdfa95673bb19605d9358cb3c98a69f15d2 Mon Sep 17 00:00:00 2001 From: Artur Borecki Date: Sat, 28 Feb 2026 23:39:07 +0100 Subject: [PATCH] feat(client.py): redo ClientStatuses adding PENDING and STALE --- src/judas_server/backend/client.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/judas_server/backend/client.py b/src/judas_server/backend/client.py index 92fd881..500f9f4 100644 --- a/src/judas_server/backend/client.py +++ b/src/judas_server/backend/client.py @@ -6,11 +6,16 @@ from __future__ import annotations import logging as lg import socket from enum import Enum +import time class ClientStatus(str, Enum): - CONNECTED = "connected" - DISCONNECTED = "disconnected" + """Enumeration of client connection statuses.""" + + ONLINE = "online" + PENDING = "pending" + OFFLINE = "offline" + STALE = "stale" class Client: @@ -34,7 +39,7 @@ class Client: self.id: str | None = id self.last_seen: float = 0.0 # unix timestanp of last inbound message - self.status: ClientStatus = ClientStatus.CONNECTED + self.status: ClientStatus = ClientStatus.PENDING self.socket: socket.socket = socket self.addr: tuple[str, int] = addr @@ -54,5 +59,7 @@ class Client: self.socket.close() except Exception as e: self.logger.error(f"Error closing socket for Client {self}: {e}") - self.status = ClientStatus.DISCONNECTED + self.status = ClientStatus.OFFLINE + self.last_seen = time.time() + self.logger.info(f"Client {self} disconnected.")