From 68a3feb2fe4f5a4be0d64b02095e0c2a96d98fd4 Mon Sep 17 00:00:00 2001 From: mike Date: Tue, 9 Apr 2024 00:12:42 -0700 Subject: [PATCH] A few typo fixes and NAWS update detection and handling. --- evennia/server/portal/portalsessionhandler.py | 2 +- evennia/server/portal/telnet.py | 8 ++++++-- evennia/server/serversession.py | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/evennia/server/portal/portalsessionhandler.py b/evennia/server/portal/portalsessionhandler.py index 8a5ed53ce2..bd248cc8a7 100644 --- a/evennia/server/portal/portalsessionhandler.py +++ b/evennia/server/portal/portalsessionhandler.py @@ -468,7 +468,7 @@ class PortalSessionHandler(SessionHandler): kwargs (any): Each key is a command instruction to the protocol on the form key = [[args],{kwargs}]. This will call a method send_ on the protocol. If no such - method exixts, it sends the data to a method send_default. + method exits, it sends the data to a method send_default. """ # from evennia.server.profiling.timetrace import timetrace # DEBUG diff --git a/evennia/server/portal/telnet.py b/evennia/server/portal/telnet.py index cb577f3835..eeb00ba053 100644 --- a/evennia/server/portal/telnet.py +++ b/evennia/server/portal/telnet.py @@ -31,6 +31,7 @@ from twisted.internet.task import LoopingCall from evennia.server.portal import mssp, naws, suppress_ga, telnet_oob, ttype from evennia.server.portal.mccp import MCCP, Mccp, mccp_compress from evennia.server.portal.mxp import Mxp, mxp_parse +from evennia.server.portal.naws import NAWS from evennia.utils import ansi from evennia.utils.utils import class_from_module, to_bytes @@ -91,9 +92,12 @@ class TelnetProtocol(Telnet, StatefulTelnetProtocol, _BASE_SESSION_CLASS): of incoming data. """ - # print(f"telnet dataReceived: {data}") try: - super().dataReceived(data) + # Do we have a NAWS update? + if NAWS in data and len([data[i:i+1] for i in range(0, len(data))]) == 9: + self.sessionhandler.sync(self.sessionhandler.get(self.sessid)) + else: + super().dataReceived(data) except ValueError as err: from evennia.utils import logger diff --git a/evennia/server/serversession.py b/evennia/server/serversession.py index 5177f30f5d..c4048e19ca 100644 --- a/evennia/server/serversession.py +++ b/evennia/server/serversession.py @@ -268,7 +268,7 @@ class ServerSession(_BASE_SESSION_CLASS): Notes: Since protocols can vary, no checking is done - as to the existene of the flag or not. The input + as to the existence of the flag or not. The input data should have been validated before this call. """