logstash-filter-dns 3.0.7 → 3.0.8

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
  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