diff --git a/lib/fluent/plugin_helper/socket_option.rb b/lib/fluent/plugin_helper/socket_option.rb index 0b1c906fbb..944ee5456e 100644 --- a/lib/fluent/plugin_helper/socket_option.rb +++ b/lib/fluent/plugin_helper/socket_option.rb @@ -38,8 +38,8 @@ def socket_option_validate!(protocol, resolve_name: nil, linger_timeout: nil, re end end if send_keepalive_packet - if protocol != :tcp - raise ArgumentError, "BUG: send_keepalive_packet is available for tcp" + if protocol != :tcp && protocol != :tls + raise ArgumentError, "BUG: send_keepalive_packet is available for tcp/tls" end end end diff --git a/test/plugin_helper/test_server.rb b/test/plugin_helper/test_server.rb index bf6d0c1df0..f07dd9d030 100644 --- a/test/plugin_helper/test_server.rb +++ b/test/plugin_helper/test_server.rb @@ -234,7 +234,13 @@ class Dummy < Fluent::Plugin::TestBase assert_raise(ArgumentError.new("BUG: backlog is available for tcp/tls")) do @d.__send__(m, :myserver, PORT, proto: proto, backlog: 500){|x| x } end - assert_raise(ArgumentError.new("BUG: send_keepalive_packet is available for tcp")) do + end + + data( + 'server_create udp' => [:server_create, :udp], + ) + test 'raise error if tcp/tls send_keepalive_packet option is specified for udp' do |(m, proto)| + assert_raise(ArgumentError.new("BUG: send_keepalive_packet is available for tcp/tls")) do @d.__send__(m, :myserver, PORT, proto: proto, send_keepalive_packet: true){|x| x } end end @@ -1300,7 +1306,7 @@ def assert_certificate(cert, expected_extensions) test 'can accept all keyword arguments valid for tcp/tls server' do assert_nothing_raised do - @d.server_create_tls(:s, PORT, bind: '127.0.0.1', shared: false, resolve_name: true, linger_timeout: 10, backlog: 500, tls_options: @tls_options) do |data, conn| + @d.server_create_tls(:s, PORT, bind: '127.0.0.1', shared: false, resolve_name: true, linger_timeout: 10, backlog: 500, tls_options: @tls_options, send_keepalive_packet: true) do |data, conn| # ... end end