From 2ffbdcb39a425d41b853e025928bf4998d3678e5 Mon Sep 17 00:00:00 2001 From: XANTRONIX Development Date: Tue, 26 Nov 2024 10:27:03 -0500 Subject: [PATCH] Implement QUIT --- lib/nntp/tiny/session.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/nntp/tiny/session.py b/lib/nntp/tiny/session.py index 32b5d63..d82c137 100644 --- a/lib/nntp/tiny/session.py +++ b/lib/nntp/tiny/session.py @@ -15,7 +15,7 @@ from nntp.tiny.newsgroup import Newsgroup from nntp.tiny.message import Message class SessionState(enum.Flag): - NONE = 0 + ACTIVE = 1 AUTH_OK = enum.auto() AUTH_POST = enum.auto() @@ -104,7 +104,7 @@ class Session(): def __init__(self, server: Server, sock: socket.socket): self.server: Server = server self.db: Database = server.db - self.state: SessionState = SessionState.NONE + self.state: SessionState = SessionState.ACTIVE self.sock: socket.socket = sock self.buf: LineBuffer = LineBuffer() @@ -554,6 +554,11 @@ class Session(): return self.respond(ResponseCode.NNTP_DATE, timestamp.strftime("%Y%m%d%H%M%S")) + def _cmd_quit(self): + self.state &= ~SessionState.ACTIVE + + return self.respond(ResponseCode.NNTP_CONNECTION_CLOSING) + COMMANDS = { 'CAPABILITIES': _cmd_capabilities, 'GROUP': _cmd_group, @@ -567,6 +572,7 @@ class Session(): 'HDR': _cmd_hdr, 'STAT': _cmd_stat, 'DATE': _cmd_date, + 'QUIT': _cmd_quit, } def handle(self):