lib/packetgen/header.rb in packetgen-2.8.7 vs lib/packetgen/header.rb in packetgen-3.0.0

- old
+ new

@@ -5,13 +5,16 @@ # This program is published under MIT license. # frozen_string_literal: true module PacketGen - # Namespace for protocol header classes + # Namespace for protocol header classes. + # + # This namespace handles all buitlin headers, such as {IP} or {TCP}. + # # == Add a foreign header class - # Since v1.1.0, PacketGen permits adding you own header classes. + # PacketGen permits adding you own header classes. # First, define the new header class. By example: # module MyModule # class MyHeader < PacketGen::Header::Base # define_field :field1, PacketGen::Types::Int32 # define_field :field2, PacketGen::Types::Int32 @@ -38,33 +41,34 @@ class << self # List all available headers. # @return [Array<Class>] def all - return @header_classes if @header_classes + return @header_classes if defined?(@header_classes) && @header_classes + @header_classes = @added_header_classes.values end alias list all # Add a foreign header class to known header classes. This is # needed by {Packet.gen} and {Packet#add}. # @param [Class] klass a header class # @return [void] # @since 1.1.0 def add_class(klass) - protocol_name = klass.new.protocol_name + protocol_name = klass.protocol_name @added_header_classes[protocol_name] = klass @header_classes = nil end # Remove a foreign header (previously added by {.add_header_class} # from known header classes. # @param [Class] klass # @return [void] # @since 1.1.0 def remove_class(klass) - protocol_name = klass.new.protocol_name + protocol_name = klass.protocol_name @added_header_classes.delete protocol_name @header_classes = nil end # Get header class from its name @@ -80,11 +84,10 @@ end end end end -require_relative 'header/crypto' require_relative 'header/base' require_relative 'header/eth' require_relative 'header/dot11' require_relative 'header/llc' require_relative 'header/dot1q' @@ -96,12 +99,10 @@ require_relative 'header/icmpv6' require_relative 'header/gre' require_relative 'header/udp' require_relative 'header/tcp' require_relative 'header/eap' -require_relative 'header/esp' -require_relative 'header/ike' require_relative 'header/dns' require_relative 'header/asn1_base' require_relative 'header/snmp' require_relative 'header/bootp' require_relative 'header/dhcp' @@ -112,7 +113,6 @@ require_relative 'header/igmpv3' require_relative 'header/mld' require_relative 'header/mldv2' require_relative 'header/ospfv2' require_relative 'header/ospfv3' -require_relative 'header/netbios' require_relative 'header/mdns'