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