From 5e299b4908204b927b0ccd1d71b976d586a4315a Mon Sep 17 00:00:00 2001 From: Hiroshi Hatake Date: Fri, 18 Jan 2019 12:18:01 +0900 Subject: [PATCH] in_tcp: in_udp: Add section checking. Fix #2266 Signed-off-by: Hiroshi Hatake --- lib/fluent/plugin/in_tcp.rb | 6 +++++- lib/fluent/plugin/in_udp.rb | 6 +++++- test/plugin/test_in_tcp.rb | 6 ++++++ test/plugin/test_in_udp.rb | 6 ++++++ 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/lib/fluent/plugin/in_tcp.rb b/lib/fluent/plugin/in_tcp.rb index a696572b64..8019c54196 100644 --- a/lib/fluent/plugin/in_tcp.rb +++ b/lib/fluent/plugin/in_tcp.rb @@ -41,11 +41,15 @@ class TcpInput < Input def configure(conf) compat_parameters_convert(conf, :parser) + parser_config = conf.elements('parse').first + unless parser_config + raise Fluent::ConfigError, " section is required." + end super @_event_loop_blocking_timeout = @blocking_timeout @source_hostname_key ||= @source_host_key if @source_host_key - @parser = parser_create + @parser = parser_create(conf: parser_config) end def multi_workers_ready? diff --git a/lib/fluent/plugin/in_udp.rb b/lib/fluent/plugin/in_udp.rb index da00849ece..76818c46d5 100644 --- a/lib/fluent/plugin/in_udp.rb +++ b/lib/fluent/plugin/in_udp.rb @@ -47,12 +47,16 @@ class UdpInput < Input def configure(conf) compat_parameters_convert(conf, :parser) + parser_config = conf.elements('parse').first + unless parser_config + raise Fluent::ConfigError, " section is required." + end super @_event_loop_blocking_timeout = @blocking_timeout @source_hostname_key ||= @source_host_key if @source_host_key @message_length_limit = @body_size_limit if @body_size_limit - @parser = parser_create + @parser = parser_create(conf: parser_config) end def multi_workers_ready? diff --git a/test/plugin/test_in_tcp.rb b/test/plugin/test_in_tcp.rb index 1f1afef5b8..d2573272fe 100755 --- a/test/plugin/test_in_tcp.rb +++ b/test/plugin/test_in_tcp.rb @@ -48,6 +48,12 @@ def create_tcp_socket(host, port, &block) assert_equal "\n", d.instance.delimiter end + test ' configure w/o parse section' do + assert_raise(Fluent::ConfigError.new(" section is required.")) { + create_driver(BASE_CONFIG) + } + end + test_case_data = { 'none' => { 'format' => 'none', diff --git a/test/plugin/test_in_udp.rb b/test/plugin/test_in_udp.rb index c982790ba3..e638df92ac 100755 --- a/test/plugin/test_in_udp.rb +++ b/test/plugin/test_in_udp.rb @@ -59,6 +59,12 @@ def create_udp_socket(host, port) assert_equal nil, d.instance.receive_buffer_size end + test ' configure w/o parse section' do + assert_raise(Fluent::ConfigError.new(" section is required.")) { + create_driver(BASE_CONFIG) + } + end + data( 'ipv4' => [CONFIG, '127.0.0.1', :ipv4], 'ipv6' => [IPv6_CONFIG, '::1', :ipv6],