From 23e9f5db4330a6efee5270160a3959422926ce77 Mon Sep 17 00:00:00 2001
From: sfan5 <sfan5@live.de>
Date: Mon, 17 Oct 2022 20:05:14 +0200
Subject: [PATCH] Fix list sorting behaviour with missing geoip

---
 builtin/mainmenu/serverlistmgr.lua | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/builtin/mainmenu/serverlistmgr.lua b/builtin/mainmenu/serverlistmgr.lua
index 06dc15777..ab686ded0 100644
--- a/builtin/mainmenu/serverlistmgr.lua
+++ b/builtin/mainmenu/serverlistmgr.lua
@@ -81,9 +81,9 @@ local function order_server_list(list)
 		-- second: estimated latency
 		local ping = (fav.ping or 0) * 1000
 		if ping < 400 then
-			-- If ping is over 400ms, assume the server has latency issues
-			-- anyway and don't estimate
-			ping = estimate_continent_latency(serverlistmgr.my_continent, fav) or ping
+			-- If ping is under 400ms replace it with our own estimate,
+			-- we assume the server has latency issues anyway otherwise
+			ping = estimate_continent_latency(serverlistmgr.my_continent, fav) or 0
 		end
 		s2:push(fav, -ping)
 	end
@@ -148,6 +148,9 @@ function serverlistmgr.sync()
 			nil,
 			function(result)
 				geoip_downloading = false
+				if not result then
+					return
+				end
 				serverlistmgr.my_continent = result
 				core.set_once("continent", result)
 				-- reorder list if we already have it