Skip to content

Commit 564c4eb

Browse files
michaelweisersuyograo
authored andcommitted
Sync diagnostic messages of tcp input and output
1 parent 750e393 commit 564c4eb

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

lib/logstash/outputs/tcp.rb

+16-2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
require "logstash/outputs/base"
33
require "logstash/namespace"
44
require "thread"
5+
require "logstash/util/socket_peer"
56

67
# Write events over a TCP socket.
78
#
@@ -65,12 +66,22 @@ def register
6566
workers_not_supported
6667

6768
@logger.info("Starting tcp output listener", :address => "#{@host}:#{@port}")
68-
@server_socket = TCPServer.new(@host, @port)
69+
begin
70+
@server_socket = TCPServer.new(@host, @port)
71+
rescue Errno::EADDRINUSE
72+
@logger.error("Could not start TCP server: Address in use",
73+
:host => @host, :port => @port)
74+
raise
75+
end
6976
@client_threads = []
7077

7178
@accept_thread = Thread.new(@server_socket) do |server_socket|
7279
loop do
7380
Thread.start(server_socket.accept) do |client_socket|
81+
# monkeypatch a 'peer' method onto the socket.
82+
client_socket.instance_eval { class << self; include ::LogStash::Util::SocketPeer end }
83+
@logger.debug("Accepted connection", :client => client_socket.peer,
84+
:server => "#{@host}:#{@port}")
7485
client = Client.new(client_socket, @logger)
7586
Thread.current[:client] = client
7687
@client_threads << Thread.current
@@ -113,7 +124,10 @@ def register
113124
private
114125
def connect
115126
Stud::try do
116-
return TCPSocket.new(@host, @port)
127+
client_socket = TCPSocket.new(@host, @port)
128+
client_socket.instance_eval { class << self; include ::LogStash::Util::SocketPeer end }
129+
@logger.debug("Opened connection", :client => "#{client_socket.peer}")
130+
return client_socket
117131
end
118132
end # def connect
119133

0 commit comments

Comments
 (0)