Adjust Telnet echo state on connection replacement
authorJeremy Stanley <fungi@yuggoth.org>
Sun, 15 Aug 2021 13:51:58 +0000 (13:51 +0000)
committerJeremy Stanley <fungi@yuggoth.org>
Sun, 15 Aug 2021 13:51:58 +0000 (13:51 +0000)
When a new connection authenticates for the same account as an
established one, we jump straight from the password entry state to
whatever state the old connection was in. Because password entry
disables local echo in order to hide the user's input from the
screen, we need to make sure that the new connection's Telnet
options are copied to the user object and then inject a negotiation
to cause the Telnet stack to normalize to the echo setting for the
new state.

mudpy/misc.py

index 5270acd..f94c2a8 100644 (file)
@@ -655,6 +655,8 @@ class User:
                 old_user.connection = self.connection
                 old_user.last_address = old_user.address
                 old_user.address = self.address
+                old_user.telopts = self.telopts
+                old_user.adjust_echoing()
 
                 # take this one out of the list and delete
                 self.remove()