Implement QUIT

This commit is contained in:
XANTRONIX Development 2024-11-26 10:27:03 -05:00
parent 84bc5ffd8e
commit 2ffbdcb39a

View file

@ -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):