cpython: c53e3aacb816 (original) (raw)

Mercurial > cpython

changeset 78127:c53e3aacb816 2.7

Fixes Issue #14635: telnetlib will use poll() rather than select() when possible to avoid failing due to the select() file descriptor limit. Contributed by Akintayo Holder and under the Google contributor agreement. [#14635]

Gregory P. Smith greg@krypto.org
date Sun, 15 Jul 2012 22:16:06 -0700
parents 872afada51b0
children 076ae30e5dd0
files Lib/telnetlib.py Lib/test/test_telnetlib.py Misc/ACKS Misc/NEWS
diffstat 4 files changed, 224 insertions(+), 1 deletions(-)[+] [-] Lib/telnetlib.py 130 Lib/test/test_telnetlib.py 91 Misc/ACKS 1 Misc/NEWS 3

line wrap: on

line diff

--- a/Lib/telnetlib.py +++ b/Lib/telnetlib.py @@ -34,6 +34,7 @@ To do:

Imported modules

+import errno import sys import socket import select @@ -205,6 +206,7 @@ class Telnet: self.sb = 0 # flag for SB and SE sequence. self.sbdataq = '' self.option_callback = None

@@ -287,6 +289,61 @@ class Telnet: is closed and no cooked data is available. """

+

+

+

+

@@ -589,6 +646,79 @@ class Telnet: results are undeterministic, and may depend on the I/O timing. """

+

+

+

+

--- a/Lib/test/test_telnetlib.py +++ b/Lib/test/test_telnetlib.py @@ -135,6 +135,28 @@ class ReadTests(TestCase): self.assertEqual(data, want[0]) self.assertEqual(telnet.read_all(), 'not seen')

+

+ def test_read_all_A(self): """ read_all() @@ -357,8 +379,75 @@ class OptionTests(TestCase): self.assertEqual('', telnet.read_sb_data()) nego.sb_getter = None # break the nego => telnet cycle + +class ExpectTests(TestCase):

+

+

+

+

+

+ + def test_main(verbose=None):

if name == 'main': test_main()

--- a/Misc/ACKS +++ b/Misc/ACKS @@ -369,6 +369,7 @@ Chris Hoffman Albert Hofkamp Tomas Hoger Jonathan Hogg +Akintayo Holder Gerrit Holl Shane Holloway Rune Holm

--- a/Misc/NEWS +++ b/Misc/NEWS @@ -84,6 +84,9 @@ Core and Builtins Library ------- +- Issue #14635: telnetlib will use poll() rather than select() when possible