class Middleman::DnsResolver::NetworkResolver

Use network name server to resolve ips and names

Public Class Methods

new(opts={}) click to toggle source
# File lib/middleman-core/dns_resolver/network_resolver.rb, line 7
def initialize(opts={})
  super

  @resolver = opts.fetch(:resolver, Resolv::DNS.new(nameserver_config))
  self.timeouts = timeouts
end

Private Instance Methods

nameserver_config() click to toggle source

Hosts + Ports for MDNS resolver

This looks for MM_MDNSRC in your environment. If you are going to use IPv6-addresses: Make sure you do not forget to add the port at the end.

MM_MDNSRC=ip:port ip:port

@return [Hash]

Returns the configuration for the nameserver

@example

export MM_MDNSRC="224.0.0.251:5353 ff02::fb:5353"
# File lib/middleman-core/dns_resolver/network_resolver.rb, line 29
def nameserver_config
  return unless ENV.key?('MM_DNSRC') && ENV['MM_DNSRC']

  address, port = ENV['MM_DNSRC'].split(/:/)

  {
    nameserver_port: [[address, port.to_i]]
  }
rescue StandardError
  {}
end