mirror of
https://github.com/elastic/logstash.git
synced 2025-04-24 22:57:16 -04:00
fixing LOGSTASH-400
This commit is contained in:
parent
4ca820d719
commit
d47c1dc98f
3 changed files with 23 additions and 18 deletions
|
@ -73,15 +73,8 @@ class LogStash::Inputs::ZeroMQ < LogStash::Inputs::Base
|
||||||
error_check(@zsocket.setsockopt(ZMQ::LINGER, 1),
|
error_check(@zsocket.setsockopt(ZMQ::LINGER, 1),
|
||||||
"while setting ZMQ::LINGER == 1)")
|
"while setting ZMQ::LINGER == 1)")
|
||||||
|
|
||||||
# TODO (lusis)
|
|
||||||
# wireup sockopt hash
|
|
||||||
if @sockopt
|
if @sockopt
|
||||||
@sockopt.each do |opt,value|
|
setopts(@zsocket, @sockopt)
|
||||||
sockopt = opt.split('::')[1]
|
|
||||||
option = ZMQ.const_defined?(sockopt) ? ZMQ.const_get(sockopt) : ZMQ.const_missing(sockopt)
|
|
||||||
error_check(@zsocket.setsockopt(option, value),
|
|
||||||
"while setting #{opt} == 1)")
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
@address.each do |addr|
|
@address.each do |addr|
|
||||||
|
|
|
@ -73,16 +73,8 @@ class LogStash::Outputs::ZeroMQ < LogStash::Outputs::Base
|
||||||
error_check(@zsocket.setsockopt(ZMQ::LINGER, 1),
|
error_check(@zsocket.setsockopt(ZMQ::LINGER, 1),
|
||||||
"while setting ZMQ::LINGER == 1)")
|
"while setting ZMQ::LINGER == 1)")
|
||||||
|
|
||||||
# TODO (lusis)
|
|
||||||
# wireup sockopt hash better
|
|
||||||
# making assumptions on split
|
|
||||||
if @sockopt
|
if @sockopt
|
||||||
@sockopt.each do |opt,value|
|
setopts(@zsocket, @sockopt)
|
||||||
sockopt = opt.split('::')[1]
|
|
||||||
option = ZMQ.const_defined?(sockopt) ? ZMQ.const_get(sockopt) : ZMQ.const_missing(sockopt)
|
|
||||||
error_check(@zsocket.setsockopt(option, value),
|
|
||||||
"while setting #{opt} == 1)")
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
@address.each do |addr|
|
@address.each do |addr|
|
||||||
|
|
|
@ -3,6 +3,9 @@ require "logstash/namespace"
|
||||||
|
|
||||||
module LogStash::Util::ZeroMQ
|
module LogStash::Util::ZeroMQ
|
||||||
CONTEXT = ZMQ::Context.new
|
CONTEXT = ZMQ::Context.new
|
||||||
|
# LOGSTASH-400
|
||||||
|
# see https://github.com/chuckremes/ffi-rzmq/blob/master/lib/ffi-rzmq/socket.rb#L93-117
|
||||||
|
STRING_OPTS = %w{IDENTITY SUBSCRIBE UNSUBSCRIBE}
|
||||||
|
|
||||||
def context
|
def context
|
||||||
CONTEXT
|
CONTEXT
|
||||||
|
@ -23,4 +26,21 @@ module LogStash::Util::ZeroMQ
|
||||||
raise "ZeroMQ Error while #{doing}"
|
raise "ZeroMQ Error while #{doing}"
|
||||||
end
|
end
|
||||||
end # def error_check
|
end # def error_check
|
||||||
|
|
||||||
|
def setopts(socket, options)
|
||||||
|
options.each do |opt,value|
|
||||||
|
sockopt = opt.split('::')[1]
|
||||||
|
option = ZMQ.const_defined?(sockopt) ? ZMQ.const_get(sockopt) : ZMQ.const_missing(sockopt)
|
||||||
|
unless STRING_OPTS.include?(sockopt)
|
||||||
|
begin
|
||||||
|
Float(value)
|
||||||
|
value = value.to_i
|
||||||
|
rescue ArgumentError
|
||||||
|
raise "#{sockopt} requires a numeric value. #{value} is not numeric"
|
||||||
|
end
|
||||||
|
end # end unless
|
||||||
|
error_check(socket.setsockopt(option, value),
|
||||||
|
"while setting #{opt} == #{value}")
|
||||||
|
end # end each
|
||||||
|
end # end setopts
|
||||||
end # module LogStash::Util::ZeroMQ
|
end # module LogStash::Util::ZeroMQ
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue