dns_one 0.4.13 → 0.4.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 79142c91abe122159d5d386c53dd4cd4f070039e
4
- data.tar.gz: 7363c5b5c19624bc95db6aade95b6873d329f16a
3
+ metadata.gz: 50cf0e24bbf380a428f8409061da2bc49087d2e4
4
+ data.tar.gz: 39660c4fb96db37f8f1d392a35860ed7a5c571ee
5
5
  SHA512:
6
- metadata.gz: dd092911e6b2fa66c66dc048e1a6ee2ef25bdc30ffbdc9714147c27f0a54560eae3e0a6c5e4e1e8f9a7bb821f84795596a5ba55f231b4048ed6ddbba0f2136ff
7
- data.tar.gz: b5e47c479221f77963a430ed42362c6a349dc629c773b25aadbadc8562e2780e52aa027ed955072379bc865a1a0b14c7d9c02e235b64febf0c70ca45f0bcb08a
6
+ metadata.gz: 3726f0e434e47ec467ee7f3e777faca6fe7826c74eec36c4aa8b43b7b0c0209abeac38bf3b224b35f7aea0818193ed80a913068449021bcddff49468ca4bfa73
7
+ data.tar.gz: 78aaeca54c29ae2a8824b9fa7ad426cc766a242cf4837d4f72afb293cc147b2fef71658eebee5136fa5ae54df9644f87be45ac28245c9c27885740fe6c4da723
@@ -25,9 +25,8 @@ Gem::Specification.new do |spec|
25
25
  spec.add_development_dependency "rake", "~> 10.0"
26
26
  spec.add_development_dependency "rspec", "~> 3.0"
27
27
 
28
- spec.add_runtime_dependency "thor", '~> 0.19.4'
28
+ spec.add_runtime_dependency "thor", '~> 0.19'
29
29
  spec.add_runtime_dependency "rubydns", '~> 1.0'
30
- spec.add_runtime_dependency "activerecord", '~> 5.1'
31
30
  spec.add_runtime_dependency "rexec", '~> 1.6'
32
31
 
33
32
  end
@@ -1,13 +1,13 @@
1
1
  # Core
2
2
  require 'syslog'
3
3
  require 'syslog/logger'
4
+ require 'ostruct'
5
+ require 'yaml'
6
+ require 'singleton'
4
7
 
5
8
  # Gems
6
- require 'rubydns'
7
- require 'active_record'
8
- require 'yaml'
9
9
  require 'rexec'
10
- require 'ostruct'
10
+ require 'rubydns'
11
11
 
12
12
  # DnsOne
13
13
 
@@ -67,12 +67,14 @@ module DnsOne; class DnsOne
67
67
  end
68
68
 
69
69
  private
70
-
70
+ def symbolize_keys(hash)
71
+ hash.each_with_object({}) { |(k, v), h| h[k.to_sym] = v.is_a?(Hash) ? symbolize_keys(v) : v }
72
+ end
71
73
  def parse_conf conf_file
72
74
  check_conf_file conf_file
73
75
 
74
76
  conf = YAML.load_file conf_file
75
- conf.deep_symbolize_keys!
77
+ conf = symbolize_keys conf
76
78
 
