From e2a2b1f951c450bcf5a993b73dc6f31f5ef2434a Mon Sep 17 00:00:00 2001 From: Jeremy Stanley Date: Sun, 21 Jan 2018 23:41:46 +0000 Subject: [PATCH] Test that unknown telnet commands are filtered Using the recently added support for injecting raw bytes into the client socket in self tests, send a made-up IAC sequence which the server won't recognize as a valid telnet command and make sure that it gets properly logged and filtered out of the input sequence while preserving the remaining input. --- mudpy/tests/selftest.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/mudpy/tests/selftest.py b/mudpy/tests/selftest.py index 766f01d..06cdbab 100644 --- a/mudpy/tests/selftest.py +++ b/mudpy/tests/selftest.py @@ -151,6 +151,13 @@ test_telnet_iac = ( (2, r"Non-UTF-8 sequence from admin: b'say argle\\xffbargle'.*> ", ""), ) +test_telnet_unknown = ( + # Send an unsupported negotiation command #127 which should get filtered + # from the line of input + (2, "> ", b"say glop\xff\x7fglyf\r\n"), + (2, r'Unknown Telnet IAC command 127 ignored\..*"Glopglyf\.".*> ', ""), +) + test_admin_restriction = ( (0, "> ", "help halt"), (0, r"That is not an available command\.", "halt"), @@ -250,6 +257,7 @@ dialogue = ( (test_account1_teardown, "second account teardown"), (test_admin_setup, "admin account setup"), (test_telnet_iac, "escape stray telnet iac bytes"), + (test_telnet_unknown, "strip unknown telnet command"), (test_admin_restriction, "restricted admin commands"), (test_admin_help, "admin help"), (test_reload, "reload"), -- 2.11.0