The Config class holds various bits of useful default information for packet creation. If initialized without arguments, @iface will be set to ENV or Pcap.lookupdev (or lo), and the @pcapfile will be set to “/tmp/out.pcap” # (yes, it’s Linux-biased, sorry, fixing this is a TODO.)
Any number of instance variables can be passed in to the intialize function (as a hash), though only the expected network-related variables will be readable and writeable directly.
PacketFu::Config.new(:ip_saddr => "1.2.3.4").ip_saddr #=> "1.2.3.4" PacketFu::Config.new(:foo=>"bar").foo #=> NomethodError: undefined method `foo'...
The config() function, however, does provide access to custom variables:
PacketFu::Config.new(:foo=>"bar").config[:foo] #=> "bar" obj = PacketFu::Config.new(:foo=>"bar") obj.config(:baz => "bat") obj.config #=> {:iface=>"eth0", :baz=>"bat", :pcapfile=>"/tmp/out.pcap", :foo=>"bar"}
Returns all instance variables as a hash (including custom variables set at initialization).
# File lib/packetfu/config.rb, line 43 def config(arg=nil) if arg arg.each_pair {|k,v| self.instance_variable_set(("@" + k.to_s).intern, v)} else config_hash = {} self.instance_variables.each do |v| key = v.to_s.gsub(/^@/,"").to_sym config_hash[key] = self.instance_variable_get(v) end config_hash end end
Generated with the Darkfish Rdoc Generator 2.