class Mu::Pcap::SCTP::Parameter
Attributes
size[RW]
type[RW]
Public Class Methods
dummy_parameter(type, size, bytes)
click to toggle source
# File lib/woolen_common/pcap/mu/pcap/sctp/parameter.rb, line 91 def self.dummy_parameter type, size, bytes # Create new dummy parameter parameter = Parameter.new parameter.type = type parameter.size = size # Save the payload parameter.payload = bytes[4..parameter.padded_size - 1] parameter.payload_raw = parameter.payload # Return the result return parameter end
from_bytes(bytes)
click to toggle source
# File lib/woolen_common/pcap/mu/pcap/sctp/parameter.rb, line 19 def self.from_bytes bytes # Basic validation Pcap.assert(bytes.length >= 4, "Truncated parameter header: 4 > #{bytes.length}") # Read chunk header type, size = bytes.unpack('nn') # Validate chunk size Pcap.assert(bytes.length >= size, "Truncated parameter: #{size} set, #{bytes.length} available") # Create chunk based on type case type when PARAM_IPV4 parameter = IpAddress.from_bytes(type, size, bytes[4..-1]) when PARAM_IPV6 parameter = IpAddress.from_bytes(type, size, bytes[4..-1]) when PARAM_STATE_COOKIE parameter = dummy_parameter(type, size, bytes) when PARAM_COOKIE_PRESERVATIVE parameter = dummy_parameter(type, size, bytes) when PARAM_HOST_NAME_ADDR parameter = dummy_parameter(type, size, bytes) when PARAM_SUPPORTED_ADDR_TYPES parameter = dummy_parameter(type, size, bytes) when PARAM_ECN parameter = dummy_parameter(type, size, bytes) when PARAM_RANDOM parameter = dummy_parameter(type, size, bytes) when PARAM_CHUNK_LIST parameter = dummy_parameter(type, size, bytes) when PARAM_HMAC_ALGORITHM parameter = dummy_parameter(type, size, bytes) when PARAM_PADDING parameter = dummy_parameter(type, size, bytes) when PARAM_SUPPORTED_EXTENSIONS parameter = dummy_parameter(type, size, bytes) when PARAM_FORWARD_TSN parameter = dummy_parameter(type, size, bytes) when PARAM_SET_PRIMARY_ADDR parameter = dummy_parameter(type, size, bytes) when PARAM_ADAPTATION_LAYER_INDICATION parameter = dummy_parameter(type, size, bytes) else parameter = dummy_parameter(type, size, bytes) end # Return the result return parameter end
new()
click to toggle source
Calls superclass method
Mu::Pcap::Packet::new
# File lib/woolen_common/pcap/mu/pcap/sctp/parameter.rb, line 12 def initialize super @type = 0 @size = 0 end
Public Instance Methods
padded_size()
click to toggle source
# File lib/woolen_common/pcap/mu/pcap/sctp/parameter.rb, line 79 def padded_size if 0 == @size % 4 return @size else return (@size + 4 - (@size % 4)) end end
to_s()
click to toggle source
# File lib/woolen_common/pcap/mu/pcap/sctp/parameter.rb, line 87 def to_s return "parameter(%d, %d)" % [@type, @size] end
write(io, ip)
click to toggle source
# File lib/woolen_common/pcap/mu/pcap/sctp/parameter.rb, line 71 def write io, ip header = [@type, @size].pack('nn') # Write Parameter header followed by the payload io.write(header) io.write(@payload_raw) end