new framework
This commit is contained in:
@@ -12,13 +12,19 @@ module BBS
|
||||
server = TCPServer.new('0.0.0.0', @port)
|
||||
puts "BBS listening on port #{@port} — connect with: telnet localhost #{@port}"
|
||||
loop do
|
||||
client = server.accept
|
||||
client = begin
|
||||
server.accept
|
||||
rescue Errno::ECONNABORTED, Errno::EMFILE, Errno::ENFILE, IOError => e
|
||||
warn "BBS accept error: #{e.class}: #{e.message}"
|
||||
next
|
||||
end
|
||||
|
||||
Thread.new(client) do |c|
|
||||
session = Session.new(c)
|
||||
begin
|
||||
session.run
|
||||
rescue => e
|
||||
nil
|
||||
rescue StandardError => e
|
||||
warn "BBS session error: #{e.class}: #{e.message}\n#{e.backtrace.first(3).join("\n")}"
|
||||
ensure
|
||||
BBS.config.on_session_end&.call(session)
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user