unbound 2.0.0 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3cc064fa99fcaf867d9474ede41d93ad258742e4
4
- data.tar.gz: dd0dd181466af047705bb39f94db521141eaa752
3
+ metadata.gz: 211b56bb13a5da0ea3a1b0421fe41f6411db3f28
4
+ data.tar.gz: 29166b0876346b3594e526ad2b73334617691ac0
5
5
  SHA512:
6
- metadata.gz: 51c16931c919a0635208f7ec37f4820f5a7b53e9ec7de05d34f8f0c52d0496dd3e2be8684bf7ac3fedf0cb91565d8c9a14076885b789efd91eda13efbb708f81
7
- data.tar.gz: b24c0751df53c3e44418db0c85de1b8678c9bd0f0a6180511316ba88adcf39bb17c499a458927661a38b6d5545b8fd9cc0bee76249a37ce59fdbdadbec9e67f1
6
+ metadata.gz: 4bfe6de68443b48c64989b827f010a348d5d02058013aacabb3190c03b212301bce6b859311d935d2258869a4c71db25e32375ba48f62c1cf057431fd9f9579b
7
+ data.tar.gz: 14b676d3ba013c16914494abe81b46c21341de3420a34e84801e869926dcc0d532a535971aa24d628f9f11fe3a3d50dcbd50797437b1d5e8818f8bc5edcac1a1
@@ -0,0 +1,26 @@
1
+ Next
2
+ ====
3
+
4
+ * Your contribution here.
5
+
6
+ 2.1.0 (2014-07-23)
7
+ ==================
8
+
9
+ * Make :spec default rake task - [@justfalter](https://github.com/justfalter)
10
+ * Add CONTRIBUTING.md - [@justfalter](https://github.com/justfalter)
11
+ * Rename Changes -> CHANGELOG.md - [@justfalter](https://github.com/justfalter)
12
+ * [#2](https://github.com/justfalter/unbound-ruby/pull/2): Add helper for synchronous queries - [@corny](https://github.com/corny)
13
+
14
+ 2.0.0 (2014-03-12)
15
+ ==================
16
+ * Breaking change: Unbound::Query#cancel! no longer cancels the query. Instead, use Unbound::Resolver#cancel_query to cancel queries. - [@justfalter](https://github.com/justfalter)
17
+ * Unbound::Query#async_id will now be set to nil when the query has finished. - [@justfalter](https://github.com/justfalter)
18
+ * Disable autoclose on the return of Context#io object. autoclose is bad news. - [@justfalter](https://github.com/justfalter)
19
+
20
+ 1.0.1 (2014-03-06)
21
+ ==================
22
+ * Fix issue where the resolver couldn't keep track of in-flight queries on 32-bit systems. - [@justfalter](https://github.com/justfalter)
23
+
24
+ 1.0.0 (2014-01-31)
25
+ ==================
26
+ * Initial release. - [@justfalter](https://github.com/justfalter)
@@ -0,0 +1,116 @@
1
+ Contributing to Unbound-Ruby
2
+ ============================
3
+
4
+ You're encouraged to submit [pull requests](https://github.com/justfalter/unbound-ruby/pulls), [propose features and discuss issues](https://github.com/justfalter/unbound-ruby/issues).
5
+
6
+ #### Fork the Project
7
+
8
+ Fork the [project on Github](https://github.com/justfalter/unbound-ruby) and check out your copy.
9
+
10
+ ```
11
+ git clone https://github.com/contributor/unbound-ruby.git
12
+ cd unbound-ruby
13
+ git remote add upstream https://github.com/justfalter/unbount-ruby.git
14
+ ```
15
+
16
+ #### Create a Topic Branch
17
+
18
+ Make sure your fork is up-to-date and create a topic branch for your feature or bug fix.
19
+
20
+ ```
21
+ git checkout master
22
+ git pull upstream master
23
+ git checkout -b my-feature-branch
24
+ ```
25
+
26
+ #### Bundle Install and Test
27
+
28
+ Ensure that you can build the project and run tests.
29
+
30
+ ```
31
+ bundle install
32
+ bundle exec rake
33
+ ```
34
+
35
+ #### Write Tests
36
+
37
+ Try to write a test that reproduces the problem you're trying to fix or describes a feature that you want to build. Add to [spec/](spec/).
38
+
39
+ We definitely appreciate pull requests that highlight or reproduce a problem, even without a fix.
40
+
41
+ #### Write Code
42
+
43
+ Implement your feature or bug fix.
44
+
45
+ Make sure that `bundle exec rake` completes without errors.
46
+
47
+ #### Write Documentation
48
+
49
+ Document any external behavior in the [README](README.md).
50
+
51
+ #### Update Changelog
52
+
53
+ Add a line to [CHANGELOG](CHANGELOG.md) under *Next Release*. Make it look like every other line, including your name and link to your Github account.
54
+
55
+ #### Commit Changes
56
+
57
+ Make sure git knows your name and email address:
58
+
59
+ ```
60
+ git config --global user.name "Your Name"
61
+ git config --global user.email "contributor@example.com"
62
+ ```
63
+
64
+ Writing good commit logs is important. A commit log should describe what changed and why.
65
+
66
+ ```
67
+ git add ...
68
+ git commit
69
+ ```
70
+
71
+ #### Push
72
+
73
+ ```
74
+ git push origin my-feature-branch
75
+ ```
76
+
77
+ #### Make a Pull Request
78
+
79
+ Go to https://github.com/contributor/unbound-ruby and select your feature branch. Click the 'Pull Request' button and fill out the form. Pull requests are usually reviewed within a few days.
80
+
81
+ #### Rebase
82
+
83
+ If you've been working on a change for a while, rebase with upstream/master.
84
+
85
+ ```
86
+ git fetch upstream
87
+ git rebase upstream/master
88
+ git push origin my-feature-branch -f
89
+ ```
90
+
91
+ #### Update CHANGELOG Again
92
+
93
+ Update the [CHANGELOG](CHANGELOG.md) with the pull request number. A typical entry looks as follows.
94
+
95
+ ```
96
+ * [#123](https://github.com/justfalter/unbound-ruby/pull/123): Reticulated splines - [@contributor](https://github.com/contributor).
97
+ ```
98
+
99
+ Amend your previous commit and force push the changes.
100
+
101
+ ```
102
+ git commit --amend
103
+ git push origin my-feature-branch -f
104
+ ```
105
+
106
+ #### Check on Your Pull Request
107
+
108
+ Go back to your pull request after a few minutes and see whether it passed muster with Travis-CI. Everything should look green, otherwise fix issues and amend your commit as described above.
109
+
110
+ #### Be Patient
111
+
112
+ It's likely that your change will not be merged and that the nitpicky maintainers will ask you to do more, or fix seemingly benign problems. Hang on there!
113
+
114
+ #### Thank You
115
+
116
+ Please do know that we really appreciate and value your time and work. We love you, really.
data/Gemfile CHANGED
@@ -8,7 +8,8 @@ group :development do
8
8
  end
9
9
 
10
10
  group :test do
11
- gem "rspec"
11
+ gem "rspec", "~> 3.0"
12
+ gem "rspec-its"
12
13
  gem "simplecov"
13
14
  gem "rake"
14
15
  end
data/Rakefile CHANGED
@@ -26,7 +26,7 @@ else
26
26
  Dir.glob("examples/*") +
27
27
  Dir.glob("spec/{*.rb}") +
28
28
  Dir.glob("spec/conf/{*.conf}") +
29
- %w(LICENSE.txt Gemfile README.md Rakefile VERSION)
29
+ %w(CONTRIBUTING.md CHANGELOG.md LICENSE.txt Gemfile README.md Rakefile VERSION)
30
30
 
31
31
  end
32
32
  Jeweler::RubygemsDotOrgTasks.new
@@ -41,3 +41,5 @@ else
41
41
  spec.pattern = FileList['spec/**/*_spec.rb']
42
42
  end
43
43
  end
44
+
45
+ task :default => [:spec]
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.0.0
1
+ 2.1.0
@@ -87,6 +87,20 @@ module Unbound
87
87
  Unbound::Bindings.ub_fd(@ub_ctx)
88
88
  end
89
89
 
90
+ def resolve(name, rrtype=1, rrclass=1)
91
+ check_closed!
92
+ result_ptr = FFI::MemoryPointer.new :pointer
93
+ raise_if_error!(
94
+ Unbound::Bindings.ub_resolve(
95
+ @ub_ctx, name, rrtype, rrclass, result_ptr))
96
+ ptr = result_ptr.get_pointer(0)
97
+ begin
98
+ Unbound::Result.new(ptr).to_resolv
99
+ ensure
100
+ Unbound::Bindings.ub_resolve_free ptr
101
+ end
102
+ end
103
+
90
104
  def resolve_async(name, rrtype, rrclass, callback, private_data = nil)
91
105
  check_closed!
92
106
  async_id_ptr = FFI::MemoryPointer.new :int
@@ -10,25 +10,25 @@ describe Unbound::Context do
10
10
  end
11
11
 
12
12
  subject { @ctx }
13
- its(:raise_on_noid?) { should be_false }
13
+ its(:raise_on_noid?) { should eq false }
14
14
 
15
15
 
16
16
  it "should let me indicate that it should raise an error if the error code is :noid" do
17
17
  @ctx.raise_on_noid = true
18
- expect(@ctx.raise_on_noid?).to be_true
18
+ expect(@ctx.raise_on_noid?).to eq true
19
19
  end
20
20
 
21
21
  describe "#closed?" do
22
22
  it "should indicate whether the context is closed or not" do
23
- expect(@ctx.closed?).to be_false
23
+ expect(@ctx.closed?).to eq false
24
24
  @ctx.close
25
- expect(@ctx.closed?).to be_true
25
+ expect(@ctx.closed?).to eq true
26
26
  end
27
27
  end
28
28
 
29
29
  describe "#close" do
30
30
  it "should delete the underlying context" do
31
- Unbound::Bindings.should_receive(:ub_ctx_delete)
31
+ expect(Unbound::Bindings).to receive(:ub_ctx_delete)
32
32
  @ctx.close
33
33
  end
34
34
 
@@ -70,6 +70,24 @@ describe Unbound::Context do
70
70
  end
71
71
  end
72
72
 
73
+
74
+ context "an synchronous name resolution method" do
75
+ # expects:
76
+ # @ctx
77
+ describe 'existing zone' do
78
+ before :each do
79
+ @ctx.load_config(UnboundHelper.config_file("local_zone.conf"))
80
+ end
81
+ subject{ @ctx.resolve("mycomputer.local", 1, 1) }
82
+ it "should have the proper answer" do
83
+ expect(subject.answer.length).to be(1)
84
+ answer = subject.answer[0]
85
+ expect(answer[0].to_s).to eq("mycomputer.local")
86
+ expect(answer[2].address.to_s).to eq("192.0.2.51")
87
+ end
88
+ end
89
+ end
90
+
73
91
  shared_examples_for "an asynchronous name resolution method" do
74
92
  # expects:
75
93
  # @processing_proc = A Proc
@@ -126,14 +144,14 @@ describe Unbound::Context do
126
144
 
127
145
  it "should raise an APIError when canceling a non-existent query" do
128
146
  @ctx.raise_on_noid = true
129
- expect(@ctx.raise_on_noid?).to be_true
147
+ expect(@ctx.raise_on_noid?).to eq true
130
148
  expect(lambda do
131
149
  @ctx.cancel_async_query(@async_id + 1)
132
150
  end).to raise_error(Unbound::APIError)
133
151
  end
134
152
 
135
153
  it "#raise_on_noid=false should raise an APIError when canceling a non-existent query" do
136
- expect(@ctx.raise_on_noid?).to be_false
154
+ expect(@ctx.raise_on_noid?).to eq false
137
155
  expect(@ctx.cancel_async_query(@async_id + 1)).to eq(:noid)
138
156
  end
139
157
  end
@@ -149,7 +167,7 @@ describe Unbound::Context do
149
167
  end
150
168
 
151
169
  it "should not be set to autoclose" do
152
- expect(@ctx.io.autoclose?).to be_false
170
+ expect(@ctx.io.autoclose?).to eq false
153
171
  end
154
172
 
155
173
  it "should not autoclose when garbage collection occurs" do
@@ -16,20 +16,20 @@ describe Unbound::Query do
16
16
 
17
17
  describe "#finished?" do
18
18
  it "should be false by default" do
19
- expect(@query.finished?).to be_false
19
+ expect(@query.finished?).to eq false
20
20
  end
21
21
  it "should be true after #cancel! is called" do
22
22
  @query.cancel!
23
- expect(@query.finished?).to be_true
23
+ expect(@query.finished?).to eq true
24
24
  end
25
25
  it "should be true after #error! is called" do
26
26
  @query.error!(1234)
27
- expect(@query.finished?).to be_true
27
+ expect(@query.finished?).to eq true
28
28
  end
29
29
  it "should be true after #answer! is called" do
30
30
  result = double("Result")
31
31
  @query.answer!(result)
32
- expect(@query.finished?).to be_true
32
+ expect(@query.finished?).to eq true
33
33
  end
34
34
  end
35
35
 
@@ -64,11 +64,11 @@ describe Unbound::Query do
64
64
 
65
65
  describe "#started?" do
66
66
  it "should be false by default" do
67
- expect(@query.started?).to be_false
67
+ expect(@query.started?).to eq false
68
68
  end
69
69
  it "should be true after start! is called" do
70
70
  @query.start!(1234)
71
- expect(@query.started?).to be_true
71
+ expect(@query.started?).to eq true
72
72
  end
73
73
  end
74
74
 
@@ -78,33 +78,33 @@ describe Unbound::Resolver do
78
78
 
79
79
  describe "#outstanding_queries?" do
80
80
  it "should be false if there are no outstanding queries" do
81
- expect(@resolver.outstanding_queries?).to be_false
81
+ expect(@resolver.outstanding_queries?).to eq false
82
82
  end
83
83
 
84
84
  it "should be true if there are any outstanding queries" do
85
85
  @resolver.send_query(query)
86
- expect(@resolver.outstanding_queries?).to be_true
86
+ expect(@resolver.outstanding_queries?).to eq true
87
87
  end
88
88
  end
89
89
 
90
90
  describe "#closed?" do
91
91
  it "should not be closed by default" do
92
- expect(@resolver.closed?).to be_false
92
+ expect(@resolver.closed?).to eq false
93
93
  end
94
94
  it "should be closed after calling #close" do
95
95
  @resolver.close
96
- expect(@resolver.closed?).to be_true
96
+ expect(@resolver.closed?).to eq true
97
97
  end
98
98
  end
99
99
 
100
100
  describe "#close" do
101
101
  it "should call #cancel_all" do
102
- @resolver.should_receive(:cancel_all).and_call_original
102
+ expect(@resolver).to receive(:cancel_all).and_call_original
103
103
  @resolver.close
104
104
  end
105
105
 
106
106
  it "should close the context" do
107
- @context.should_receive(:close).and_call_original
107
+ expect(@resolver).to receive(:close).and_call_original
108
108
  @resolver.close
109
109
  end
110
110
  end
@@ -2,6 +2,8 @@ require 'rubygems'
2
2
  require 'bundler'
3
3
  Bundler.setup :default, :test
4
4
 
5
+ require 'rspec/its'
6
+
5
7
  module UnboundHelper
6
8
  require 'pathname'
7
9
  SPEC_ROOT = Pathname.new(__FILE__).dirname.expand_path
metadata CHANGED
@@ -1,41 +1,41 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: unbound
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Ryan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-12 00:00:00.000000000 Z
11
+ date: 2014-07-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '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
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: jeweler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  description: Unbound DNS resolver bindings for Ruby
@@ -46,6 +46,8 @@ extra_rdoc_files:
46
46
  - LICENSE.txt
47
47
  - README.md
48
48
  files:
49
+ - CHANGELOG.md
50
+ - CONTRIBUTING.md
49
51
  - Gemfile
50
52
  - LICENSE.txt
51
53
  - README.md
@@ -81,17 +83,17 @@ require_paths:
81
83
  - lib
82
84
  required_ruby_version: !ruby/object:Gem::Requirement
83
85
  requirements:
84
- - - '>='
86
+ - - ">="
85
87
  - !ruby/object:Gem::Version
86
88
  version: '0'
87
89
  required_rubygems_version: !ruby/object:Gem::Requirement
88
90
  requirements:
89
- - - '>='
91
+ - - ">="
90
92
  - !ruby/object:Gem::Version
91
93
  version: '0'
92
94
  requirements: []
93
95
  rubyforge_project:
94
- rubygems_version: 2.0.14
96
+ rubygems_version: 2.2.0
95
97
  signing_key:
96
98
  specification_version: 4
97
99
  summary: Unbound DNS resolver bindings for Ruby