lib/packetgen/packet.rb in packetgen-2.1.4 vs lib/packetgen/packet.rb in packetgen-2.2.0

- old
+ new

@@ -383,11 +383,13 @@ hdr = hklass.new # #read may return another object (more specific class) hdr = hdr.read(binary_str) # First header is found when: # * for one known header, + # * +#parse?+ is true # * it exists a known binding with a upper header + next unless hdr.parse? search_header(hdr) do first_header = hklass.to_s.gsub(/.*::/, '') end break unless first_header.nil? end @@ -402,19 +404,19 @@ break if last_known_hdr.body.empty? search_header(last_known_hdr) do |nh| str = last_known_hdr.body nheader = nh.new nheader = nheader.read(str) + next unless nheader.parse? add_header nheader, parsing: true - nheader.dissect if nheader.respond_to? :dissect end decode_packet_bottom_up = (@headers.last != last_known_hdr) end end def search_header(hdr) hdr.class.known_headers.each do |nh, bindings| - if bindings.check?(hdr) and hdr.parse? + if bindings.check?(hdr) yield nh break end end end