From 9a25ee86e8d9556943ee83e37e244ead97457d18 Mon Sep 17 00:00:00 2001 From: Thomas Woischnig Date: Mon, 4 Dec 2023 21:10:10 +0100 Subject: [PATCH] Fixed non catched exception --- .../Runtime/LobbyClient.dll | Bin 36352 -> 36864 bytes LobbyClient/DirectConnectionResultTest.cs | 5 ++ LobbyClient/LobbyClient.cs | 45 +++++++++++------- 3 files changed, 32 insertions(+), 18 deletions(-) diff --git a/Assets/NetworkLobbyClient/Runtime/LobbyClient.dll b/Assets/NetworkLobbyClient/Runtime/LobbyClient.dll index 623717f8c78f13ce85f0b0ea98e5135357fa89bd..0e02e81b185ec73f59744916c823914e10b2c10e 100644 GIT binary patch literal 36864 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 literal 36352 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 c{eSfH5dRB?_-$YL1)~2)ef public IPAddress? IPAddress { get; internal set; } + + /// + /// If failed contains a error message reason + /// + public string? ErrorMessage { get; internal set; } } } diff --git a/LobbyClient/LobbyClient.cs b/LobbyClient/LobbyClient.cs index 5b05b42..b172cff 100644 --- a/LobbyClient/LobbyClient.cs +++ b/LobbyClient/LobbyClient.cs @@ -278,32 +278,41 @@ namespace Lobbies { return Task.Run(() => { + string? error = string.Empty; IPAddress? ret = null; - using(var waitForIpEvent = new AutoResetEvent(false)) - using (var udpEchoClient = new UdpEchoServer()) - { - udpEchoClient.Reached += (ep) => + try + { + using (var waitForIpEvent = new AutoResetEvent(false)) + using (var udpEchoClient = new UdpEchoServer()) { - ret = ep.Address; - try + udpEchoClient.Reached += (ep) => { - waitForIpEvent.Set(); - udpEchoClient.Stop(); + ret = ep.Address; + try + { + waitForIpEvent.Set(); + udpEchoClient.Stop(); + } + catch { } + }; + + udpEchoClient.Start(0); + + foreach (var ip in ipAddressesToTry) + { + udpEchoClient.CheckConnectionPossible(new IPEndPoint(ip, tryPort)); } - catch { } - }; - udpEchoClient.Start(0); - - foreach (var ip in ipAddressesToTry) - { - udpEchoClient.CheckConnectionPossible(new IPEndPoint(ip, tryPort)); + if(!waitForIpEvent.WaitOne(500)) + error = $"Timeout"; } - - waitForIpEvent.WaitOne(500); + } + catch (Exception ex) + { + error = $"Exception: {ex}"; } - events.Enqueue(new LobbyClientEvent { EventType = LobbyClientEventTypes.DirectConnectionTestComplete, EventData = new DirectConnectionTestResult { DirectConnectionPossible = ret != null, IPAddress = ret } }); + events.Enqueue(new LobbyClientEvent { EventType = LobbyClientEventTypes.DirectConnectionTestComplete, EventData = new DirectConnectionTestResult { DirectConnectionPossible = ret != null, IPAddress = ret, ErrorMessage = error } }); }); }