|
|
|
@ -77,6 +77,8 @@ public sealed class AutoDiscoveryHost : BackgroundService
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private async Task ListenForAutoDiscoveryMessage(IPAddress address, CancellationToken cancellationToken)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
using var udpClient = new UdpClient(new IPEndPoint(address, PortNumber));
|
|
|
|
|
udpClient.MulticastLoopback = false;
|
|
|
|
@ -96,10 +98,16 @@ public sealed class AutoDiscoveryHost : BackgroundService
|
|
|
|
|
{
|
|
|
|
|
_logger.LogError(ex, "Failed to receive data from socket");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (OperationCanceledException)
|
|
|
|
|
{
|
|
|
|
|
_logger.LogDebug("Broadcast socket operation cancelled");
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
// Exception in this function will prevent the background service from restarting in-process.
|
|
|
|
|
_logger.LogError(ex, "Unable to bind to {Address}:{Port}", address, PortNumber);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|