summaryrefslogtreecommitdiff
path: root/lib/webrick
diff options
context:
space:
mode:
Diffstat (limited to 'lib/webrick')
-rw-r--r--lib/webrick/httpserver.rb4
-rw-r--r--lib/webrick/server.rb2
2 files changed, 3 insertions, 3 deletions
diff --git a/lib/webrick/httpserver.rb b/lib/webrick/httpserver.rb
index 7a7b931dad..0618489c53 100644
--- a/lib/webrick/httpserver.rb
+++ b/lib/webrick/httpserver.rb
@@ -73,10 +73,10 @@ module WEBrick
timeout = @config[:RequestTimeout]
while timeout > 0
break if IO.select([sock], nil, nil, 0.5)
- timeout = 0 if @status != :Running
+ break if @status != :Running
timeout -= 0.5
end
- raise HTTPStatus::EOFError if timeout <= 0
+ raise HTTPStatus::EOFError if timeout <= 0 || @status != :Running
raise HTTPStatus::EOFError if sock.eof?
req.parse(sock)
res.request_method = req.request_method
diff --git a/lib/webrick/server.rb b/lib/webrick/server.rb
index 3f5371ba47..bd8a045891 100644
--- a/lib/webrick/server.rb
+++ b/lib/webrick/server.rb
@@ -180,7 +180,7 @@ module WEBrick
end
}
end
- rescue Errno::EBADF, IOError => ex
+ rescue Errno::EBADF, Errno::ENOTSOCK, IOError => ex
# if the listening socket was closed in GenericServer#shutdown,
# IO::select raise it.
rescue StandardError => ex