From 22f417e68ecddfc43ec7d97e7f1094a2c3dca4f9 Mon Sep 17 00:00:00 2001 From: XANTRONIX Development Date: Tue, 26 Nov 2024 18:50:47 -0500 Subject: [PATCH] Implement usage of OutputBuffer --- lib/nntp/tiny/session.py | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/lib/nntp/tiny/session.py b/lib/nntp/tiny/session.py index 1a2266c..014d18b 100644 --- a/lib/nntp/tiny/session.py +++ b/lib/nntp/tiny/session.py @@ -7,7 +7,7 @@ import traceback from typing import Optional -from nntp.tiny.buffer import LineBuffer, BufferOverflow +from nntp.tiny.buffer import LineBuffer, OutputBuffer, BufferOverflow from nntp.tiny.db import Database from nntp.tiny.response import Response, ResponseCode from nntp.tiny.newsgroup import Newsgroup @@ -104,12 +104,13 @@ class Session(): RE_SPLIT = re.compile(r'\s+') def __init__(self, server, sock: socket.socket): - self.server = server - self.db: Database = server.connect_to_db() - self.sock: socket.socket = sock - self.buf: LineBuffer = LineBuffer() - self.state: SessionState = SessionState.ACTIVE - self.mode: SessionMode = SessionMode.READER + self.server = server + self.db: Database = server.connect_to_db() + self.sock: socket.socket = sock + self.buf: LineBuffer = LineBuffer() + self.output: OutputBuffer = OutputBuffer(sock) + self.state: SessionState = SessionState.ACTIVE + self.mode: SessionMode = SessionMode.READER self.newsgroup: Optional[Newsgroup] = None self.article_id: Optional[int] = None @@ -118,7 +119,10 @@ class Session(): return self.buf.readline(self.sock) def print(self, text: str, end: str="\r\n"): - return self.sock.send(bytes(text + end, 'utf-8')) + return self.output.print(text, end) + + def flush(self): + return self.output.flush() def end(self): return self.print('.') @@ -768,5 +772,6 @@ class Session(): while self.state & SessionState.ACTIVE: self.handle_command() + self.flush() self.sock.close()