module Invoker module Power class UrlRewriter def select_backend_config(complete_path) possible_matches = extract_host_from_domain(complete_path) exact_match = nil possible_matches.each do |match| if match exact_match = dns_check(process_name: match) break if exact_match.port end end exact_match end def extract_host_from_domain(complete_path) matching_strings = [] tld_match_regex.map do |regexp| if (match_result = complete_path.match(regexp)) matching_strings << match_result[1] end end matching_strings.uniq end private def tld_match_regex tld = Invoker.config.tld [/([\w.-]+)\.#{tld}(\:\d+)?$/, /([\w-]+)\.#{tld}(\:\d+)?$/] end def dns_check(dns_args) Invoker::IPC::UnixClient.send_command("dns_check", dns_args) do |dns_response| dns_response end end end end end