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