Module: Aikido::Zen::Sinks::Resolv
- Defined in:
- lib/aikido/zen/sinks/resolv.rb
Defined Under Namespace
Modules: Helpers
Constant Summary collapse
- SINK =
Sinks.add("resolv", scanners: [ Scanners::StoredSSRFScanner, Scanners::SSRFScanner ])
Class Method Summary collapse
Class Method Details
.load_sinks! ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/aikido/zen/sinks/resolv.rb', line 31 def self.load_sinks! # In stdlib but not always required require "resolv" ::Resolv.class_eval do alias_method :each_address__internal_for_aikido_zen, :each_address def each_address(*args, **kwargs, &blk) # each_address is defined "manually" because no sink method pattern # is applicable. name, = args addresses = [] each_address__internal_for_aikido_zen(*args, **kwargs) do |address| addresses << address blk.call(address) end ensure # Ensure partial results are scanned. Sinks::DSL.safe do Helpers.scan(name, addresses, "lookup") end end end end |