|
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
>
|