|
|
|
@ -144,7 +144,7 @@ namespace MediaBrowser.Dlna.Ssdp
|
|
|
|
|
//var protocol = isMulticast ? "Multicast" : "Unicast";
|
|
|
|
|
//var localEndPointString = args.LocalEndPoint == null ? "null" : args.LocalEndPoint.ToString();
|
|
|
|
|
//_logger.Debug("IGNORING {0} message received from {1} on {3}. Protocol: {4} Headers: {2}", args.Method, args.EndPoint, headerText, localEndPointString, protocol);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -164,7 +164,7 @@ namespace MediaBrowser.Dlna.Ssdp
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -303,9 +303,17 @@ namespace MediaBrowser.Dlna.Ssdp
|
|
|
|
|
|
|
|
|
|
var msg = new SsdpMessageBuilder().BuildMessage(header, values);
|
|
|
|
|
|
|
|
|
|
SendDatagram(msg, endpoint, null, false, 2);
|
|
|
|
|
SendDatagram(msg, endpoint, new IPEndPoint(d.Address, 0), false, 2);
|
|
|
|
|
//SendDatagram(header, values, endpoint, null, true);
|
|
|
|
|
var ipEndPoint = endpoint as IPEndPoint;
|
|
|
|
|
if (ipEndPoint != null)
|
|
|
|
|
{
|
|
|
|
|
SendUnicastRequest(msg, ipEndPoint);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
SendDatagram(msg, endpoint, null, false, 2);
|
|
|
|
|
SendDatagram(msg, endpoint, new IPEndPoint(d.Address, 0), false, 2);
|
|
|
|
|
//SendDatagram(header, values, endpoint, null, true);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (enableDebugLogging)
|
|
|
|
|
{
|
|
|
|
@ -583,12 +591,12 @@ namespace MediaBrowser.Dlna.Ssdp
|
|
|
|
|
}
|
|
|
|
|
catch (ObjectDisposedException)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private async void SendUnicastRequest(string request, int sendCount = 3)
|
|
|
|
|
private void SendUnicastRequest(string request, int sendCount = 3)
|
|
|
|
|
{
|
|
|
|
|
if (_unicastClient == null)
|
|
|
|
|
{
|
|
|
|
@ -597,10 +605,23 @@ namespace MediaBrowser.Dlna.Ssdp
|
|
|
|
|
|
|
|
|
|
_logger.Debug("Sending unicast search request");
|
|
|
|
|
|
|
|
|
|
byte[] req = Encoding.ASCII.GetBytes(request);
|
|
|
|
|
var ipSsdp = IPAddress.Parse(SSDPAddr);
|
|
|
|
|
var ipTxEnd = new IPEndPoint(ipSsdp, SSDPPort);
|
|
|
|
|
|
|
|
|
|
SendUnicastRequest(request, ipTxEnd, sendCount);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private async void SendUnicastRequest(string request, IPEndPoint toEndPoint, int sendCount = 3)
|
|
|
|
|
{
|
|
|
|
|
if (_unicastClient == null)
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_logger.Debug("Sending unicast search request");
|
|
|
|
|
|
|
|
|
|
byte[] req = Encoding.ASCII.GetBytes(request);
|
|
|
|
|
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
for (var i = 0; i < sendCount; i++)
|
|
|
|
@ -609,7 +630,7 @@ namespace MediaBrowser.Dlna.Ssdp
|
|
|
|
|
{
|
|
|
|
|
await Task.Delay(50).ConfigureAwait(false);
|
|
|
|
|
}
|
|
|
|
|
_unicastClient.Send(req, req.Length, ipTxEnd);
|
|
|
|
|
_unicastClient.Send(req, req.Length, toEndPoint);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|