logstash-filter-dns 3.0.11 → 3.0.12
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/lib/logstash/filters/dns.rb +17 -1
- data/lib/logstash/filters/{resolv_patch.rb → dns/resolv_patch.rb} +29 -5
- data/logstash-filter-dns.gemspec +1 -1
- data/spec/filters/dns_spec.rb +8 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2fecd0c2688b23a9c5da63dc4ac117c8f4e76868772fdf70ac0ec0372b8898e5
|
4
|
+
data.tar.gz: b57f5fe1078cafdd5581d3b2b4f2c00ddb77d6880648b6f83b28d0ed36acb86f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 95fb7b4dc6a26a12aee442d2f191d040090ee9b705acf6e5b07d4aca927d406a3ac2997306a00424d9e5083fbe26459bcfb2c76df10a9b22fb085a1756787c7a
|
7
|
+
data.tar.gz: 9efb520db0550bec7401aee447d4f283c10884110020ea44fb873fec5f58c6a36fbb09cfeaa5dcc93283dbc92ef78a277e2c8d01c76d7853756883fcbdd63af7
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
## 3.0.12
|
2
|
+
- Fixed issue where unqualified domains would fail to resolve when running this plugin with Logstash 5.x [#48](https://github.com/logstash-plugins/logstash-filter-dns/pull/48)
|
3
|
+
- Fixed crash that could occur when encountering certain classes of invalid inputs [#49](https://github.com/logstash-plugins/logstash-filter-dns/pull/49)
|
4
|
+
|
1
5
|
## 3.0.11
|
2
6
|
- Fixed JRuby resolver bug for versions prior to 9.1.16.0 [#45](https://github.com/logstash-plugins/logstash-filter-dns/pull/45)
|
3
7
|
|
data/lib/logstash/filters/dns.rb
CHANGED
@@ -4,7 +4,7 @@ require "logstash/namespace"
|
|
4
4
|
require "lru_redux"
|
5
5
|
require "resolv"
|
6
6
|
require "timeout"
|
7
|
-
require "logstash/filters/resolv_patch"
|
7
|
+
require "logstash/filters/dns/resolv_patch"
|
8
8
|
|
9
9
|
java_import 'java.net.IDN'
|
10
10
|
|
@@ -166,6 +166,14 @@ class LogStash::Filters::DNS < LogStash::Filters::Base
|
|
166
166
|
@logger.error("DNS: Encountered SocketError.",
|
167
167
|
:field => field, :value => raw, :message => e.message)
|
168
168
|
return
|
169
|
+
rescue Java::JavaLang::IllegalArgumentException => e
|
170
|
+
@logger.error("DNS: Unable to parse address.",
|
171
|
+
:field => field, :value => raw, :message => e.message)
|
172
|
+
return
|
173
|
+
rescue => e
|
174
|
+
@logger.error("DNS: Unexpected Error.",
|
175
|
+
:field => field, :value => raw, :message => e.message)
|
176
|
+
return
|
169
177
|
end
|
170
178
|
|
171
179
|
if @action == "replace"
|
@@ -238,6 +246,14 @@ class LogStash::Filters::DNS < LogStash::Filters::Base
|
|
238
246
|
@logger.error("DNS: Encountered SocketError.",
|
239
247
|
:field => field, :value => raw, :message => e.message)
|
240
248
|
return
|
249
|
+
rescue Java::JavaLang::IllegalArgumentException => e
|
250
|
+
@logger.error("DNS: Unable to parse address.",
|
251
|
+
:field => field, :value => raw, :message => e.message)
|
252
|
+
return
|
253
|
+
rescue => e
|
254
|
+
@logger.error("DNS: Unexpected Error.",
|
255
|
+
:field => field, :value => raw, :message => e.message)
|
256
|
+
return
|
241
257
|
end
|
242
258
|
|
243
259
|
if @action == "replace"
|
@@ -1,5 +1,7 @@
|
|
1
1
|
require "resolv"
|
2
2
|
|
3
|
+
jruby_gem_version = Gem::Version.new(JRUBY_VERSION)
|
4
|
+
|
3
5
|
# ref: https://github.com/logstash-plugins/logstash-filter-dns/issues/40
|
4
6
|
#
|
5
7
|
# JRuby 9k versions prior to 9.1.16.0 have a bug which crashes IP address
|
@@ -10,10 +12,7 @@ require "resolv"
|
|
10
12
|
#
|
11
13
|
# The code below is copied from JRuby 9.1.16.0 resolv.rb:
|
12
14
|
# https://github.com/jruby/jruby/blob/9.1.16.0/lib/ruby/stdlib/resolv.rb#L775-L784
|
13
|
-
|
14
|
-
JRUBY_GEM_VERSION = Gem::Version.new(JRUBY_VERSION)
|
15
|
-
|
16
|
-
if JRUBY_GEM_VERSION >= Gem::Version.new("9.1.13.0") && JRUBY_GEM_VERSION < Gem::Version.new("9.1.16.0")
|
15
|
+
if jruby_gem_version >= Gem::Version.new("9.1.13.0") && jruby_gem_version < Gem::Version.new("9.1.16.0")
|
17
16
|
class Resolv
|
18
17
|
class DNS
|
19
18
|
class Requester
|
@@ -32,4 +31,29 @@ if JRUBY_GEM_VERSION >= Gem::Version.new("9.1.13.0") && JRUBY_GEM_VERSION < Gem:
|
|
32
31
|
end
|
33
32
|
end
|
34
33
|
end
|
35
|
-
end
|
34
|
+
end
|
35
|
+
|
36
|
+
# JRuby 1.x ships with a Ruby stdlib that has a bug in its resolv implementation
|
37
|
+
# in which it fails to correctly canonicalise unqualified or underqualified
|
38
|
+
# domains (e.g., domain names with fewer than the configured ndots, which defaults
|
39
|
+
# to 1).
|
40
|
+
#
|
41
|
+
# See: https://bugs.ruby-lang.org/issues/10412
|
42
|
+
#
|
43
|
+
# Conditionally apply the patch to the method definition by wrapping it at runtime.
|
44
|
+
if jruby_gem_version < Gem::Version.new("9.0")
|
45
|
+
class Resolv::DNS
|
46
|
+
class Config
|
47
|
+
alias generate_candidates_without_toplevel generate_candidates
|
48
|
+
def generate_candidates_with_toplevel(name)
|
49
|
+
candidates = generate_candidates_without_toplevel(name)
|
50
|
+
fname = Name.create("#{name}.")
|
51
|
+
if !candidates.include?(fname)
|
52
|
+
candidates << fname
|
53
|
+
end
|
54
|
+
candidates
|
55
|
+
end
|
56
|
+
alias generate_candidates generate_candidates_with_toplevel
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
data/logstash-filter-dns.gemspec
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
|
3
3
|
s.name = 'logstash-filter-dns'
|
4
|
-
s.version = '3.0.
|
4
|
+
s.version = '3.0.12'
|
5
5
|
s.licenses = ['Apache License (2.0)']
|
6
6
|
s.summary = "Performs a standard or reverse DNS lookup"
|
7
7
|
s.description = "This gem is a Logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/logstash-plugin install gemname. This gem is not a stand-alone program"
|
data/spec/filters/dns_spec.rb
CHANGED
@@ -389,6 +389,14 @@ describe LogStash::Filters::DNS do
|
|
389
389
|
end
|
390
390
|
end
|
391
391
|
|
392
|
+
context 'with a label too long' do
|
393
|
+
let(:host) { "#{'0' * 64}.com" }
|
394
|
+
|
395
|
+
it 'should not raise' do
|
396
|
+
subject.filter(event)
|
397
|
+
end
|
398
|
+
end
|
399
|
+
|
392
400
|
context "when failing temporarily" do
|
393
401
|
before(:each) do
|
394
402
|
allow(subject).to receive(:getaddress) do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logstash-filter-dns
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Elastic
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-02-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
@@ -74,7 +74,7 @@ files:
|
|
74
74
|
- README.md
|
75
75
|
- docs/index.asciidoc
|
76
76
|
- lib/logstash/filters/dns.rb
|
77
|
-
- lib/logstash/filters/resolv_patch.rb
|
77
|
+
- lib/logstash/filters/dns/resolv_patch.rb
|
78
78
|
- logstash-filter-dns.gemspec
|
79
79
|
- spec/filters/dns_spec.rb
|
80
80
|
- spec/fixtures/hosts
|