rubydns 2.0.0.pre.rc2 → 2.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 +4 -4
- data/README.md +11 -3
- data/examples/basic-dns.rb +1 -1
- data/examples/cname.rb +1 -1
- data/examples/flakey-dns.rb +1 -1
- data/examples/geoip-dns.rb +1 -1
- data/examples/simple.rb +1 -1
- data/examples/soa-dns.rb +1 -1
- data/examples/test-dns-1.rb +1 -1
- data/examples/test-dns-2.rb +1 -1
- data/lib/rubydns.rb +7 -2
- data/lib/rubydns/rule_based_server.rb +2 -2
- data/lib/rubydns/version.rb +1 -1
- data/rubydns.gemspec +1 -1
- data/spec/rubydns/daemon_spec.rb +1 -1
- data/spec/rubydns/injected_supervisor_spec.rb +1 -1
- data/spec/rubydns/passthrough_spec.rb +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bac5139eae169f981088495e6dc4bde5d13fa966
|
4
|
+
data.tar.gz: 0ee8216c43d6600fb811ee83d708ac984d2807df
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: caa862959c454afebceddbf387e5722ff6a013a6c1c6012f5cb5acf1ec4d6c9422ea1c641fb3b776ecd270ec9278640e6b7088b64cbcea9ce8e8783c579f45a1
|
7
|
+
data.tar.gz: 136467f2543e9eb1ae01b158cca987ec1757d01bd2aa10c695249a204a68a8e88137b39cc907f4bf9cc544c9046a94848542fddde3578f6bf553459e1c81c9bf
|
data/README.md
CHANGED
@@ -47,7 +47,7 @@ IN = Resolv::DNS::Resource::IN
|
|
47
47
|
UPSTREAM = RubyDNS::Resolver.new([[:udp, "8.8.8.8", 53], [:tcp, "8.8.8.8", 53]])
|
48
48
|
|
49
49
|
# Start the RubyDNS server
|
50
|
-
RubyDNS::run_server(
|
50
|
+
RubyDNS::run_server(INTERFACES) do
|
51
51
|
match(%r{test.local}, IN::A) do |transaction|
|
52
52
|
transaction.respond!("10.0.0.80")
|
53
53
|
end
|
@@ -68,7 +68,7 @@ Start the server using `RUBYOPT=-w ./examples/basic-dns.rb`. You can then test i
|
|
68
68
|
|
69
69
|
On some platforms (e.g. Mac OS X) the number of file descriptors is relatively low by default and should be increased by calling `ulimit -n 10000` before running tests or even before starting a server which expects a large number of concurrent incoming connections.
|
70
70
|
|
71
|
-
### Custom
|
71
|
+
### Custom Servers
|
72
72
|
|
73
73
|
It is possible to create and integrate your own custom servers, however this functionality has now moved to [`Async::DNS::Server`](https://github.com/socketry/async-dns).
|
74
74
|
|
@@ -135,11 +135,19 @@ DNSSEC is currently not supported and is [unlikely to be supported in the future
|
|
135
135
|
* Support reverse records more easily.
|
136
136
|
* Some kind of system level integration, e.g. registering a DNS server with the currently running system resolver.
|
137
137
|
|
138
|
+
## See Also
|
139
|
+
|
140
|
+
The majority of this gem is now implemented by `async-dns`.
|
141
|
+
|
142
|
+
- [async-io](https://github.com/socketry/async-io) — Asynchronous networking and sockets.
|
143
|
+
- [async-dns](https://github.com/socketry/async-dns) — Asynchronous DNS resolver and server.
|
144
|
+
- [async-rspec](https://github.com/socketry/async-rspec) — Shared contexts for running async specs.
|
145
|
+
|
138
146
|
## License
|
139
147
|
|
140
148
|
Released under the MIT license.
|
141
149
|
|
142
|
-
Copyright,
|
150
|
+
Copyright, 2017, by [Samuel G. D. Williams](http://www.codeotaku.com/samuel-williams).
|
143
151
|
|
144
152
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
145
153
|
of this software and associated documentation files (the "Software"), to deal
|
data/examples/basic-dns.rb
CHANGED
@@ -12,7 +12,7 @@ IN = Resolv::DNS::Resource::IN
|
|
12
12
|
UPSTREAM = RubyDNS::Resolver.new([[:udp, "8.8.8.8", 53], [:tcp, "8.8.8.8", 53]])
|
13
13
|
|
14
14
|
# Start the RubyDNS server
|
15
|
-
RubyDNS::run_server(
|
15
|
+
RubyDNS::run_server(INTERFACES) do
|
16
16
|
match(%r{test.local}, IN::A) do |transaction|
|
17
17
|
transaction.respond!("10.0.0.80")
|
18
18
|
end
|
data/examples/cname.rb
CHANGED
@@ -13,7 +13,7 @@ IN = Resolv::DNS::Resource::IN
|
|
13
13
|
|
14
14
|
UPSTREAM = RubyDNS::Resolver.new([[:udp, "8.8.8.8", 53], [:tcp, "8.8.8.8", 53]])
|
15
15
|
|
16
|
-
RubyDNS::run_server(
|
16
|
+
RubyDNS::run_server(INTERFACES) do
|
17
17
|
# How to respond to something other than what was requested.
|
18
18
|
match(//, IN::A) do |transaction|
|
19
19
|
transaction.respond!(Name.create('foo.bar'), resource_class: IN::CNAME)
|
data/examples/flakey-dns.rb
CHANGED
@@ -38,7 +38,7 @@ class FlakeyDNS < Process::Daemon
|
|
38
38
|
IN = Resolv::DNS::Resource::IN
|
39
39
|
|
40
40
|
def startup
|
41
|
-
RubyDNS.run_server(
|
41
|
+
RubyDNS.run_server(INTERFACES) do
|
42
42
|
# Use a Celluloid supervisor so the system recovers if the actor dies
|
43
43
|
fallback_resolver_supervisor =
|
44
44
|
RubyDNS::Resolver.supervise(RubyDNS::System.nameservers)
|
data/examples/geoip-dns.rb
CHANGED
@@ -57,7 +57,7 @@ class GeoIPDNS < Process::Daemon
|
|
57
57
|
IN = Resolv::DNS::Resource::IN
|
58
58
|
|
59
59
|
def startup
|
60
|
-
RubyDNS.run_server(
|
60
|
+
RubyDNS.run_server(INTERFACES) do
|
61
61
|
fallback_resolver_supervisor = RubyDNS::Resolver.supervise(RubyDNS::System.nameservers)
|
62
62
|
|
63
63
|
match(//, IN::A) do |transaction|
|
data/examples/simple.rb
CHANGED
@@ -13,7 +13,7 @@ IN = Resolv::DNS::Resource::IN
|
|
13
13
|
UPSTREAM = RubyDNS::Resolver.new([[:udp, '8.8.8.8', 53], [:tcp, '8.8.8.8', 53]])
|
14
14
|
|
15
15
|
# Start the RubyDNS server
|
16
|
-
RubyDNS.run_server(
|
16
|
+
RubyDNS.run_server(INTERFACES) do
|
17
17
|
match(/test.mydomain.org/, IN::A) do |transaction|
|
18
18
|
transaction.respond!('10.0.0.80')
|
19
19
|
end
|
data/examples/soa-dns.rb
CHANGED
@@ -27,7 +27,7 @@ $R = Resolv::DNS.new
|
|
27
27
|
Name = Resolv::DNS::Name
|
28
28
|
IN = Resolv::DNS::Resource::IN
|
29
29
|
|
30
|
-
RubyDNS.run_server(
|
30
|
+
RubyDNS.run_server([[:udp, '0.0.0.0', 5400]]) do
|
31
31
|
# SOA Record
|
32
32
|
# dig @localhost -p 5400 SOA mydomain.org
|
33
33
|
match('mydomain.org', IN::SOA) do |transaction|
|
data/examples/test-dns-1.rb
CHANGED
@@ -37,7 +37,7 @@ INTERFACES = [
|
|
37
37
|
# [:tcp, '::0', 5300],
|
38
38
|
]
|
39
39
|
|
40
|
-
RubyDNS.run_server(
|
40
|
+
RubyDNS.run_server(INTERFACES) do
|
41
41
|
# % dig +nocmd +noall +answer @localhost ANY dev.mydomain.org
|
42
42
|
# dev.mydomain.org. 16000 IN A 10.0.0.80
|
43
43
|
# dev.mydomain.org. 16000 IN MX 10 mail.mydomain.org.
|
data/examples/test-dns-2.rb
CHANGED
data/lib/rubydns.rb
CHANGED
@@ -28,8 +28,13 @@ module RubyDNS
|
|
28
28
|
Resolver = Async::DNS::Resolver
|
29
29
|
|
30
30
|
# Run a server with the given rules.
|
31
|
-
def self.run_server (server_class: RuleBasedServer, **options, &block)
|
32
|
-
|
31
|
+
def self.run_server (*args, server_class: RuleBasedServer, **options, &block)
|
32
|
+
if listen = options.delete(:listen)
|
33
|
+
warn "Using `listen:` option is deprecated, please pass as the first argument."
|
34
|
+
args.unshift(listen)
|
35
|
+
end
|
36
|
+
|
37
|
+
server = server_class.new(*args, **options, &block)
|
33
38
|
|
34
39
|
server.run
|
35
40
|
end
|
data/lib/rubydns/version.rb
CHANGED
data/rubydns.gemspec
CHANGED
@@ -30,7 +30,7 @@ Gem::Specification.new do |spec|
|
|
30
30
|
|
31
31
|
spec.required_ruby_version = '>= 2.2.6'
|
32
32
|
|
33
|
-
spec.add_dependency("async-dns", "~> 0
|
33
|
+
spec.add_dependency("async-dns", "~> 1.0")
|
34
34
|
spec.add_development_dependency("async-rspec", "~> 1.0")
|
35
35
|
|
36
36
|
spec.add_development_dependency "bundler", "~> 1.3"
|
data/spec/rubydns/daemon_spec.rb
CHANGED
@@ -38,7 +38,7 @@ module RubyDNS::InjectedSupervisorSpec
|
|
38
38
|
|
39
39
|
let(:server) do
|
40
40
|
# Start the RubyDNS server
|
41
|
-
RubyDNS::run_server(
|
41
|
+
RubyDNS::run_server(SERVER_PORTS, server_class: TestServer) do
|
42
42
|
match("test_message", IN::TXT) do |transaction|
|
43
43
|
transaction.respond!(*test_message.chunked)
|
44
44
|
end
|
@@ -31,7 +31,7 @@ module RubyDNS::PassthroughSpec
|
|
31
31
|
include_context Async::RSpec::Reactor
|
32
32
|
|
33
33
|
def run_server
|
34
|
-
task = RubyDNS::run_server(:
|
34
|
+
task = RubyDNS::run_server(listen: SERVER_PORTS) do
|
35
35
|
resolver = RubyDNS::Resolver.new([[:udp, "8.8.8.8", 53], [:tcp, "8.8.8.8", 53]])
|
36
36
|
|
37
37
|
match(/.*\.com/, IN::A) do |transaction|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubydns
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.0
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Samuel Williams
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-07-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: async-dns
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0
|
19
|
+
version: '1.0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '0
|
26
|
+
version: '1.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: async-rspec
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -140,9 +140,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
140
140
|
version: 2.2.6
|
141
141
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
|
-
- - "
|
143
|
+
- - ">="
|
144
144
|
- !ruby/object:Gem::Version
|
145
|
-
version:
|
145
|
+
version: '0'
|
146
146
|
requirements: []
|
147
147
|
rubyforge_project:
|
148
148
|
rubygems_version: 2.6.10
|