From 69dcd4640dda9c89787e57b7f1530e19d8cc88e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juhani=20Krekel=C3=A4?= Date: Tue, 16 Jul 2019 14:44:22 +0300 Subject: [PATCH] Ensure we start off with a valid nick --- ethermess.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/ethermess.py b/ethermess.py index 6c44eb8..b307ba0 100644 --- a/ethermess.py +++ b/ethermess.py @@ -552,6 +552,21 @@ def main(): proc = subprocess.Popen([libexec_dir + '/ethermess-backend', interface], stdin = subprocess.PIPE, stdout = subprocess.PIPE, stderr = sys.stderr, bufsize = 0) # Tell the backend the status and nick + try: + validate_nick(own_nick) + + except NonCharacterError as err: + print('--- Error: contains non-character U+%04X' % ord(err.args[0])) + sys.exit(1) + + except ControlCharacterError as err: + print('--- Error: contains control character U+%04X' % ord(err.args[0])) + sys.exit(1) + + except NickLengthError: + print('--- Error: nick too long (max. 255B)') + sys.exit(1) + own_status = statuses.available encoded = own_nick.encode('utf-8') writeall(proc.stdin, bytes([own_status.value, len(encoded)]) + encoded)