class PacketFu::TcpOption::TS
Timestamp
option
Public Class Methods
new(args={})
click to toggle source
Calls superclass method
PacketFu::TcpOption::new
# File lib/packetfu/protos/tcp/option.rb, line 287 def initialize(args={}) super( args.merge(:kind => 8, :optlen => 10 ) ) self[:value] = StructFu::String.new.read(args[:value] || "\x00" * 8) end
Public Instance Methods
decode()
click to toggle source
TS
options with lengths other than 10 are malformed.
# File lib/packetfu/protos/tcp/option.rb, line 297 def decode if self[:optlen].to_i == 10 val1,val2 = self[:value].unpack("NN") "TS:#{val1};#{val2}" else "TS-bad:#{self[:value]}" end end
encode(str)
click to toggle source
TS
options are in the format of “TS:[timestamp value];[timestamp secret]” Both should be written as decimal numbers.
# File lib/packetfu/protos/tcp/option.rb, line 308 def encode(str) if str =~ /^([0-9]+);([0-9]+)$/ tsval,tsecr = str.split(";").map {|x| x.to_i} if tsval <= 0xffffffff && tsecr <= 0xffffffff self[:value] = StructFu::String.new([tsval,tsecr].pack("NN")) else self[:value] = StructFu::String.new(str) end else self[:value] = StructFu::String.new(str) end end