diff --git a/LuaMenu/widgets/api_analytics.lua b/LuaMenu/widgets/api_analytics.lua index 876d0483f..d6c619eee 100644 --- a/LuaMenu/widgets/api_analytics.lua +++ b/LuaMenu/widgets/api_analytics.lua @@ -139,11 +139,16 @@ end local function SocketConnect(host, port) + if client then + client:close() + end client=socket.tcp() client:settimeout(0) res, err = client:connect(host, port) - if not res and not res=="timeout" then + if not res and err ~= "timeout" then if PRINT_DEBUG then Spring.Echo("Error in connection to Analytics server: "..err) end + client:close() + client = nil return false end if PRINT_DEBUG then Spring.Echo("Analytics connected") end @@ -652,8 +657,8 @@ local function LobbyInfo() local message = "c.telemetry.log_client_event lobby:info " .. Spring.Utilities.Base64Encode(Spring.Utilities.json.encode(t)).." ".. machineHash .. "\n" local client=socket.tcp() local res, err = client:connect(host, port) - if not res and not res=="timeout" then Spring.Echo("Lobby:Info Error", res, err) else client:send(message) end - if client ~= nil then client:close() end + if not res and err ~= "timeout" then Spring.Echo("Lobby:Info Error", res, err) else client:send(message) end + client:close() end end @@ -735,6 +740,7 @@ function widget:Initialize() isConnected = true if client ~= nil then client:close() + client = nil end ACTIVE = false -- disconnect diff --git a/libs/liblobby/lobby/interface_shared.lua b/libs/liblobby/lobby/interface_shared.lua index c5003c489..895e1a739 100644 --- a/libs/liblobby/lobby/interface_shared.lua +++ b/libs/liblobby/lobby/interface_shared.lua @@ -56,6 +56,7 @@ function Interface:Disconnect(reason) self.finishedConnecting = false if self.client then self.client:close() + self.client = nil end self:_OnDisconnected(reason, true) end diff --git a/libs/spring-launcher/luaui/widgets/api_spring_launcher.lua b/libs/spring-launcher/luaui/widgets/api_spring_launcher.lua index a2e7ab95d..cb9cc9e40 100644 --- a/libs/spring-launcher/luaui/widgets/api_spring_launcher.lua +++ b/libs/spring-launcher/luaui/widgets/api_spring_launcher.lua @@ -89,10 +89,15 @@ local function explode(div,str) end function widget:SocketConnect() + if client then + client:close() + end client = socket.tcp() client:settimeout(0) local res, err = client:connect(host, port) - if not res and not res == "timeout" then + if not res and err ~= "timeout" then + client:close() + client = nil widgetHandler:RemoveWidget(self) Spring.Log(LOG_SECTION, LOG.ERROR, "Error in connect launcher: " .. err) return false