class Plum::Rack::TCPListener
Public Class Methods
new(lc)
click to toggle source
# File lib/plum/rack/listener.rb, line 22 def initialize(lc) @server = ::TCPServer.new(lc[:hostname], lc[:port]) end
Public Instance Methods
accept(svc)
click to toggle source
# File lib/plum/rack/listener.rb, line 30 def accept(svc) sock = @server.accept Thread.start { begin plum = ::Plum::HTTPServerConnection.new(sock.method(:write)) sess = Session.new(svc, sock, plum) sess.run rescue ::Plum::LegacyHTTPError => 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 sock.close end } end
to_io()
click to toggle source
# File lib/plum/rack/listener.rb, line 26 def to_io @server.to_io end