Chris Hallman wrote: > > I've written a program that tests ISDN dial backup at 1,000 locations. > I've broken up the logic into server functions within a threading > class (i.e. logon, get interfaces, get dial string, etc.). At 999 > locations, the following code extract the first of three dial strings: > > def GetDialString(self): > """ This function extracts the dial string.""" > self.tn.write("term len 0\n") > self.tn.expect([self.host.upper() + "#"], 7) > self.tn.write("sh dialer | i Default\n") > self.data = self.tn.read_until(self.host.upper() + "#", 7) > print self.data > match = re.search("\d\d\d\d\d\d\d\d\d\d\d+", self.data) > if match is not None: > rc = match.group() > else: > rc = "missing" > return rc > > One location doesn't return it's dial string. In Idle, the output is: > > >>> print data > sh dialer | i Default > 17002111000 1 0 8w2d successful > Default > 17002111002 0 0 never - > Default > 17002111001 1 0 never - > Default > J07MR3640# > > The "print data" statement yields: > > term len 0 > J07MR3640# > > I've run a packet capture and I see the data coming back every time. I > don't understand why it works fine for 999 out of 1,000 locations. Any > suggestions? Sorry but I find the above confusing. The best guess I can make is that the 5 lines following >>> print data is the packet capture, and the 2 lines following "yields:" is the subset of the packet capture that comes into self.data. Is this true? If so are you asking why self.tn.read_until(self.host.upper() + "#", 7) does not get all the packet?
-- Bob Gailer 510-978-4454 _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor