diff options
author | Kazuki Yamaguchi <k@rhe.jp> | 2016-01-17 17:20:01 +0900 |
---|---|---|
committer | Kazuki Yamaguchi <k@rhe.jp> | 2016-01-17 17:20:01 +0900 |
commit | 34e727b625b0439817acdc4d052170c8e9115f59 (patch) | |
tree | 49dc6634b0e2e733b59b6c284a75eec164191647 | |
parent | 87eef66181c9defc2d44ddd536e23b691f754b91 (diff) | |
download | plum-34e727b625b0439817acdc4d052170c8e9115f59.tar.gz |
rack: fix legacy-fallback
-rw-r--r-- | lib/plum/rack/legacy_session.rb | 2 | ||||
-rw-r--r-- | lib/plum/rack/listener.rb | 8 | ||||
-rw-r--r-- | lib/plum/rack/server.rb | 2 | ||||
-rw-r--r-- | lib/plum/rack/session.rb | 2 |
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 |