# -*- coding: utf-8 -*-
"""Telnet functions and constants for the mudpy engine."""
-# Copyright (c) 2004-2012 Jeremy Stanley <fungi@yuggoth.org>. Permission
+# Copyright (c) 2004-2013 Jeremy Stanley <fungi@yuggoth.org>. Permission
# to use, copy, modify, and distribute this software is granted under
# terms provided in the LICENSE file distributed with this software.
def telnet_proto(*arguments):
"""Return a concatenated series of Telnet protocol commands."""
- # (this will need to be byte type during 2to3 migration)
- return "".join([chr(x) for x in arguments])
+ return bytes((arguments))
def send_command(user, *command):
break
# the byte following the IAC is our command
- # (this will need to be byte type during 2to3 migration)
- command = ord(text[position + 1])
+ command = text[position+1]
# replace a double (literal) IAC if there's an LF later
if command is IAC:
# implement an RFC 1143 option negotiation queue here
elif len_text > position + 2 and WILL <= command <= DONT:
- # this will need to be byte type during 2to3 migration
- telopt = ord(text[position + 2])
+ telopt = text[position+2]
if telopt in supported:
if command <= WONT:
party = HIM
# subnegotiation options
elif len_text > position + 4 and command is SB:
- # this will need to be byte type during 2to3 migration
telopt = ord(text[position + 2])
if telopt is TELOPT_NAWS:
- # this will need to be byte type during 2to3 migration
user.columns = ord(text[position + 3]) * \
256 + ord(text[position + 4])
end_subnegotiation = text.find(telnet_proto(IAC, SE), position)