class Middleman::DnsResolver::LocalLinkResolver

Use network name server to resolve ips and names

Public Class Methods

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

  @timeouts = opts.fetch(:timeouts, 1)
  @resolver = opts.fetch(:resolver, Resolv::MDNS.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/local_link_resolver.rb, line 31
def nameserver_config
  return unless ENV.key?('MM_MDNSRC') && ENV['MM_MDNSRC']

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

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