Fixed non catched exception

This commit is contained in:
twoischnig committed 2023-12-04 21:10:10 +01:00
1 parent cee5a4cf4f
commit 9a25ee86e8
3 files changed
+31 -17

No files matched your search

Binary file not shown.
@@ -13,5 +13,10 @@ namespace Lobbies
/// The ip address the connection succeeded on
/// </summary>
public IPAddress? IPAddress { get; internal set; }
/// <summary>
/// If failed contains a error message reason
/// </summary>
public string? ErrorMessage { get; internal set; }
}
}
+26 -17
View File
@@ -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())
try
{
udpEchoClient.Reached += (ep) =>
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 } });
});
}