77
79
  OpenStruct.new(
78
80
  main: {
@@ -55,13 +55,12 @@ module Backend; class BackendDB
55
55
  Util.die "Database adapter '#{@conf[:adapter]}' not supported. Aborting."
56
56
  end
57
57
 
58
- begin
59
- require gem_name.to_s
60
-
61
- rescue LoadError => e
62
- Util.die "Error loading database dependency.\nMake sure #{gem_name} it is installed, if it is not, install with 'gem install #{gem_name}'\nError Details: #{e.desc}"
63
- rescue => e
64
- Util.die "Error loading database dependency.\n#{e.desc}"
58
+ ['active_record', gem_name].each do |req_name|
59
+ begin
60
+ require req_name
61
+ rescue => e
62
+ Util.die "Error on 'require #{req_name}', install with 'gem install #{req_name}'.\nError Details: #{e.desc}"
63
+ end
65
64
  end
66
65
 
67
66
  ActiveRecord::Base.establish_connection @conf
@@ -112,9 +112,7 @@ class Hash
112
112
  end
113
113
 
114
114
  class String
115
- unless BLANK_RE
116
- BLANK_RE = /\A[[:space:]]*\z/
117
- end
115
+ LOCAL_BLANK_RE = /\A[[:space:]]*\z/
118
116
 
119
117
  # A string is blank if it's empty or contains whitespaces only:
120
118
  #
@@ -132,7 +130,7 @@ class String
132
130
  # The regexp that matches blank strings is expensive. For the case of empty
133
131
  # strings we can speed up this method (~3.5x) with an empty? call. The
134
132
  # penalty for the rest of strings is marginal.
135
- empty? || BLANK_RE.match?(self)
133
+ empty? || LOCAL_BLANK_RE.match?(self)
136
134
  end
137
135
  end
138
136
 
@@ -12,15 +12,12 @@ module DnsOne; class Server # < RExec::Daemon::Base
12
12
 
13
13
  def initialize conf, conf_zone_search
14
14
  @conf = conf
15
- ZoneSearch.instance.setup conf_zone_search
15
+ @zone_search = ZoneSearch.instance.setup conf_zone_search
16
16
  end
17
17
 
18
18
  def run
19
+ zone_search = @zone_search
19
20
  conf = @conf
20
- zone_search = ZoneSearch.instance
21
-
22
- # Find a dummy zone to make AR/pg load all dependencies
23
- zone_search.query 'dummy.com.br', Resolv::DNS::Resource::IN, '1.2.3.4'
24
21
 
25
22
  RubyDNS::run_server(listen: dns_daemon_interfaces, logger: Log.logger) do
26
23
  on(:start) do
@@ -1,3 +1,3 @@
1
1
  module DnsOne
2
- VERSION = "0.4.13"
2
+ VERSION = "0.4.14"
3
3
  end
@@ -10,14 +10,12 @@ module DnsOne; class ZoneSearch
10
10
  check_record_sets
11
11
  @backend = set_backend
12
12
  @cache = Cache.new @conf[:cache_max]
13
+ @ignore_subdomains_re = build_ignore_subdomains_re
13
14
 
14
- @ignore_subdomains_re = nil
15
- if ignore_subdomains = @conf[:ignore_subdomains]
16
- unless ignore_subdomains.empty?
17
- subdoms = ignore_subdomains.strip.split(/\s+/).map(&:downcase).join('|')
18
- @ignore_subdomains_re = /^(#{ subdoms })\./i
19
- end
20
- end
15
+ # Find a dummy zone to make AR/pg load all dependencies
16
+ query 'dummy.com.br', Resolv::DNS::Resource::IN, '1.2.3.4'
17
+
18
+ self
21
19
  end
22
20
 
23
21
  def query dom_name, res_class, ip_address
@@ -63,6 +61,13 @@ module DnsOne; class ZoneSearch
63
61
 
64
62
  private
65
63
 
64
+ def build_ignore_subdomains_re
65
+ if i = @conf[:ignore_subdomains].presence
66
+ s = i.strip.split(/\s+/).map(&:downcase).join '|'
67
+ /^(#{ s })\./i
68
+ end
69
+ end
70
+
66
71
  def set_backend
67
72
  if file = @conf[:backend][:file]
68
73
  unless File.exists? file
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dns_one
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.13
4
+ version: 0.4.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tom Lobato
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-06-26 00:00:00.000000000 Z
11
+ date: 2017-06-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 0.19.4
61
+ version: '0.19'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 0.19.4
68
+ version: '0.19'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rubydns
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -80,20 +80,6 @@ dependencies:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '1.0'
83
- - !ruby/object:Gem::Dependency
84
- name: activerecord
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: '5.1'
90
- type: :runtime
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: '5.1'
97
83
  - !ruby/object:Gem::Dependency
98
84
  name: rexec
99
85
  requirement: !ruby/object:Gem::Requirement