Sha256: 3946dfc6100480d661a202d7a4856a0974f25c812006f5761317f9ee9f5606e4
Contents?: true
Size: 1.8 KB
Versions: 1
Compression:
Stored size: 1.8 KB
Contents
require 'date' require 'typhoeus' require 'hashie' require 'multi_json' require_relative 'dnsdb/response' require_relative 'dnsdb/by_ip' require_relative 'dnsdb/by_name' require_relative 'dnsdb/label' require_relative 'dnsdb/related' require_relative 'dnsdb/traffic' module OpenDNS class DNSDB include OpenDNS::DNSDB::Response include OpenDNS::DNSDB::ByIP include OpenDNS::DNSDB::ByName include OpenDNS::DNSDB::Label include OpenDNS::DNSDB::Related include OpenDNS::DNSDB::Traffic DEFAULT_TIMEOUT = 15 DEFAULT_MAX_CONCURRENCY = 10 SGRAPH_API_BASE_URL = 'https://sgraph.umbrella.com' attr_reader :timeout attr_reader :sslcert attr_reader :sslcerttype attr_reader :sslcertpasswd attr_reader :max_concurrency def initialize(params = { }) raise UsageError, 'Missing certificate file' unless params[:sslcert] @sslcert = params[:sslcert] @timeout = DEFAULT_TIMEOUT @timeout = params[:timeout].to_f if params[:timeout] @max_concurrency = DEFAULT_MAX_CONCURRENCY @max_concurrency = params[:max_concurrency].to_i if params[:max_concurrency] @sslcerttype = params[:sslcerttype] || 'pem' @sslcertpasswd = params[:sslcertpasswd] || 'opendns' @options = { followlocation: true, timeout: @timeout, sslcert: @sslcert, sslcerttype: @sslcerttype, sslcertpasswd: @sslcertpasswd } end def query_multi Typhoeus::Hydra.new(max_concurrency: @max_concurrency) end def query_handler(endpoint, method = :get, options = { }) url = SGRAPH_API_BASE_URL + endpoint options = options.merge(@options) options.merge!(method: method) query = Typhoeus::Request.new(url, @options.merge(options).merge(method: method)) query end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
opendns-dnsdb-0.3.0 | lib/opendns-dnsdb/dnsdb.rb |