class PacketFu::TcpOption::SACK

Selective Acknowledgement option.

www.networksorcery.com/enp/protocol/tcp/option004.htm

Note that SACK always takes its optlen from the size of the string.

Public Class Methods

new(args={}) click to toggle source
Calls superclass method PacketFu::TcpOption.new
# File lib/packetfu/protos/tcp/option.rb, line 209
def initialize(args={})
        super(
                args.merge(:kind => 5,
                                                         :optlen => ((args[:value] || "").size + 2)
                                                        )
        )
end

Public Instance Methods

decode() click to toggle source
# File lib/packetfu/protos/tcp/option.rb, line 224
def decode
                "SACK:#{self[:value]}"
end
encode(str) click to toggle source
# File lib/packetfu/protos/tcp/option.rb, line 228
def encode(str)
        temp_obj = self.class.new(:value => str)
        self[:value] = temp_obj.value
        self[:optlen] = temp_obj.optlen.value
        self
end
optlen=(i) click to toggle source
# File lib/packetfu/protos/tcp/option.rb, line 217
def optlen=(i); typecast i; end
value=(i) click to toggle source
# File lib/packetfu/protos/tcp/option.rb, line 219
def value=(i)
        self[:optlen] = Int8.new(i.to_s.size + 2)
        self[:value] = StructFu::String.new(i)
end