class Object
Public Instance Methods
clean_store()
click to toggle source
# File lib/evil-proxy/store.rb, line 27 def clean_store @store = [] end
dump_store(filename = "store.yml")
click to toggle source
# File lib/evil-proxy/store.rb, line 31 def dump_store filename = "store.yml" previous_store = YAML.load(File.read(filename)) || [] rescue [] File.open filename, "w" do |file| file.puts YAML.dump(previous_store + store_as_params) end clean_store end
join()
click to toggle source
# File lib/evil-proxy/async.rb, line 16 def join @thread.join end
match_store_filter(req, res)
click to toggle source
# File lib/evil-proxy/store.rb, line 22 def match_store_filter req, res return true unless @store_filter instance_exec req, res, &@store_filter end
selenium_proxy(*protocols)
click to toggle source
# File lib/evil-proxy/selenium.rb, line 4 def selenium_proxy *protocols require 'selenium-webdriver' unless defined?(Selenium) protocols.push :http if protocols.empty? unless (protocols - [:http, :ssl, :ftp]).empty? raise "Invalid protocol specified. Must be one of: :http, :ssl, or :ftp." end host = @config[:BindAddress] || "127.0.0.1" port = @config[:Port] proxy_mapping = Hash.new protocols.each do |proto| proxy_mapping[proto] = "#{host}:#{port}" end Selenium::WebDriver::Proxy.new(proxy_mapping) end
shutdown()
click to toggle source
# File lib/evil-proxy/async.rb, line 12 def shutdown @thread.exit end
start()
click to toggle source
# File lib/evil-proxy/async.rb, line 6 def start @thread = Thread.new do self.original_start end end
store_as_params()
click to toggle source
# File lib/evil-proxy/store.rb, line 39 def store_as_params @store.map do |req, res| Hash.new.tap do |params| params["request"] = Hash.new.tap do |request| request["method"] = req.request_method request["url"] = req.unparsed_uri request["headers"] = Hash.new.tap do |headers| req.header.each do |key, value| headers[key] = value.join(",") end end request["body"] = req.body if req.body request["time"] = req.request_time end params["response"] = Hash.new.tap do |response| response["headers"] = res.header response["body"] = res.body if req.body response["status"] = res.status end end end end
store_filter(&block)
click to toggle source
# File lib/evil-proxy/store.rb, line 18 def store_filter &block @store_filter = block end