Module: RubySMB::Dcerpc::Ndr::ArrayClassPlugin

Overview

Arrays

Defined Under Namespace

Modules: ExtendArrayPlugin, ExtendConfPlugin, ExtendVarPlugin

Class Method Summary collapse

Class Method Details

.extended(target) ⇒ Object



179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
# File 'lib/ruby_smb/dcerpc/ndr.rb', line 179

def self.extended(target)
  target.default_parameters(
    :read_until => lambda { index == (@obj.read_until_index - 1) },
    # Set :byte_align to 4 bytes by default, which is the size of the `size
    # information` field (:max_count or :offset/:actual_count). If the
    # elements set with :type are greater, this parameter will be
    # updated later in NdrArrayArgProcessor::sanitize_parameters!
    :byte_align => 4
  )
  target.arg_processor :ndr_array
  class_name = target.to_s.split('::').last
  if class_name.include?('NdrVar') || class_name.include?('NdrConfVar')
    target.include ExtendVarPlugin
  end
  if class_name.include?('NdrConf')
    target.include ExtendConfPlugin
    target.extend ConfClassPlugin
  end
  target.include ExtendArrayPlugin
end