Skip to content

Commit e84e661

Browse files
author
Jeff Quast
committed
freeing random-order stackframes
1 parent 651b97f commit e84e661

File tree

3 files changed

+18
-19
lines changed

3 files changed

+18
-19
lines changed

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ def _get_long_description(fname, encoding='utf8'):
1515

1616
setup(name='telnetlib3',
1717
# keep in sync w/docs/conf.py manually for now, please!
18-
version='1.0.1',
18+
version='1.0.2',
1919
url='http://telnetlib3.rtfd.org/',
2020
license='ISC',
2121
author='Jeff Quast',

telnetlib3/client.py

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ def __init__(self, term='unknown', cols=80, rows=25,
5555
'xdisploc': xdisploc,
5656
})
5757

58-
5958
def connection_made(self, transport):
6059
"""Callback for connection made to server."""
6160
from telnetlib3.telopt import TTYPE, TSPEED, XDISPLOC, NEW_ENVIRON
@@ -90,9 +89,9 @@ def send_env(self, keys):
9089
"""
9190
Callback for responding to NEW_ENVIRON requests.
9291
93-
:param dict keys: Values are requested for the keys specified. When empty,
94-
all environment values that wish to be volunteered should be
95-
returned.
92+
:param dict keys: Values are requested for the keys specified.
93+
When empty, all environment values that wish to be volunteered
94+
should be returned.
9695
:returns: dictionary of environment values requested, or an
9796
empty string for keys not available. A return value must be
9897
given for each key requested.
@@ -127,16 +126,16 @@ def send_charset(self, offered):
127126
"""
128127
selected = ''
129128
for offer in offered:
130-
try:
131-
codec = codecs.lookup(offer)
132-
except LookupError as err:
133-
self.log.info('LookupError: {}'.format(err))
134-
else:
135-
if (codec.name == self.default_encoding or not selected):
136-
self._extra['charset'] = codec.name
137-
self._extra['lang'] = (
138-
self.DEFAULT_LOCALE + '.' + codec.name)
139-
selected = offer
129+
try:
130+
codec = codecs.lookup(offer)
131+
except LookupError as err:
132+
self.log.info('LookupError: {}'.format(err))
133+
else:
134+
if (codec.name == self.default_encoding or not selected):
135+
self._extra['charset'] = codec.name
136+
self._extra['lang'] = (
137+
self.DEFAULT_LOCALE + '.' + codec.name)
138+
selected = offer
140139
if selected:
141140
self.log.debug('encoding negotiated: {0}'.format(selected))
142141
else:

telnetlib3/tests/test_encoding.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ def binary_shell(reader, writer):
225225
# our reader and writer should provide binary output
226226
writer.write(b'server_output')
227227

228-
val = yield from reader.read(1)
228+
val = yield from reader.readexactly(1)
229229
assert val == b'c'
230230
val = yield from reader.readexactly(len(b'lient '))
231231
assert val == b'lient '
@@ -242,7 +242,7 @@ def binary_shell(reader, writer):
242242
host=bind_host, port=unused_tcp_port, loop=event_loop)
243243

244244
# exercise, server will binary
245-
val = await reader.read(len(IAC + DO + TTYPE))
245+
val = await reader.readexactly(len(IAC + DO + TTYPE))
246246
assert val == IAC + DO + TTYPE
247247

248248
writer.write(IAC + WONT + TTYPE)
@@ -274,7 +274,7 @@ async def test_telnet_client_and_server_escape_iac_encoding(
274274
server = await asyncio.wait_for(_waiter, 0.5)
275275

276276
server.writer.write(given_string)
277-
result = await client_reader.read(len(given_string))
277+
result = await client_reader.readexactly(len(given_string))
278278
assert result == given_string
279279
server.writer.close()
280280
eof = await asyncio.wait_for(client_reader.read(), 0.5)
@@ -300,7 +300,7 @@ async def test_telnet_client_and_server_escape_iac_binary(
300300
server = await asyncio.wait_for(_waiter, 0.5)
301301

302302
server.writer.write(given_string)
303-
result = await client_reader.read(len(given_string))
303+
result = await client_reader.readexactly(len(given_string))
304304
assert result == given_string
305305
server.writer.close()
306306
eof = await asyncio.wait_for(client_reader.read(), 0.5)

0 commit comments

Comments
 (0)