@@ -13,6 +13,8 @@ def self.generate(module_path)
13
13
capture_server ( mod )
14
14
when 'dos'
15
15
dos ( mod )
16
+ when 'scanner.single'
17
+ single_scanner ( mod )
16
18
when 'scanner.multi'
17
19
multi_scanner ( mod )
18
20
else
@@ -30,13 +32,19 @@ def self.common_metadata(meta = {})
30
32
render_template ( 'common_metadata.erb' , meta )
31
33
end
32
34
33
- def self . mod_meta_common ( mod , meta = { } )
35
+ def self . mod_meta_common ( mod , meta = { } , drop_rhost : true )
34
36
meta [ :path ] = mod . path . dump
35
37
meta [ :name ] = mod . meta [ 'name' ] . dump
36
38
meta [ :description ] = mod . meta [ 'description' ] . dump
37
39
meta [ :authors ] = mod . meta [ 'authors' ] . map ( &:dump ) . join ( ",\n " )
38
40
39
- meta [ :options ] = mod . meta [ 'options' ] . map do |n , o |
41
+ options = if drop_rhost
42
+ mod . meta [ 'options' ] . reject { |n , o | n == 'rhost' }
43
+ else
44
+ mod . meta [ 'options' ]
45
+ end
46
+
47
+ meta [ :options ] = options . map do |n , o |
40
48
"Opt#{ o [ 'type' ] . camelize } .new(#{ n . dump } ,
41
49
[#{ o [ 'required' ] } , #{ o [ 'description' ] . dump } , #{ o [ 'default' ] . inspect } ])"
42
50
end . join ( ",\n " )
@@ -71,6 +79,16 @@ def self.capture_server(mod)
71
79
render_template ( 'capture_server.erb' , meta )
72
80
end
73
81
82
+ def self . single_scanner ( mod )
83
+ meta = mod_meta_common ( mod , drop_rhost : true )
84
+ meta [ :date ] = mod . meta [ 'date' ] . dump
85
+ meta [ :references ] = mod . meta [ 'references' ] . map do |r |
86
+ "[#{ r [ 'type' ] . upcase . dump } , #{ r [ 'ref' ] . dump } ]"
87
+ end . join ( ",\n " )
88
+
89
+ render_template ( 'single_scanner.erb' , meta )
90
+ end
91
+
74
92
def self . multi_scanner ( mod )
75
93
meta = mod_meta_common ( mod )
76
94
meta [ :date ] = mod . meta [ 'date' ] . dump
0 commit comments