I'm developing a tool who sniff the networktraffic on the nic. I would
like to call the method asynchron from a other pc. I realize this
problem with xmlrpc4r. To sniff the networkpackets, I use the pcaplet.
Now, I want to stop the sniffing method also at the remote side. The
idea is to set a global flag $state to boolean false. But it doesn't run
correctly. You can see below the code from the remote class.
Thanks for helping...
______________Sniffing class____________________
class Sniffer
$state = true
def start_sniffing @pcaplet = Pcaplet.new("-i eth0")
# ...and so on....
for pkt in @pcaplet
puts pkt.time
break if $state == false # stop sniffing
end
end
I'm developing a tool who sniff the networktraffic on the nic. I would
like to call the method asynchron from a other pc. I realize this
problem with xmlrpc4r. To sniff the networkpackets, I use the pcaplet.
Now, I want to stop the sniffing method also at the remote side. The
idea is to set a global flag $state to boolean false. But it doesn't run
correctly. You can see below the code from the remote class.
Thanks for helping...
______________Sniffing class____________________
class Sniffer
$state = true
def start_sniffing @pcaplet = Pcaplet.new("-i eth0")
# ...and so on....
for pkt in @pcaplet
puts pkt.time
break if $state == false # stop sniffing
end
end
def stop_sniffing
$state = false
end
end
_________________________________________________
Not sure why you want a global for this. Wouldn't it be better to set an @state instance variable in Sniffer's initialize method, and refer to that in start_sniffing and stop_sniffing?
Definitively. And also: KR, where do you do the sniffing? Is it in
Pcaplet's constructor? In that case the flag would be useless.
Cheers
robert
···
2007/11/17, Alex Young <alex@blackkettle.org>:
K. R. wrote:
> Hi @all
>
> I'm developing a tool who sniff the networktraffic on the nic. I would
> like to call the method asynchron from a other pc. I realize this
> problem with xmlrpc4r. To sniff the networkpackets, I use the pcaplet.
>
> Now, I want to stop the sniffing method also at the remote side. The
> idea is to set a global flag $state to boolean false. But it doesn't run
> correctly. You can see below the code from the remote class.
>
> Thanks for helping...
>
> ______________Sniffing class____________________
>
> class Sniffer
> $state = true
>
> def start_sniffing
> @pcaplet = Pcaplet.new("-i eth0")
> # ...and so on....
>
> for pkt in @pcaplet
> puts pkt.time
> break if $state == false # stop sniffing
> end
> end
>
> def stop_sniffing
> $state = false
> end
> end
> _________________________________________________
Not sure why you want a global for this. Wouldn't it be better to set
an @state instance variable in Sniffer's initialize method, and refer to
that in start_sniffing and stop_sniffing?
--
use.inject do |as, often| as.you_can - without end
Definitively. And also: KR, where do you do the sniffing? Is it in
Pcaplet's constructor? In that case the flag would be useless.
No, I don't sniff in the constructor. But with xmlrpc4r, I have a big
problem. When I want to start the Serverapplication (server =
XMLRPC::Server.new(ip, "/RPC2", 20000) and call the serve method, my
application needs 20 seconds to start correctly. After the starting
phase, all response of connection-requests have a delay to 20 seconds.
Ugly. Did you find out where the time is spent? Is using DRb an option?
Cheers
robert
···
2007/11/19, K. R. <mcse@palstek.ch>:
> Definitively. And also: KR, where do you do the sniffing? Is it in
> Pcaplet's constructor? In that case the flag would be useless.
No, I don't sniff in the constructor. But with xmlrpc4r, I have a big
problem. When I want to start the Serverapplication (server =
XMLRPC::Server.new(ip, "/RPC2", 20000) and call the serve method, my
application needs 20 seconds to start correctly. After the starting
phase, all response of connection-requests have a delay to 20 seconds.
--
use.inject do |as, often| as.you_can - without end
Ugly. Did you find out where the time is spent? Is using DRb an
option?
yeah the problem is in the serve method from xmlrpc4r. It takes 20
seconds to establish a tcpserver. Now, I'm using the DRb option. But it
seems like the same problem.
Sounds as if you either have a networking issue (slow DNS loopups?) or
you have a fundamental design issue (i.e. starting a server too
often).
My 0.02EUR...
robert
···
2007/11/19, K. R. <mcse@palstek.ch>:
> Ugly. Did you find out where the time is spent? Is using DRb an
> option?
yeah the problem is in the serve method from xmlrpc4r. It takes 20
seconds to establish a tcpserver. Now, I'm using the DRb option. But it
seems like the same problem.
--
use.inject do |as, often| as.you_can - without end