Net::Telnet

M

Marcin Tyman

I've got an issue with following code:

<code>
t.cmd('String' => "iptables -t mangle -L", 'Match' => /\#/, 'Timeout' =>
15 )
{ |c|

print c
sleep 1 #THIS IS AN ISSUE I CAN'T UNDERSTAND

if c =~ patternDup #patternDup is RegExp object
rtrnMsg = "DUPLICATED"
iptblsLog.info(c.to_s)
elsif c =~ patternRules #patternRules is RegExp object
rtrnMsg = "RULES"
iptblsLog.info(c.to_s)
else
rtrnMsg = "NO RULES"
iptblsLog.info(c.to_s)
end #if

}
</code>

Without sleep sometimes comparison c with particular RegExp doesn't
work. It isn't due to that regular expression doesn't match string
compared with.
After adding the sleep everything works well.

Please, help me to understand it. Why adding sleep resolved this issue.
Thanks in advance.
 
A

Alex Young

Marcin said:
I've got an issue with following code:

<code>
t.cmd('String' => "iptables -t mangle -L", 'Match' => /\#/, 'Timeout' =>
15 )
{ |c|

print c
sleep 1 #THIS IS AN ISSUE I CAN'T UNDERSTAND

if c =~ patternDup #patternDup is RegExp object
rtrnMsg = "DUPLICATED"
iptblsLog.info(c.to_s)
elsif c =~ patternRules #patternRules is RegExp object
rtrnMsg = "RULES"
iptblsLog.info(c.to_s)
else
rtrnMsg = "NO RULES"
iptblsLog.info(c.to_s)
end #if

}
</code>

Without sleep sometimes comparison c with particular RegExp doesn't
work. It isn't due to that regular expression doesn't match string
compared with.
After adding the sleep everything works well.
It sounds to me like either c or the regexp are modified by a different
thread, but without knowing where they come from (or, indeed, what t is
and what cmd is supposed to yield), it's difficult to guess any more...
 
M

Marcin Tyman

Alex said:
It sounds to me like either c or the regexp are modified by a different
thread, but without knowing where they come from (or, indeed, what t is
and what cmd is supposed to yield), it's difficult to guess any more...

It's impossible that it is due to modification of c variable in other
thread. This is local variable. So the regexp's.
t is a Net::Telnet object. And I don't know what cmd is supposed to
yield. Need to look into telnet.rb(???)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Members online

No members online now.

Forum statistics

Threads
474,262
Messages
2,571,310
Members
47,978
Latest member
SheriBolli

Latest Threads

Top