Module: Fluent::Plugin::Bind::Utils

Defined in:
lib/fluent/plugin/bind/utils.rb

Overview

Utilities related to bind/named

Constant Summary collapse

FLAGS_REGEXP =
/
^
(?<recursion>(\+|-))
((?<signed>S))?
((?<edns>E\((?<edns_version>\d+)\)))?
((?<tcp>T))?
((?<dnssec>D))?
((?<checking_disabled>C))?
((?<valid_server_cookie>(V|K)))?
/x.freeze

Class Method Summary collapse

Class Method Details

.parse_flags(flags, prefix: '') ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/fluent/plugin/bind/utils.rb', line 19

def self.parse_flags(flags, prefix: '')
  m = FLAGS_REGEXP.match(flags)

  return {} unless m

  parsed_flags = {}
  m.names.each do |name|
    parsed_flags[prefix + name] = !m[name].nil?
  end

  parsed_flags["#{prefix}recursion"] = m['recursion'] == '+'
  parsed_flags["#{prefix}edns_version"] = m['edns_version'] ? m['edns_version'].to_i : nil
  parsed_flags["#{prefix}valid_server_cookie"] = case m['valid_server_cookie']
                                                 when 'V' then true
                                                 when 'K' then false
                                                 end
  parsed_flags
end