class RubySMB::SMB1::Packet::Trans::DataBlock
Extends the {RubySMB::SMB1::DataBlock} to include padding methods that all Trans
DataBlocks will need to handle proper byte alignment.
Attributes
enable_padding[RW]
Controls whether the padding fields will be used @!attribute [rw] enable_padding
@return [Boolean]
Public Instance Methods
initialize_instance()
click to toggle source
Calls superclass method
# File lib/ruby_smb/smb1/packet/trans/data_block.rb, line 14 def initialize_instance super @enable_padding = true end
Private Instance Methods
pad1_length()
click to toggle source
Determines the correct length for the padding in front of trans_parameters. It should always force a 4-byte alignment.
# File lib/ruby_smb/smb1/packet/trans/data_block.rb, line 23 def pad1_length if enable_padding if self.respond_to?(:name) offset = (name.abs_offset + name.to_binary_s.length) % 4 else offset = (byte_count.abs_offset + 2) % 4 end (4 - offset) % 4 else 0 end end
pad2_length()
click to toggle source
Determines the correct length for the padding in front of trans_data. It should always force a 4-byte alignment.
# File lib/ruby_smb/smb1/packet/trans/data_block.rb, line 38 def pad2_length if enable_padding offset = (trans_parameters.abs_offset + trans_parameters.length) % 4 (4 - offset) % 4 else 0 end end
pad_name_length()
click to toggle source
Determines the correct length for the padding in front of name. It should always force a 2-byte alignment.
# File lib/ruby_smb/smb1/packet/trans/data_block.rb, line 49 def pad_name_length if enable_padding offset = (byte_count.abs_offset + 2) % 2 (2 - offset) % 2 else 0 end end