logstash-filter-dns 3.0.7 → 3.0.8

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
  SHA256:
3
- metadata.gz: f70cd3ab7af0b1558159896ccda3e5b24b827fc3c56e0c5ad6524bf01ee1edb9
4
- data.tar.gz: 7c565bc456246cf07fd94a824235f3d505cae4e1ae3a9a6ab98a2b8f2ca4d9c2
3
+ metadata.gz: 92de1abd5a69194705cf89576e76e5fb5c592972b295eed707af3ae5e45a8ed8
4
+ data.tar.gz: 134d58100b23b1847ae0d72ffbbc2a77662a3dca46365530c1a1aae26e764ed6
5
5
  SHA512:
6
- metadata.gz: d623329ec59b4a0a96878e7f6bc6aa5353e14acd2ecee2b486967963b8da99255adb922f015cdc5c01fbd08645f5798895026a9e93b8091d6a4e1ea380031af4
7
- data.tar.gz: 291ab5d248faba4610d61cdd0b5e0f42194fc88b99743d22e817d7c9481e614f2ba8554fbddcc6bed87094ea9c9cb80030883b49dcef5bb288146b5db79e1a2a
6
+ metadata.gz: a0aaa47fd116162311bbf714477e88d2c321c0df538fc95b783b5bd9089c2a6a9ef9c586e2ec26ff7ae0a405e4b54565a1115bdcadd349f2041ae956fe69f922
7
+ data.tar.gz: c8010e5d0f90917b2b6edf95f4e70974eb716c21088dcd9b3b269290b14ce91bedde3588b4e6768d7f2ea836a709bb4bbb10e7424e8e357e0568c5cc7a229312
data/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ ## 3.0.8
2
+ - Fix bug where forward lookups would not cache timeout errors
3
+
1
4
  ## 3.0.7
2
5
  - Update gemspec summary
3
6
 
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2012–2016 Elasticsearch <http://www.elastic.co>
1
+ Copyright (c) 2012-2018 Elasticsearch <http://www.elastic.co>
2
2
 
3
3
  Licensed under the Apache License, Version 2.0 (the "License");
4
4
  you may not use this file except in compliance with the License.
@@ -69,6 +69,9 @@ class LogStash::Filters::DNS < LogStash::Filters::Base
69
69
  # Use custom hosts file(s). For example: `["/var/db/my_custom_hosts"]`
70
70
  config :hostsfile, :validate => :array
71
71
 
72
+ attr_reader :hit_cache
73
+ attr_reader :failed_cache
74
+
72
75
  public
73
76
  def register
74
77
  if @nameserver.nil? && @hostsfile.nil?
@@ -90,7 +93,6 @@ class LogStash::Filters::DNS < LogStash::Filters::Base
90
93
 
91
94
  public
92
95
  def filter(event)
93
-
94
96
  if @resolve
95
97
  return if resolve(event).nil?
96
98
  end
@@ -150,6 +152,7 @@ class LogStash::Filters::DNS < LogStash::Filters::Base
150
152
  :field => field, :value => raw)
151
153
  return
152
154
  rescue Resolv::ResolvTimeout, Timeout::Error
155
+ @failed_cache[raw] = true if @failed_cache
153
156
  @logger.error("DNS: timeout on resolving the hostname.",
154
157
  :field => field, :value => raw)
155
158
  return
@@ -216,6 +219,7 @@ class LogStash::Filters::DNS < LogStash::Filters::Base
216
219
  :field => field, :value => raw)
217
220
  return
218
221
  rescue Resolv::ResolvTimeout, Timeout::Error
222
+ @failed_cache[raw] = true if @failed_cache
219
223
  @logger.error("DNS: timeout on resolving address.",
220
224
  :field => field, :value => raw)
221
225
  return
@@ -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.7'
4
+ s.version = '3.0.8'
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"
@@ -364,10 +364,11 @@ describe LogStash::Filters::DNS do
364
364
 
365
365
  describe "retries" do
366
366
 
367
+ let(:host) { "unknownhost" }
367
368
  let(:subject) { LogStash::Filters::DNS.new(config) }
368
- let(:event) { LogStash::Event.new("message" => "unkownhost") }
369
+ let(:event) { LogStash::Event.new("message" => host) }
369
370
  let(:max_retries) { 3 }
370
- let(:config) { { "resolve" => ["message"], "max_retries" => max_retries } }
371
+ let(:config) { { "resolve" => ["message"], "max_retries" => max_retries, "failed_cache_size" => 10 } }
371
372
 
372
373
  before(:each) { subject.register }
373
374
 
@@ -380,6 +381,12 @@ describe LogStash::Filters::DNS do
380
381
  expect(subject).to receive(:getaddress).exactly(max_retries+1).times
381
382
  subject.filter(event)
382
383
  end
384
+
385
+ it "should cache the timeout" do
386
+ expect do
387
+ subject.filter(event)
388
+ end.to change { subject.failed_cache[host] }.from(nil).to(true)
389
+ end
383
390
  end
384
391
 
385
392
  context "when failing temporarily" 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.7
4
+ version: 3.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elastic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-11-07 00:00:00.000000000 Z
11
+ date: 2018-03-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -99,7 +99,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
99
99
  version: '0'
100
100
  requirements: []
101
101
  rubyforge_project:
102
- rubygems_version: 2.6.11
102
+ rubygems_version: 2.6.13
103
103
  signing_key:
104
104
  specification_version: 4
105
105
  summary: Performs a standard or reverse DNS lookup