aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/webrick/config.rb12
-rw-r--r--test/webrick/test_config.rb17
2 files changed, 26 insertions, 3 deletions
diff --git a/lib/webrick/config.rb b/lib/webrick/config.rb
index 98c9701633..af4b561534 100644
--- a/lib/webrick/config.rb
+++ b/lib/webrick/config.rb
@@ -20,8 +20,14 @@ module WEBrick
LIBDIR = File::dirname(__FILE__) # :nodoc:
# for GenericServer
- General = {
- :ServerName => Utils::getservername,
+ General = Hash.new { |hash, key|
+ case key
+ when :ServerName
+ hash[key] = Utils.getservername
+ else
+ nil
+ end
+ }.update(
:BindAddress => nil, # "0.0.0.0" or "::" or nil
:Port => nil, # users MUST specify this!!
:MaxClients => 100, # maximum number of the concurrent connections
@@ -36,7 +42,7 @@ module WEBrick
:AcceptCallback => nil,
:DoNotReverseLookup => true,
:ShutdownSocketWithoutClose => false,
- }
+ )
# for HTTPServer, HTTPRequest, HTTPResponse ...
HTTP = General.dup.update(
diff --git a/test/webrick/test_config.rb b/test/webrick/test_config.rb
new file mode 100644
index 0000000000..a54a667452
--- /dev/null
+++ b/test/webrick/test_config.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: false
+require "test/unit"
+require "webrick/config"
+
+class TestWEBrickConfig < Test::Unit::TestCase
+ def test_server_name_default
+ config = WEBrick::Config::General.dup
+ assert_equal(false, config.key?(:ServerName))
+ assert_equal(WEBrick::Utils.getservername, config[:ServerName])
+ assert_equal(true, config.key?(:ServerName))
+ end
+
+ def test_server_name_set_nil
+ config = WEBrick::Config::General.dup.update(ServerName: nil)
+ assert_equal(nil, config[:ServerName])
+ end
+end