aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2016-01-17 17:20:01 +0900
committerKazuki Yamaguchi <k@rhe.jp>2016-01-17 17:20:01 +0900
commit34e727b625b0439817acdc4d052170c8e9115f59 (patch)
tree49dc6634b0e2e733b59b6c284a75eec164191647
parent87eef66181c9defc2d44ddd536e23b691f754b91 (diff)
downloadplum-34e727b625b0439817acdc4d052170c8e9115f59.tar.gz
rack: fix legacy-fallback
-rw-r--r--lib/plum/rack/legacy_session.rb2
-rw-r--r--lib/plum/rack/listener.rb8
-rw-r--r--lib/plum/rack/server.rb2
-rw-r--r--lib/plum/rack/session.rb2
4 files changed, 8 insertions, 6 deletions
diff --git a/lib/plum/rack/legacy_session.rb b/lib/plum/rack/legacy_session.rb
index 6712933..b5da1a3 100644
--- a/lib/plum/rack/legacy_session.rb
+++ b/lib/plum/rack/legacy_session.rb
@@ -13,7 +13,7 @@ module Plum
def run
if @config[:fallback_legacy_host]
- @logger.info "legacy HTTP: fallbacking to: #{@config[:fallback_legacy_host]}:#{@config[:fallback_legacy_port]}"
+ @svc.logger.info "legacy HTTP: fallbacking to: #{@config[:fallback_legacy_host]}:#{@config[:fallback_legacy_port]}"
upstream = TCPSocket.open(@config[:fallback_legacy_host], @config[:fallback_legacy_port])
upstream.write(@e.buf) if @e.buf
loop do
diff --git a/lib/plum/rack/listener.rb b/lib/plum/rack/listener.rb
index 8af12be..e65a6f0 100644
--- a/lib/plum/rack/listener.rb
+++ b/lib/plum/rack/listener.rb
@@ -35,11 +35,11 @@ module Plum
plum = ::Plum::HTTPServerConnection.new(sock.method(:write))
sess = Session.new(svc, sock, plum)
sess.run
- rescue Errno::ECONNRESET, EOFError # closed
rescue ::Plum::LegacyHTTPError => e
- @logger.info "legacy HTTP client: #{e}"
+ svc.logger.info "legacy HTTP client: #{e}"
sess = LegacySession.new(svc, e, sock)
sess.run
+ rescue Errno::ECONNRESET, EOFError # closed
rescue => e
svc.log_exception(e)
ensure
@@ -97,11 +97,11 @@ module Plum
plum = ::Plum::ServerConnection.new(sock.method(:write))
sess = Session.new(svc, sock, plum)
sess.run
- rescue Errno::ECONNRESET, EOFError # closed
rescue ::Plum::LegacyHTTPError => e
- @logger.info "legacy HTTP client: #{e}"
+ svc.logger.info "legacy HTTP client: #{e}"
sess = LegacySession.new(svc, e, sock)
sess.run
+ rescue Errno::ECONNRESET, EOFError # closed
rescue => e
svc.log_exception(e)
ensure
diff --git a/lib/plum/rack/server.rb b/lib/plum/rack/server.rb
index f01f0ac..ddbb986 100644
--- a/lib/plum/rack/server.rb
+++ b/lib/plum/rack/server.rb
@@ -51,11 +51,11 @@ module Plum
# TODO: gracefully shutdown connections (wait threadpool?)
end
- private
def log_exception(e)
@logger.error("#{e.class}: #{e.message}\n#{e.backtrace.map { |b| "\t#{b}" }.join("\n")}")
end
+ private
def drop_privileges
begin
user = @config[:user]
diff --git a/lib/plum/rack/session.rb b/lib/plum/rack/session.rb
index 3a27248..d2c639b 100644
--- a/lib/plum/rack/session.rb
+++ b/lib/plum/rack/session.rb
@@ -19,6 +19,8 @@ module Plum
@threadpool = svc.threadpool
setup_plum
+ rescue Errno::ENOTCONN
+ # TCP connection reset while doing TLS handshake
end
def stop