@@ -31,26 +31,26 @@ def [](name)
31
31
super
32
32
end
33
33
34
- # Create an instance of the supplied module by its name
34
+ # Create an instance of the supplied module by its reference name
35
35
#
36
- # @param name [String] The module reference name.
36
+ # @param reference_name [String] The module reference name.
37
37
# @return [Msf::Module,nil] Instance of the named module or nil if it
38
38
# could not be created.
39
- def create ( name )
40
- klass = fetch ( name , nil )
39
+ def create ( reference_name )
40
+ klass = fetch ( reference_name , nil )
41
41
instance = nil
42
42
43
43
# If there is no module associated with this class, then try to demand
44
44
# load it.
45
45
if klass . nil? or klass == Msf ::SymbolicModule
46
- framework . modules . load_cached_module ( module_type , name )
46
+ framework . modules . load_cached_module ( module_type , reference_name )
47
47
48
48
recalculate
49
49
50
- klass = fetch ( name , nil )
50
+ klass = fetch ( reference_name , nil )
51
51
end
52
52
53
- # If the klass is valid for this name , try to create it
53
+ # If the klass is valid for this reference_name , try to create it
54
54
unless klass . nil? or klass == Msf ::SymbolicModule
55
55
instance = klass . new
56
56
end
@@ -67,7 +67,7 @@ def create(name)
67
67
# "can't add a new key into hash during iteration"
68
68
#
69
69
# @yield [module_reference_name, module]
70
- # @yieldparam [String] module_reference_name the name of the module.
70
+ # @yieldparam [String] module_reference_name the reference_name of the module.
71
71
# @yieldparam [Class] module The module class: a subclass of Msf::Module.
72
72
# @return [void]
73
73
def each ( &block )
@@ -167,43 +167,47 @@ def on_module_reload(mod)
167
167
def recalculate
168
168
end
169
169
170
- # Checks to see if the supplied module name is valid.
170
+ # Checks to see if the supplied module reference name is valid.
171
171
#
172
+ # @param reference_name [String] The module reference name.
172
173
# @return [true] if the module can be {#create created} and cached.
173
174
# @return [false] otherwise
174
- def valid? ( name )
175
- create ( name )
176
- ( self [ name ] ) ? true : false
175
+ def valid? ( reference_name )
176
+ create ( reference_name )
177
+ ( self [ reference_name ] ) ? true : false
177
178
end
178
179
179
- # Adds a module with a the supplied name .
180
+ # Adds a module with a the supplied reference_name .
180
181
#
181
- # @param [Class] mod The module class: a subclass of Msf::Module.
182
- # @param [String] name The module reference name
183
- # @param [Hash{String => Object}] modinfo optional module information
184
- # @return [Class] The mod parameter modified to have {Msf::Module#framework}, {Msf::Module#refname},
185
- # {Msf::Module#file_path}, and {Msf::Module#orig_cls} set.
186
- def add_module ( mod , name , modinfo = nil )
187
- # Set the module's name so that it can be referenced when
182
+ # @param [Class<Msf::Module>] klass The module class.
183
+ # @param [String] reference_name The module reference name.
184
+ # @param [Hash{String => Object}] info optional module information.
185
+ # @option info [Array<String>] 'files' List of paths to files that defined
186
+ # +klass+.
187
+ # @return [Class] The klass parameter modified to have
188
+ # {Msf::Module#framework}, {Msf::Module#refname}, {Msf::Module#file_path},
189
+ # and {Msf::Module#orig_cls} set.
190
+ def add_module ( klass , reference_name , info = { } )
191
+ # Set the module's reference_name so that it can be referenced when
188
192
# instances are created.
189
- mod . framework = framework
190
- mod . refname = name
191
- mod . file_path = ( ( modinfo and modinfo [ 'files' ] ) ? modinfo [ 'files' ] [ 0 ] : nil )
192
- mod . orig_cls = mod
193
+ klass . framework = framework
194
+ klass . refname = reference_name
195
+ klass . file_path = ( ( info and info [ 'files' ] ) ? info [ 'files' ] [ 0 ] : nil )
196
+ klass . orig_cls = klass
193
197
194
198
# don't want to trigger a create, so use fetch
195
- cached_module = self . fetch ( name , nil )
199
+ cached_module = self . fetch ( reference_name , nil )
196
200
197
201
if ( cached_module and cached_module != Msf ::SymbolicModule )
198
- ambiguous_module_reference_name_set . add ( name )
202
+ ambiguous_module_reference_name_set . add ( reference_name )
199
203
200
204
# TODO this isn't terribly helpful since the refnames will always match, that's why they are ambiguous.
201
- wlog ( "The module #{ mod . refname } is ambiguous with #{ self [ name ] . refname } ." )
205
+ wlog ( "The module #{ klass . refname } is ambiguous with #{ self [ reference_name ] . refname } ." )
202
206
end
203
207
204
- self [ name ] = mod
208
+ self [ reference_name ] = klass
205
209
206
- mod
210
+ klass
207
211
end
208
212
209
213
protected
0 commit comments