Commit 55c6cc6

mo khan <mo@mokhan.ca>
2015-02-07 00:04:27
extract method to yield packets back from each capture.
1 parent 0d938af
Changed files (2)
lib/tasks/agent.rake
@@ -15,8 +15,10 @@ namespace :agent do
   end
 
   desc "scan network traffic"
-  task nfm: :environment do
-    agent = FakeAgent.new(Agent.first.id, ENDPOINT)
-    agent.sniff('en1')
+  task :nfm do
+    id = Agent.first.id
+    agent = FakeAgent.new(id, ENDPOINT)
+
+    agent.packet_capture('eth0')
   end
 end
lib/fake_agent.rb
@@ -45,7 +45,15 @@ class FakeAgent
     capture.stream.each do |p|
       packet = Packet.parse(p)
       if packet.is_ip?
-        next if packet.ip_saddr == Utils.ifconfig(interface)[:ip_saddr]
+        yield packet if block_given?
+      end
+    end
+  end
+
+  def packet_capture(interface)
+    sniff(interface) do |packet|
+      if packet.ip_saddr == Utils.ifconfig(interface)[:ip_saddr]
+      else
         packet_info = [packet.ip_saddr, packet.ip_daddr, packet.size, packet.proto.last]
         puts "%-15s -> %-15s %-4d %s" % packet_info
       end