logstash-input-tcp 6.0.6-java → 6.0.7-java

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: 4dbdf0afaf0e9956001477eff23f9dcc7bdeaa82bffdb696ab66657000802662
4
- data.tar.gz: 94b90ca185e259f016ed8a40b8303306ffd00bc9f50256db510cd29a448510f7
3
+ metadata.gz: '007417778a970ec7915f1f5bd2cf4e01b08c7682b361b208d44309f04d9ed29e'
4
+ data.tar.gz: f2b63ea306e7ecf323663d69f05780096c2ee76c8fbfbe2cac357bc90c3b744e
5
5
  SHA512:
6
- metadata.gz: 8d2572a98f74bf028d2c2ac5bcfeddd651090fb96af903faec94dea3c8ac373f69bfb823fdd9c14e0b5f2711f1e05e7c8b8203e10d3f2ca004217f176df37f37
7
- data.tar.gz: b9856bbd395f4080ceaa8029bcb4f348704c3f65d82c5564ee1e7130b40f3f32a931c9939f003cac81e244490544463e6139cf7d8800ba2d80cf6b902aba3d07
6
+ metadata.gz: 522cd25c63ec98067a9b52efb10a3f55b8ab728ced841f96f812c9c9262198584efe0aee5c95125ff9b513d9147dfd351a3cf2648ce43b87fc948ba517f5c952
7
+ data.tar.gz: d03ef7cb60c5ee53dab6fc109b85aa3a2e3d5ebae87ce35ba99c2dad9a0b9e5085d797a6a4c9f8dea4312e4c1e4f0603fc85a51a4749e1ef052621bb0be1bb1f
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## 6.0.7
2
+ - Fix: reduce error logging (to info level) on connection resets [#168](https://github.com/logstash-plugins/logstash-input-tcp/pull/168)
3
+ - Refactor: only patch Socket classes once (on first input)
4
+ - Refactor: use a proper log4j logger (in Java to avoid surprises when unwrapping `LogStash::Logging::Logger`)
5
+
1
6
  ## 6.0.6
2
7
  - Updated Netty dependencies. Additionally, this release removes the dependency on `tcnative` +
3
8
  `boringssl`, using JVM supplied ciphers instead. This may result in fewer ciphers being available if the JCE
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Logstash Plugin
2
2
 
3
- [![Travis Build Status](https://travis-ci.org/logstash-plugins/logstash-input-tcp.svg)](https://travis-ci.org/logstash-plugins/logstash-input-tcp)
3
+ [![Travis Build Status](https://travis-ci.com/logstash-plugins/logstash-input-tcp.svg)](https://travis-ci.com/logstash-plugins/logstash-input-tcp)
4
4
 
5
5
  This is a plugin for [Logstash](https://github.com/elastic/logstash).
6
6
 
@@ -119,15 +119,21 @@ class LogStash::Inputs::Tcp < LogStash::Inputs::Base
119
119
  PROXY_PORT_FIELD = "proxy_port".freeze
120
120
  SSLSUBJECT_FIELD = "sslsubject".freeze
121
121
 
122
- PLUGIN_GLOBAL_MUTEX = Mutex.new
123
- private_constant :PLUGIN_GLOBAL_MUTEX
122
+ # Monkey patch TCPSocket and SSLSocket to include socket peer
123
+ # @private
124
+ def self.patch_socket_peer!
125
+ unless TCPSocket < ::LogStash::Util::SocketPeer
126
+ TCPSocket.send :include, ::LogStash::Util::SocketPeer
127
+ end
128
+ unless OpenSSL::SSL::SSLSocket < ::LogStash::Util::SocketPeer
129
+ OpenSSL::SSL::SSLSocket.send :include, ::LogStash::Util::SocketPeer
130
+ end
131
+ end
124
132
 
125
133
  def initialize(*args)
126
134
  super(*args)
127
135
 
128
- # monkey patch TCPSocket and SSLSocket to include socket peer
129
- TCPSocket.module_eval{include ::LogStash::Util::SocketPeer}
130
- OpenSSL::SSL::SSLSocket.module_eval{include ::LogStash::Util::SocketPeer}
136
+ self.class.patch_socket_peer!
131
137
 
132
138
  # threadsafe socket bookkeeping
133
139
  @server_socket = nil
@@ -144,22 +150,15 @@ class LogStash::Inputs::Tcp < LogStash::Inputs::Base
144
150
  if server?
145
151
  ssl_context = get_ssl_context(SslOptions)
146
152
 
147
- # RubyObject#to_java is not threadsafe, and we cannot guarantee
148
- # that ours is the only reference to the underlying logger, which
149
- # is memoized at a class level.
150
- log4j_logger = PLUGIN_GLOBAL_MUTEX.synchronize do
151
- @logger.to_java(org.apache.logging.log4j.Logger)
152
- end
153
153
 
154
- @loop = InputLoop.new(@host, @port, DecoderImpl.new(@codec, self), @tcp_keep_alive,
155
- ssl_context, log4j_logger)
154
+ @loop = InputLoop.new(@host, @port, DecoderImpl.new(@codec, self), @tcp_keep_alive, ssl_context)
156
155
  end
157
156
  end
158
157
 
159
158
  def run(output_queue)
160
159
  @output_queue = output_queue
161
160
  if server?
162
- @logger.info("Starting tcp input listener", :address => "#{@host}:#{@port}", :ssl_enable => "#{@ssl_enable}")
161
+ @logger.info("Starting tcp input listener", :address => "#{@host}:#{@port}", :ssl_enable => @ssl_enable)
163
162
  @loop.run
164
163
  else
165
164
  run_client()
@@ -252,12 +251,10 @@ class LogStash::Inputs::Tcp < LogStash::Inputs::Base
252
251
  rescue Errno::ECONNRESET
253
252
  @logger.debug? && @logger.debug("Connection reset by peer", :client => peer)
254
253
  rescue OpenSSL::SSL::SSLError => e
255
- # Fixes issue #23
256
- @logger.error("SSL Error", :exception => e, :backtrace => e.backtrace)
257
- socket.close rescue nil
254
+ @logger.error("SSL error", :client => peer, :message => e.message, :exception => e.class, :backtrace => e.backtrace)
258
255
  rescue => e
259
256
  # if plugin is stopping, don't bother logging it as an error
260
- !stop? && @logger.error("An error occurred. Closing connection", :client => peer, :exception => e, :backtrace => e.backtrace)
257
+ !stop? && @logger.error("An error occurred, closing connection", :client => peer, :message => e.message, :exception => e.class, :backtrace => e.backtrace)
261
258
  ensure
262
259
  # catch all rescue nil on close to discard any close errors or invalid socket
263
260
  socket.close rescue nil
@@ -293,7 +290,7 @@ class LogStash::Inputs::Tcp < LogStash::Inputs::Base
293
290
  @ssl_context.verify_mode = OpenSSL::SSL::VERIFY_PEER|OpenSSL::SSL::VERIFY_FAIL_IF_NO_PEER_CERT
294
291
  end
295
292
  rescue => e
296
- @logger.error("Could not inititalize SSL context", :exception => e, :backtrace => e.backtrace)
293
+ @logger.error("Could not inititalize SSL context", :message => e.message, :exception => e.class, :backtrace => e.backtrace)
297
294
  raise e
298
295
  end
299
296
 
@@ -38,8 +38,8 @@ class DecoderImpl
38
38
  pp_info = pp_hdr.split(/\s/)
39
39
  # PROXY proto clientip proxyip clientport proxyport
40
40
  if pp_info[0] != "PROXY"
41
- @tcp.logger.error("invalid proxy protocol header label", :hdr => pp_hdr)
42
- raise IOError
41
+ @tcp.logger.error("Invalid proxy protocol header label", :header => pp_hdr)
42
+ raise IOError.new("Invalid proxy protocol header label #{pp_hdr.inspect}")
43
43
  else
44
44
  @proxy_address = pp_info[3]
45
45
  @proxy_port = pp_info[5]
data/version CHANGED
@@ -1 +1 @@
1
- 6.0.6
1
+ 6.0.7
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-input-tcp
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.0.6
4
+ version: 6.0.7
5
5
  platform: java
6
6
  authors:
7
7
  - Elastic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-06-03 00:00:00.000000000 Z
11
+ date: 2021-02-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -178,7 +178,7 @@ files:
178
178
  - logstash-input-tcp.gemspec
179
179
  - spec/inputs/tcp_spec.rb
180
180
  - spec/spec_helper.rb
181
- - vendor/jar-dependencies/org/logstash/inputs/logstash-input-tcp/6.0.6/logstash-input-tcp-6.0.6.jar
181
+ - vendor/jar-dependencies/org/logstash/inputs/logstash-input-tcp/6.0.7/logstash-input-tcp-6.0.7.jar
182
182
  - version
183
183
  homepage: http://www.elastic.co/guide/en/logstash/current/index.html
184
184
  licenses: