From: mike n. <xmi...@gm...> - 2017-03-30 13:52:06
|
Great, glad the issue is resolved now. All the best to you Bob! :-) On Mar 30, 2017 1:44 AM, "Bob McGowan" <ram...@gm...> wrote: > Hi Mike, > > Your suggestion did help, but not in the way I thought. > > I did get the prompt I was looking for, but in the process of working > through the code again, I also noticed a PEBKAC error, which when fixed, > the problem went away. > > I had missed getting the right number of arguments to an in-house > module's method, and it was doing exactly what I told it to do. Just > not what I *wanted* it to do. :( > > Thanks for taking the time help. It is appreciated. > > Bob > > > On 03/26/2017 06:29 PM, Bob McGowan wrote: > > 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 > >>> > > ------------------------------------------------------------ > ------------------ > > 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 > |