From ab3944724882fd8a33ff9636d713d40217c24864 Mon Sep 17 00:00:00 2001
From: Jeffrey Phillips Freeman <the@jeffreyfreeman.me>
Date: Mon, 27 Apr 2020 17:32:38 -0400
Subject: [PATCH] Improved quiting mechanism again

---
 lib/aethyr/core/connection/login.rb  |  1 +
 lib/aethyr/core/connection/server.rb | 13 ++++---------
 2 files changed, 5 insertions(+), 9 deletions(-)

diff --git a/lib/aethyr/core/connection/login.rb b/lib/aethyr/core/connection/login.rb
index 6d9b73d..02a04c4 100644
--- a/lib/aethyr/core/connection/login.rb
+++ b/lib/aethyr/core/connection/login.rb
@@ -9,6 +9,7 @@ module Login
 
   #Get input from io connection and process it
   def receive_data
+    return false if closed?
     data = @display.recv
     return false if data.nil?
     return false if data == ''
diff --git a/lib/aethyr/core/connection/server.rb b/lib/aethyr/core/connection/server.rb
index cbf1b6b..e0e2451 100644
--- a/lib/aethyr/core/connection/server.rb
+++ b/lib/aethyr/core/connection/server.rb
@@ -67,16 +67,11 @@ module Aethyr
           end
 
           players.each do |player|
-            begin
-              player.receive_data
-            rescue Exception => e
-              log "Closing connection for #{player}"
-              begin
-                player.socket.close
-              rescue
-              end
+            if player.closed?
+              log "Player #{player} has closed connection, removing from server queue"
               players.delete(player)
-              log e.message + "\n" + e.backtrace.join("\n") unless player.closed?
+            else
+              player.receive_data
             end
           end
 
-- 
GitLab