diff --git a/LuaMenu/widgets/zk_loopback.lua b/LuaMenu/widgets/zk_loopback.lua index 54ed43f6a..e3de360c9 100644 --- a/LuaMenu/widgets/zk_loopback.lua +++ b/LuaMenu/widgets/zk_loopback.lua @@ -48,10 +48,13 @@ function SendCommand(cmdName, args) 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 Echo("Error in connect wrapper: "..err) return false end diff --git a/libs/liblobby/lobby/interface_shared.lua b/libs/liblobby/lobby/interface_shared.lua index 3b45357c6..acb4a1fb0 100644 --- a/libs/liblobby/lobby/interface_shared.lua +++ b/libs/liblobby/lobby/interface_shared.lua @@ -61,6 +61,7 @@ function Interface:Disconnect() self.finishedConnecting = false if self.client then self.client:close() + self.client = nil end self:_OnDisconnected(nil, 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