Use a more robust method of validating an encoding.
This commit is contained in:
parent
6f91e1e546
commit
131f7157c4
3 changed files with 6 additions and 3 deletions
|
|
@ -21,6 +21,7 @@ method. Otherwise all text will be returned to all connected sessions.
|
|||
from builtins import range
|
||||
|
||||
import time
|
||||
from codecs import lookup as codecs_lookup
|
||||
from django.conf import settings
|
||||
from evennia.server.sessionhandler import SESSIONS
|
||||
from evennia.utils import utils, create, search, evtable
|
||||
|
|
@ -533,7 +534,7 @@ class CmdOption(COMMAND_DEFAULT_CLASS):
|
|||
def validate_encoding(new_encoding):
|
||||
# helper: change encoding
|
||||
try:
|
||||
b"test-string".decode(new_encoding)
|
||||
codecs_lookup(new_encoding)
|
||||
except LookupError:
|
||||
raise RuntimeError("The encoding '|w%s|n' is invalid. " % new_encoding)
|
||||
return val
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ Commands that are available from the connect screen.
|
|||
"""
|
||||
import re
|
||||
import time
|
||||
from codecs import lookup as codecs_lookup
|
||||
from collections import defaultdict
|
||||
from random import getrandbits
|
||||
from django.conf import settings
|
||||
|
|
@ -481,7 +482,7 @@ class CmdUnconnectedEncoding(COMMAND_DEFAULT_CLASS):
|
|||
old_encoding = self.session.protocol_flags.get("ENCODING", None)
|
||||
encoding = self.args
|
||||
try:
|
||||
utils.to_str(b"test-string".decode(encoding))
|
||||
codecs_lookup(encoding)
|
||||
except LookupError:
|
||||
string = "|rThe encoding '|w%s|r' is invalid. Keeping the previous encoding '|w%s|r'.|n"\
|
||||
% (encoding, old_encoding)
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ settings.INPUT_FUNC_MODULES.
|
|||
from future.utils import viewkeys
|
||||
|
||||
import importlib
|
||||
from codecs import lookup as codecs_lookup
|
||||
from django.conf import settings
|
||||
from evennia.commands.cmdhandler import cmdhandler
|
||||
from evennia.accounts.models import AccountDB
|
||||
|
|
@ -176,7 +177,7 @@ def client_options(session, *args, **kwargs):
|
|||
def validate_encoding(val):
|
||||
# helper: change encoding
|
||||
try:
|
||||
b"test-string".decode(val)
|
||||
codecs_lookup(val)
|
||||
except LookupError:
|
||||
raise RuntimeError("The encoding '|w%s|n' is invalid. " % val)
|
||||
return val
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue