devdnsd 2.4.0 → 3.0.0
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 +7 -0
- data/.rbx/8b/8b2d1928657c1eeac610d1207ff1bee6e918287c +857 -0
- data/.rbx/db/dbd6130694811dcd0359863bd5380c673db0fe71 +288 -0
- data/.travis-gemfile +1 -2
- data/.travis.yml +1 -0
- data/Gemfile +2 -3
- data/README.md +3 -1
- data/Rakefile +1 -1
- data/bin/devdnsd +29 -5
- data/config/devdnsd_config.sample +2 -5
- data/devdnsd.gemspec +6 -5
- data/doc/DevDNSd.html +4 -4
- data/doc/DevDNSd/Application.html +560 -520
- data/doc/DevDNSd/ApplicationMethods.html +4 -4
- data/doc/DevDNSd/ApplicationMethods/Aliases.html +780 -0
- data/doc/DevDNSd/ApplicationMethods/Server.html +46 -46
- data/doc/DevDNSd/ApplicationMethods/System.html +222 -20
- data/doc/DevDNSd/ApplicationMethods/System/ClassMethods.html +3 -3
- data/doc/DevDNSd/Configuration.html +20 -20
- data/doc/DevDNSd/Errors.html +3 -3
- data/doc/DevDNSd/Errors/InvalidRule.html +3 -3
- data/doc/DevDNSd/Rule.html +15 -15
- data/doc/DevDNSd/Version.html +5 -5
- data/doc/_index.html +11 -4
- data/doc/class_list.html +1 -1
- data/doc/file.README.html +6 -4
- data/doc/frames.html +1 -1
- data/doc/index.html +6 -4
- data/doc/method_list.html +73 -31
- data/doc/top-level-namespace.html +3 -3
- data/lib/devdnsd.rb +6 -3
- data/lib/devdnsd/application.rb +220 -11
- data/lib/devdnsd/configuration.rb +19 -1
- data/lib/devdnsd/errors.rb +1 -1
- data/lib/devdnsd/rule.rb +2 -2
- data/lib/devdnsd/version.rb +3 -3
- data/locales/en.yml +28 -2
- data/locales/it.yml +29 -2
- data/spec/coverage_helper.rb +3 -3
- data/spec/devdnsd/application_spec.rb +202 -51
- data/spec/devdnsd/configuration_spec.rb +1 -1
- data/spec/devdnsd/rule_spec.rb +1 -1
- data/spec/resolver_helper.rb +51 -0
- data/spec/spec_helper.rb +3 -5
- metadata +34 -26
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
#
|
|
3
|
+
# This file is part of the devdnsd gem. Copyright (C) 2013 and above Shogun <shogun_panda@cowtech.it>.
|
|
4
|
+
# Licensed under the MIT license, which can be found at http://www.opensource.org/licenses/mit-license.php.
|
|
5
|
+
#
|
|
6
|
+
|
|
7
|
+
# Resolvs an hostname to a nameserver.
|
|
8
|
+
#
|
|
9
|
+
# @param [String] The hostname to resolv.
|
|
10
|
+
# @param [String] The type of query to issue.
|
|
11
|
+
# @param [String] The nameserver to connect to.
|
|
12
|
+
# @param [Fixnum] The port to connect to.
|
|
13
|
+
# @param [Logger] A logger for the resolver.
|
|
14
|
+
# @return [Array|NilClass] Return an array of pair of addresses and types. `nil` is returned if nothing is found.
|
|
15
|
+
def devdnsd_resolv(address = "match.dev", type = "ANY", nameserver = "127.0.0.1", port = 7771, logger = nil)
|
|
16
|
+
resolver = Fiber.current
|
|
17
|
+
rv = []
|
|
18
|
+
|
|
19
|
+
port = port.to_i
|
|
20
|
+
logger = Bovem::Logger.new("/dev/null", Bovem::Logger::DEBUG) if !logger
|
|
21
|
+
logger.info(::Bovem::Console.replace_markers("Resolving address {mark=bright}#{address}{/mark} with type {mark=bright}#{type}{/mark} at nameserver {mark=bright}#{nameserver}{/mark}:{mark=bright}#{port.to_s}{/mark} ..."))
|
|
22
|
+
|
|
23
|
+
RubyDNS::Resolver.new([[:udp, nameserver, port], [:tcp, nameserver, port]]).query(address, "Resolv::DNS::Resource::IN::#{type}".constantize) do |response|
|
|
24
|
+
begin
|
|
25
|
+
if response.is_a?(RubyDNS::Message) then
|
|
26
|
+
response.answer.each do |answer|
|
|
27
|
+
type = answer[2].class.to_s.split("::")[-1].to_sym
|
|
28
|
+
|
|
29
|
+
name = case type
|
|
30
|
+
when :MX then answer[2].exchange.to_s.gsub(/\.$/, "")
|
|
31
|
+
when :CNAME then answer[2].name.to_s.gsub(/\.$/, "")
|
|
32
|
+
when :NS then answer[2].name.to_s.gsub(/\.$/, "")
|
|
33
|
+
when :PTR then answer[2].name.to_s.gsub(/\.$/, "")
|
|
34
|
+
else answer[2].address.to_s
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
rv << [name, type]
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
rescue => e
|
|
41
|
+
logger.error("[#{e.class}] #{e.to_s}")
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
resolver.resume
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
Fiber.yield
|
|
48
|
+
rv.uniq!
|
|
49
|
+
logger.info("Resolving ended with result: #{rv.inspect}")
|
|
50
|
+
rv.length == 1 ? rv[0] : rv
|
|
51
|
+
end
|
data/spec/spec_helper.rb
CHANGED
|
@@ -1,18 +1,16 @@
|
|
|
1
1
|
# encoding: utf-8
|
|
2
2
|
#
|
|
3
|
-
# This file is part of the devdnsd gem. Copyright (C) 2013 and above Shogun <shogun_panda@
|
|
3
|
+
# This file is part of the devdnsd gem. Copyright (C) 2013 and above Shogun <shogun_panda@cowtech.it>.
|
|
4
4
|
# Licensed under the MIT license, which can be found at http://www.opensource.org/licenses/mit-license.php.
|
|
5
5
|
#
|
|
6
6
|
|
|
7
7
|
require "rubygems"
|
|
8
8
|
require "bundler/setup"
|
|
9
9
|
require "devdnsd"
|
|
10
|
-
require "
|
|
10
|
+
require "resolver_helper"
|
|
11
11
|
|
|
12
12
|
RSpec.configure do |config|
|
|
13
13
|
config.expect_with :rspec do |c|
|
|
14
14
|
c.syntax = :expect
|
|
15
15
|
end
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
require File.expand_path(File.dirname(__FILE__)) + "/../utils/tester"
|
|
16
|
+
end
|
metadata
CHANGED
|
@@ -1,67 +1,74 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: devdnsd
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
5
|
-
prerelease:
|
|
4
|
+
version: 3.0.0
|
|
6
5
|
platform: ruby
|
|
7
6
|
authors:
|
|
8
7
|
- Shogun
|
|
9
8
|
autorequire:
|
|
10
9
|
bindir: bin
|
|
11
10
|
cert_chain: []
|
|
12
|
-
date: 2013-
|
|
11
|
+
date: 2013-08-18 00:00:00.000000000 Z
|
|
13
12
|
dependencies:
|
|
14
13
|
- !ruby/object:Gem::Dependency
|
|
15
|
-
name:
|
|
14
|
+
name: bovem
|
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
|
17
|
-
none: false
|
|
18
16
|
requirements:
|
|
19
17
|
- - ~>
|
|
20
18
|
- !ruby/object:Gem::Version
|
|
21
|
-
version:
|
|
19
|
+
version: 3.0.2
|
|
22
20
|
type: :runtime
|
|
23
21
|
prerelease: false
|
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
25
|
-
none: false
|
|
26
23
|
requirements:
|
|
27
24
|
- - ~>
|
|
28
25
|
- !ruby/object:Gem::Version
|
|
29
|
-
version:
|
|
26
|
+
version: 3.0.2
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
|
31
28
|
name: rubydns
|
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
|
33
|
-
none: false
|
|
34
30
|
requirements:
|
|
35
31
|
- - ~>
|
|
36
32
|
- !ruby/object:Gem::Version
|
|
37
|
-
version: 0.6.
|
|
33
|
+
version: 0.6.4
|
|
38
34
|
type: :runtime
|
|
39
35
|
prerelease: false
|
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
41
|
-
none: false
|
|
42
37
|
requirements:
|
|
43
38
|
- - ~>
|
|
44
39
|
- !ruby/object:Gem::Version
|
|
45
|
-
version: 0.6.
|
|
40
|
+
version: 0.6.4
|
|
46
41
|
- !ruby/object:Gem::Dependency
|
|
47
42
|
name: rexec
|
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
|
49
|
-
none: false
|
|
50
44
|
requirements:
|
|
51
45
|
- - ~>
|
|
52
46
|
- !ruby/object:Gem::Version
|
|
53
|
-
version: 1.5.
|
|
47
|
+
version: 1.5.2
|
|
54
48
|
type: :runtime
|
|
55
49
|
prerelease: false
|
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
57
|
-
none: false
|
|
58
51
|
requirements:
|
|
59
52
|
- - ~>
|
|
60
53
|
- !ruby/object:Gem::Version
|
|
61
|
-
version: 1.5.
|
|
54
|
+
version: 1.5.2
|
|
55
|
+
- !ruby/object:Gem::Dependency
|
|
56
|
+
name: mustache
|
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
|
58
|
+
requirements:
|
|
59
|
+
- - ~>
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: 0.99.4
|
|
62
|
+
type: :runtime
|
|
63
|
+
prerelease: false
|
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - ~>
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: 0.99.4
|
|
62
69
|
description: A small DNS server to enable local domain resolution.
|
|
63
70
|
email:
|
|
64
|
-
- shogun_panda@
|
|
71
|
+
- shogun_panda@cowtech.it
|
|
65
72
|
executables:
|
|
66
73
|
- devdnsd
|
|
67
74
|
extensions: []
|
|
@@ -69,6 +76,8 @@ extra_rdoc_files: []
|
|
|
69
76
|
files:
|
|
70
77
|
- .DS_Store
|
|
71
78
|
- .gitignore
|
|
79
|
+
- .rbx/8b/8b2d1928657c1eeac610d1207ff1bee6e918287c
|
|
80
|
+
- .rbx/db/dbd6130694811dcd0359863bd5380c673db0fe71
|
|
72
81
|
- .travis-gemfile
|
|
73
82
|
- .travis.yml
|
|
74
83
|
- .yardopts
|
|
@@ -81,6 +90,7 @@ files:
|
|
|
81
90
|
- doc/DevDNSd.html
|
|
82
91
|
- doc/DevDNSd/Application.html
|
|
83
92
|
- doc/DevDNSd/ApplicationMethods.html
|
|
93
|
+
- doc/DevDNSd/ApplicationMethods/Aliases.html
|
|
84
94
|
- doc/DevDNSd/ApplicationMethods/Server.html
|
|
85
95
|
- doc/DevDNSd/ApplicationMethods/System.html
|
|
86
96
|
- doc/DevDNSd/ApplicationMethods/System/ClassMethods.html
|
|
@@ -115,39 +125,37 @@ files:
|
|
|
115
125
|
- spec/devdnsd/application_spec.rb
|
|
116
126
|
- spec/devdnsd/configuration_spec.rb
|
|
117
127
|
- spec/devdnsd/rule_spec.rb
|
|
128
|
+
- spec/resolver_helper.rb
|
|
118
129
|
- spec/spec_helper.rb
|
|
119
130
|
- utils/tester.rb
|
|
120
131
|
homepage: http://sw.cow.tc/devdnsd
|
|
121
132
|
licenses: []
|
|
133
|
+
metadata: {}
|
|
122
134
|
post_install_message:
|
|
123
135
|
rdoc_options: []
|
|
124
136
|
require_paths:
|
|
125
137
|
- lib
|
|
126
138
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
127
|
-
none: false
|
|
128
139
|
requirements:
|
|
129
|
-
- -
|
|
140
|
+
- - '>='
|
|
130
141
|
- !ruby/object:Gem::Version
|
|
131
142
|
version: 1.9.3
|
|
132
143
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
133
|
-
none: false
|
|
134
144
|
requirements:
|
|
135
|
-
- -
|
|
145
|
+
- - '>='
|
|
136
146
|
- !ruby/object:Gem::Version
|
|
137
147
|
version: '0'
|
|
138
|
-
segments:
|
|
139
|
-
- 0
|
|
140
|
-
hash: -2526218828068856826
|
|
141
148
|
requirements: []
|
|
142
149
|
rubyforge_project: devdnsd
|
|
143
|
-
rubygems_version:
|
|
150
|
+
rubygems_version: 2.0.6
|
|
144
151
|
signing_key:
|
|
145
|
-
specification_version:
|
|
152
|
+
specification_version: 4
|
|
146
153
|
summary: A small DNS server to enable local domain resolution.
|
|
147
154
|
test_files:
|
|
148
155
|
- spec/coverage_helper.rb
|
|
149
156
|
- spec/devdnsd/application_spec.rb
|
|
150
157
|
- spec/devdnsd/configuration_spec.rb
|
|
151
158
|
- spec/devdnsd/rule_spec.rb
|
|
159
|
+
- spec/resolver_helper.rb
|
|
152
160
|
- spec/spec_helper.rb
|
|
153
161
|
has_rdoc:
|