Support clients using CR+NUL to signal EOL
[mudpy.git] / mudpy / telnet.py
index 245f44a..ed99faf 100644 (file)
@@ -125,9 +125,11 @@ def negotiate_telnet_options(user):
         # the byte following the IAC is our command
         command = text[position+1]
 
-        # replace a double (literal) IAC if there's aLF later
+        # replace a double (literal) IAC if there's a CR+NUL or CR+LF later
         if command is IAC:
-            if text.find(b"\n", position) > 0:
+            if (
+                    text.find(b"\r\0", position) > 0 or
+                    text.find(b"\r\n", position) > 0):
                 position += 1
                 text = text[:position] + text[position + 1:]
             else: