From: Bob M. <ram...@gm...> - 2017-03-27 01:30:12
|
Not yet. Hopefully first thing in the morning. On 03/25/2017 08:03 PM, mike nicholas wrote: > Hey Bob, no worries, yup, we got this one. > > Curious to know if any of those suggestions helped? Were you able to do > some tests yet? > > On Mar 25, 2017 9:43 PM, "Bob McGowan" <ram...@gm...> wrote: > >> No, I did not. >> >> I guess I misunderstood the email from the moderator regarding my >> attempt to post while not a member of the list. >> >> I thought the first attempt would be rejected, so I joined the list and >> sent the email as a member. >> >> I assume the first one actually was released, hence the double post. My >> apologies for that. >> >> By the way, I did answer your first two responses, and thought I had >> included the list, but that did not show up in my mailbox (I think I >> have things set so it should have). >> >> Please let me know if you get this, either way. >> >> Thanks, >> >> Bob >> >> On 03/25/2017 12:49 PM, mike nicholas wrote: >>> Hello again, Bob, >>> >>> Did you truly intend to re-send the same email from yesterday? Were you >>> able to test those previous suggestions? >>> >>> Thanks kindly! >>> >>> On Mar 25, 2017 8:50 AM, "McGowan Jr, Bob" <bob...@sa...> wrote: >>> >>>> Hello List, >>>> >>>> I'm supporting legacy code that uses Expect, but I'm no expert at this >>>> tool. Nor can I figure out a way to pose the question to the archive >>>> server to search for anything helpful, so here I am, hoping for an >> answer. >>>> >>>> Also, I have not signed up to the list, since I hopefully will have no >>>> future needs in this arena. So please reply all. >>>> >>>> Before the section that does the Expect processing, below, there is a >> sub >>>> defined as follows: >>>> >>>> $passHandler = sub { >>>> my ($ssh, $logging, $password) = @_; >>>> $ssh->log_file(undef); >>>> $ssh->stty(qw(-echo)); >>>> print $ssh "$password\r"; >>>> $ssh->stty(qw(echo)); >>>> $pat = quotemeta($password); >>>> >>>> $ssh->expect(0, '-re', "$pat"); >>>> >>>> $ssh->log_file(\&logMethod) if $logging; >>>> return $ssh->error(); >>>> }; >>>> >>>> There are a number of other patterns to look for besides the two prompts >>>> listed below, each with appropriate logic contained in other 'sub' >>>> definitions. My problem is with the second prompt. Also, I'm not being >>>> pedantic here about format or syntax, this is not intended to run >>>> (currently). >>>> >>>> $expectObj->expect($timeout, >>>> '-re', $prompt1, sub { >>>> $failed = $passHandler($ssh, $logging, >>>> $password); >>>> if ($failed) { >>>> return "something"; >>>> } else { >>>> return exp_continue_timeout(); >>>> } >>>> }, >>>> '-re', $prompt2, sub { >>>> $output = $ssh->exp_before(); >>>> if ($secondPass) { >>>> $failed = $passHandler($ssh, >>>> $logging, $password); >>>> if ($failed) { >>>> return 'something'; >>>> } else { >>>> return >>>> exp_continue_timeout(); >>>> } >>>> } else { >>>> return # an error >>>> } >>>> }, >>>> ... >>>> ); >>>> >>>> I have run the original code with debugging on. >>>> >>>> Processing $prompt1 happens before processing for $prompt2. $prompt1 is >>>> the login prompt passed through by 'ssh'. >>>> >>>> Handling the ssh login step is works fine. >>>> >>>> Processing the second prompt looks for a string like 'Enter secondary >>>> password: ' which is detected correctly and processing goes into the >>>> passHandler, where the password is sent. >>>> >>>> The function then does the 'expect' on the password "pattern", which is >>>> there to be sure we don't get any echo'ed password passed through. >>>> >>>> But in the failing case, there is no password echoed, and the next set >> of >>>> returned strings contains stuff that doesn't match, within the >>>> passHandler. So it times out. >>>> >>>> Upon returning to the enclosing 'expect' call, expect immediately begins >>>> 'waiting' for new data. The strings that were picked up in passHandler >> are >>>> not looked at, and unfortunately they have the next string being >> 'waited' >>>> for, so the whole thing times out and processing fails. >>>> >>>> I'm happy to try to make something that actually runs, if that is >> needed, >>>> but that will take a bit more time and I hope this is enough to point >>>> someone in the right direction. >>>> >>>> Many thanks, >>>> >>>> Bob >>>> >>>> ------------------------------------------------------------ >>>> ------------------ >>>> Check out the vibrant tech community on one of the world's most >>>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot >>>> _______________________________________________ >>>> Expectperl-discuss mailing list >>>> Exp...@li... >>>> https://lists.sourceforge.net/lists/listinfo/expectperl-discuss >>>> >>> >>> >>> >>> ------------------------------------------------------------ >> ------------------ >>> Check out the vibrant tech community on one of the world's most >>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot >>> >>> >>> >>> _______________________________________________ >>> Expectperl-discuss mailing list >>> Exp...@li... >>> https://lists.sourceforge.net/lists/listinfo/expectperl-discuss >>> >> >> ------------------------------------------------------------ >> ------------------ >> Check out the vibrant tech community on one of the world's most >> engaging tech sites, Slashdot.org! http://sdm.link/slashdot >> _______________________________________________ >> Expectperl-discuss mailing list >> Exp...@li... >> https://lists.sourceforge.net/lists/listinfo/expectperl-discuss >> > |