*** telnetlib.py.old Fri Oct 17 11:36:54 2003 --- telnetlib.py Fri Oct 17 11:48:23 2003 *************** *** 311,316 **** --- 311,318 ---- s_args = s_reply if timeout is not None: s_args = s_args + (timeout,) + from time import time + time_start = time() while not self.eof and select.select(*s_args) == s_reply: i = max(0, len(self.cookedq)-n) self.fill_rawq() *************** *** 321,326 **** --- 323,333 ---- buf = self.cookedq[:i] self.cookedq = self.cookedq[i:] return buf + if timeout is not None: + elapsed = time() - time_start + if elapsed >= timeout: + break + s_args = s_reply + (timeout-elapsed,) return self.read_very_lazy() def read_all(self): *************** *** 601,606 **** --- 608,616 ---- if not hasattr(list[i], "search"): if not re: import re list[i] = re.compile(list[i]) + if timeout is not None: + from time import time + time_start = time() while 1: self.process_rawq() for i in indices: *************** *** 613,619 **** if self.eof: break if timeout is not None: ! r, w, x = select.select([self.fileno()], [], [], timeout) if not r: break self.fill_rawq() --- 623,633 ---- if self.eof: break if timeout is not None: ! elapsed = time() - time_start ! if elapsed >= timeout: ! break ! s_args = ([self.fileno()], [], [], timeout-elapsed) ! r, w, x = select.select(*s_args) if not r: break self.fill_rawq()