metasploit-framework/lib/anemone/tentacle.rb

40 lines
702 B
Ruby

require 'anemone/http'
module Anemone
class Tentacle
#
# Create a new Tentacle
#
def initialize(link_queue, page_queue, opts = {})
@link_queue = link_queue
@page_queue = page_queue
@http = Anemone::HTTP.new(opts)
@opts = opts
end
#
# Gets links from @link_queue, and returns the fetched
# Page objects into @page_queue
#
def run
loop do
link, referer, depth = @link_queue.deq
break if link == :END
@http.fetch_pages(link, referer, depth).each { |page| @page_queue << page }
delay
end
end
private
def delay
sleep @opts[:delay] if @opts[:delay] > 0
end
end
end