Sending multicasts out of Sockets without setting the broadcast to true - causes the error "Bad value for ai_flags" on some systems (#3404)

The underlying cause looks to be https://github.com/dotnet/runtime/issues/28630.

Basically, it's an access denied bug.
It looks like multicasts need the same access rights as broadcasts on some systems.
This commit is contained in:
BaronGreenback
2020-06-24 17:23:16 +01:00
parent c07d8abfd5
commit f01baad05e
3 changed files with 4 additions and 5 deletions

View File

@@ -338,7 +338,8 @@ namespace Rssdp.Infrastructure
private ISocket ListenForBroadcastsAsync()
{
var socket = _SocketFactory.CreateUdpMulticastSocket(SsdpConstants.MulticastLocalAdminAddress, _MulticastTtl, SsdpConstants.MulticastPort);
var socket = _SocketFactory.CreateUdpMulticastSocket(SsdpConstants.MulticastLocalAdminAddress, _MulticastTtl, SsdpConstants.MulticastPort);
_ = ListenToSocketInternal(socket);
return socket;
@@ -382,7 +383,7 @@ namespace Rssdp.Infrastructure
private async Task ListenToSocketInternal(ISocket socket)
{
var cancelled = false;
var receiveBuffer = new byte[8192];
var receiveBuffer = new byte[8192];
while (!cancelled && !IsDisposed)
{