lib/packetgen/packet.rb in packetgen-2.3.0 vs lib/packetgen/packet.rb in packetgen-2.4.0
- old
+ new
@@ -146,9 +146,27 @@
header = klass.new(options)
add_header header
self
end
+ # Insert a header in packet
+ # @param [Header] prev header after which insert new one
+ # @param [String] protocol protocol to insert
+ # @param [Hash] options protocol specific options
+ # @return [self]
+ # @raise [ArgumentError] unknown protocol
+ def insert(prev, protocol, options={})
+ klass = check_protocol(protocol)
+
+ nxt = prev.body
+ header = klass.new(options)
+ add_header header, previous_header: prev
+ idx = @headers.index(prev) + 1
+ @headers[idx, 0] = header
+ header[:body] = nxt
+ self
+ end
+
# Check if a protocol header is embedded in packet
# @return [Boolean]
# @raise [ArgumentError] unknown protocol
def is?(protocol)
klass = check_protocol protocol