lib/rex/parser/ip360_xml.rb in librex-0.0.68 vs lib/rex/parser/ip360_xml.rb in librex-0.0.70
- old
+ new
@@ -6,93 +6,93 @@
module Parser
class IP360XMLStreamParser
- attr_accessor :on_found_host
+ attr_accessor :on_found_host
- def initialize(&block)
- reset_state
- on_found_host = block if block
- end
+ def initialize(&block)
+ reset_state
+ on_found_host = block if block
+ end
- def reset_state
- @host = {'hname' => nil, 'hid' => nil, 'addr' => nil, 'mac' => nil, 'os' => nil,
- 'vulns' => ['vuln' => {'vulnid' => nil, 'port' => nil, 'proto' => nil} ],
- 'apps' => ['app' => {'appid' => nil, 'svcid' => nil, 'port' => nil, 'proto' => nil } ],
- }
- @state = :generic_state
- end
+ def reset_state
+ @host = {'hname' => nil, 'hid' => nil, 'addr' => nil, 'mac' => nil, 'os' => nil,
+ 'vulns' => ['vuln' => {'vulnid' => nil, 'port' => nil, 'proto' => nil} ],
+ 'apps' => ['app' => {'appid' => nil, 'svcid' => nil, 'port' => nil, 'proto' => nil } ],
+ }
+ @state = :generic_state
+ end
- def tag_start(name, attributes)
- case name
- when "host"
- @host['hid'] = attributes['persistent_id']
- when "ip"
- @state = :is_ip
- when "dnsName"
- @state = :is_fqdn
- when "macAddress"
- @state = :is_mac
- when "os"
- @host['os'] = attributes['id']
- when "vulnerability"
- @x = Hash.new
- @x['vulnid'] = attributes['id']
- when "port"
- @state = :is_port
- when "protocol"
- @state = :is_proto
- when "application"
- @y = Hash.new
- @y['appid'] = attributes['application_id']
- @y['svcid'] = attributes['svcid']
- @y['port'] = attributes['port']
- @y['proto'] = attributes['protocol']
- @host['apps'].push @y
- end
- end
+ def tag_start(name, attributes)
+ case name
+ when "host"
+ @host['hid'] = attributes['persistent_id']
+ when "ip"
+ @state = :is_ip
+ when "dnsName"
+ @state = :is_fqdn
+ when "macAddress"
+ @state = :is_mac
+ when "os"
+ @host['os'] = attributes['id']
+ when "vulnerability"
+ @x = Hash.new
+ @x['vulnid'] = attributes['id']
+ when "port"
+ @state = :is_port
+ when "protocol"
+ @state = :is_proto
+ when "application"
+ @y = Hash.new
+ @y['appid'] = attributes['application_id']
+ @y['svcid'] = attributes['svcid']
+ @y['port'] = attributes['port']
+ @y['proto'] = attributes['protocol']
+ @host['apps'].push @y
+ end
+ end
- def text(str)
- case @state
- when :is_fqdn
- @host['hname'] = str
- when :is_ip
- @host['addr'] = str
- when :is_mac
- @host['mac'] = str
- when :is_port
- @x['port'] = str
- when :is_proto
- @x['proto'] = str
- end
- end
+ def text(str)
+ case @state
+ when :is_fqdn
+ @host['hname'] = str
+ when :is_ip
+ @host['addr'] = str
+ when :is_mac
+ @host['mac'] = str
+ when :is_port
+ @x['port'] = str
+ when :is_proto
+ @x['proto'] = str
+ end
+ end
- def tag_end(name)
- case name
- when "host"
- on_found_host.call(@host) if on_found_host
- reset_state
- when "vulnerability"
- @host['vulns'].push @x
- end
- @state = :generic_state
- end
+ def tag_end(name)
+ case name
+ when "host"
+ on_found_host.call(@host) if on_found_host
+ reset_state
+ when "vulnerability"
+ @host['vulns'].push @x
+ end
+ @state = :generic_state
+ end
- def cdata(d)
- #do nothing
- end
+ def cdata(d)
+ #do nothing
+ end
- # We don't need these methods, but they're necessary to keep REXML happy
- #
- def xmldecl(version, encoding, standalone) # :nodoc:
- end
- def comment(str) # :nodoc:
- end
- def instruction(name, instruction) # :nodoc:
- end
- def attlist # :nodoc:
- end
+ # We don't need these methods, but they're necessary to keep REXML happy
+ #
+ def xmldecl(version, encoding, standalone) # :nodoc:
+ end
+ def comment(str) # :nodoc:
+ end
+ def instruction(name, instruction) # :nodoc:
+ end
+ def attlist # :nodoc:
+ end
end
end
end