Fix catching listener exceptions
This commit is contained in:
parent
c9f11aa285
commit
0d1d5c6490
15
Ooui/UI.cs
15
Ooui/UI.cs
|
@ -177,6 +177,7 @@ namespace Ooui
|
|||
static async Task RunAsync (string listenerPrefix, CancellationToken token)
|
||||
{
|
||||
HttpListener listener = null;
|
||||
var wait = 5;
|
||||
|
||||
started.Reset ();
|
||||
while (!started.WaitOne(0) && !token.IsCancellationRequested) {
|
||||
|
@ -186,12 +187,18 @@ namespace Ooui
|
|||
listener.Start ();
|
||||
started.Set ();
|
||||
}
|
||||
catch (System.Net.Sockets.SocketException ex) when
|
||||
(ex.SocketErrorCode == System.Net.Sockets.SocketError.AddressAlreadyInUse) {
|
||||
var wait = 5;
|
||||
Console.WriteLine ($"{listenerPrefix} is in use, trying again in {wait} seconds...");
|
||||
catch (System.Net.Sockets.SocketException ex) {
|
||||
Console.WriteLine ($"{listenerPrefix} error: {ex.Message}. Trying again in {wait} seconds...");
|
||||
await Task.Delay (wait * 1000).ConfigureAwait (false);
|
||||
}
|
||||
catch (System.Net.HttpListenerException ex) {
|
||||
Console.WriteLine ($"{listenerPrefix} error: {ex.Message}. Trying again in {wait} seconds...");
|
||||
await Task.Delay (wait * 1000).ConfigureAwait (false);
|
||||
}
|
||||
catch (Exception ex) {
|
||||
Error ("Error listening", ex);
|
||||
return;
|
||||
}
|
||||
}
|
||||
Console.ForegroundColor = ConsoleColor.Green;
|
||||
Console.WriteLine ($"Listening at {listenerPrefix}...");
|
||||
|
|
Loading…
Reference in New Issue