lib/framework.rb in arachni-0.2.2.1 vs lib/framework.rb in arachni-0.2.2.2
- old
+ new
@@ -55,21 +55,22 @@
# user options.
#
# @author: Tasos "Zapotek" Laskos
# <tasos.laskos@gmail.com>
# <zapotek@segfault.gr>
-# @version: 0.2.1
+# @version: 0.2.2
#
class Framework
#
# include the output interface but try to use it as little as possible
#
# the UI classes should take care of communicating with the user
#
include Arachni::UI::Output
include Arachni::Module::Utilities
+ include Arachni::Mixins::Observable
# the version of *this* class
REVISION = '0.2.1'
#
@@ -319,10 +320,12 @@
name = k
break
end
}
+ return if @plugin_store[name]
+
@plugin_store[name] = {
:results => obj
}.merge( plugin.class.info )
end
@@ -451,11 +454,11 @@
REVISION
end
private
- def clean_up!
+ def clean_up!( skip_audit_queue = false )
@opts.finish_datetime = Time.now
@opts.delta_time = @opts.finish_datetime - @opts.start_datetime
# make sure this is disabled or it'll break report output
@@only_positives = false
@@ -464,11 +467,11 @@
# wait for the plugins to finish
@plugins.block!
# a plug-in may have updated the page queue, rock it!
- audit_queue
+ audit_queue if !skip_audit_queue
# refresh the audit store
audit_store( true )
return true
@@ -528,9 +531,11 @@
#
# @param [Page] page
#
def run_mods( page )
return if !page
+
+ call_on_run_mods( page.deep_clone )
@current_url = page.url.to_s
@modules.each_pair {
|name, mod|