From 2539bd3fe5746b3d36784a26434cab0646ad6f8e Mon Sep 17 00:00:00 2001 From: Fernando-A-Rocha Date: Thu, 16 Feb 2023 23:55:06 +0000 Subject: [PATCH 1/4] Add argument checks to ip2c exported functions --- [admin]/ip2c/server.lua | 1 + [admin]/ip2c/shared.lua | 3 +++ 2 files changed, 4 insertions(+) diff --git a/[admin]/ip2c/server.lua b/[admin]/ip2c/server.lua index d65f66fa2..d0eada0aa 100644 --- a/[admin]/ip2c/server.lua +++ b/[admin]/ip2c/server.lua @@ -20,6 +20,7 @@ local IP2C_UPDATE_INTERVAL_SECONDS = 60 * 60 * 24 * 1 -- Update no more than onc -- [Exported] function getPlayerCountry ( player ) + if not (isElement(player) and getElementType(player) == "player") then return false end if not loadIPGroupsIsReady() then return false end local ip = getPlayerIP(player) local ip_group = tonumber ( gettok ( ip, 1, 46 ) ) diff --git a/[admin]/ip2c/shared.lua b/[admin]/ip2c/shared.lua index fad3d796d..bdee5b0ac 100644 --- a/[admin]/ip2c/shared.lua +++ b/[admin]/ip2c/shared.lua @@ -255,5 +255,8 @@ local countryListAlpha2 = { -- [Exported] function getCountryName( country ) + if type(country) ~= "string" then + return "Invalid country code" + end return countryListAlpha2[ (string.upper(country)) ] or "Unknown" end From 1cea21e1f9788be49982db5362ffbe7fc3933d38 Mon Sep 17 00:00:00 2001 From: Fernando-A-Rocha Date: Fri, 17 Feb 2023 00:00:05 +0000 Subject: [PATCH 2/4] Fix admin2 trying to get country name when country code may be false --- [admin]/admin2/server/admin_server.lua | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/[admin]/admin2/server/admin_server.lua b/[admin]/admin2/server/admin_server.lua index db62835d1..cfc835eb7 100644 --- a/[admin]/admin2/server/admin_server.lua +++ b/[admin]/admin2/server/admin_server.lua @@ -154,7 +154,9 @@ function updatePlayerCountry(player) local isIP2CResourceRunning = getResourceFromName( "ip2c" ) isIP2CResourceRunning = isIP2CResourceRunning and getResourceState( isIP2CResourceRunning ) == "running" aPlayers[player].country = isIP2CResourceRunning and exports.ip2c:getPlayerCountry(player) or false - aPlayers[player].countryname = isIP2CResourceRunning and exports.ip2c:getCountryName(aPlayers[player].country) or false + if aPlayers[player].country then + aPlayers[player].countryname = isIP2CResourceRunning and exports.ip2c:getCountryName(aPlayers[player].country) or false + end end function aPlayerInitialize(player) From 6aa419688740e94f3a994705b344a8403c40af7a Mon Sep 17 00:00:00 2001 From: Fernando-A-Rocha Date: Mon, 20 Feb 2023 17:26:34 +0000 Subject: [PATCH 3/4] meta.xml: add aclrequest for fetchRemote --- [admin]/ip2c/meta.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/[admin]/ip2c/meta.xml b/[admin]/ip2c/meta.xml index 6e8a423fb..93a07c8ac 100644 --- a/[admin]/ip2c/meta.xml +++ b/[admin]/ip2c/meta.xml @@ -7,6 +7,14 @@