From: mike n. <xmi...@gm...> - 2017-03-26 03:03:41
|
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 > |