Răsfoiți Sursa

update device discovery

Luke Pulverenti 9 ani în urmă
părinte
comite
f13ca8f343

+ 2 - 8
MediaBrowser.Dlna/Ssdp/DeviceDiscovery.cs

@@ -132,6 +132,8 @@ namespace MediaBrowser.Dlna.Ssdp
                                 return;
                                 return;
                             }
                             }
 
 
+                            _ssdpHandler.LogMessageReceived(args, true);
+
                             TryCreateDevice(args);
                             TryCreateDevice(args);
                         }
                         }
                     }
                     }
@@ -219,14 +221,6 @@ namespace MediaBrowser.Dlna.Ssdp
                 return;
                 return;
             }
             }
 
 
-            if (_config.GetDlnaConfiguration().EnableDebugLog)
-            {
-                var headerTexts = args.Headers.Select(i => string.Format("{0}={1}", i.Key, i.Value));
-                var headerText = string.Join(",", headerTexts.ToArray());
-
-                _logger.Debug("{0} Device message received from {1}. Headers: {2}", args.Method, args.EndPoint, headerText);
-            }
-
             EventHelper.FireEventIfNotNull(DeviceDiscovered, this, args, _logger);
             EventHelper.FireEventIfNotNull(DeviceDiscovered, this, args, _logger);
         }
         }
 
 

+ 21 - 15
MediaBrowser.Dlna/Ssdp/SsdpHandler.cs

@@ -93,17 +93,7 @@ namespace MediaBrowser.Dlna.Ssdp
                 return;
                 return;
             }
             }
 
 
-            var enableDebugLogging = _config.GetDlnaConfiguration().EnableDebugLog;
-            
-            if (enableDebugLogging)
-            {
-                var headerTexts = args.Headers.Select(i => string.Format("{0}={1}", i.Key, i.Value));
-                var headerText = string.Join(",", headerTexts.ToArray());
-
-                var protocol = isMulticast ? "Multicast" : "Unicast";
-                var localEndPointString = args.LocalEndPoint == null ? "null" : args.LocalEndPoint.ToString();
-                _logger.Debug("{0} message received from {1} on {3}. Protocol: {4} Headers: {2}", args.Method, args.EndPoint, headerText, localEndPointString, protocol);
-            }
+            LogMessageReceived(args, isMulticast);
 
 
             var headers = args.Headers;
             var headers = args.Headers;
             string st;
             string st;
@@ -125,6 +115,21 @@ namespace MediaBrowser.Dlna.Ssdp
             EventHelper.FireEventIfNotNull(MessageReceived, this, args, _logger);
             EventHelper.FireEventIfNotNull(MessageReceived, this, args, _logger);
         }
         }
 
 
+        internal void LogMessageReceived(SsdpMessageEventArgs args, bool isMulticast)
+        {
+            var enableDebugLogging = _config.GetDlnaConfiguration().EnableDebugLog;
+
+            if (enableDebugLogging)
+            {
+                var headerTexts = args.Headers.Select(i => string.Format("{0}={1}", i.Key, i.Value));
+                var headerText = string.Join(",", headerTexts.ToArray());
+
+                var protocol = isMulticast ? "Multicast" : "Unicast";
+                var localEndPointString = args.LocalEndPoint == null ? "null" : args.LocalEndPoint.ToString();
+                _logger.Debug("{0} message received from {1} on {3}. Protocol: {4} Headers: {2}", args.Method, args.EndPoint, headerText, localEndPointString, protocol);
+            }
+        }
+
         internal bool IgnoreMessage(SsdpMessageEventArgs args, bool isMulticast)
         internal bool IgnoreMessage(SsdpMessageEventArgs args, bool isMulticast)
         {
         {
             string usn;
             string usn;
@@ -298,8 +303,8 @@ namespace MediaBrowser.Dlna.Ssdp
 
 
                     var msg = new SsdpMessageBuilder().BuildMessage(header, values);
                     var msg = new SsdpMessageBuilder().BuildMessage(header, values);
 
 
-                    SendDatagram(msg, endpoint, null, false, 1);
-                    SendDatagram(msg, endpoint, new IPEndPoint(d.Address, 0), false, 1);
+                    SendDatagram(msg, endpoint, null, false, 2);
+                    SendDatagram(msg, endpoint, new IPEndPoint(d.Address, 0), false, 2);
                     //SendDatagram(header, values, endpoint, null, true);
                     //SendDatagram(header, values, endpoint, null, true);
 
 
                     if (enableDebugLogging)
                     if (enableDebugLogging)
@@ -473,6 +478,7 @@ namespace MediaBrowser.Dlna.Ssdp
             var msg = new SsdpMessageBuilder().BuildMessage(header, values);
             var msg = new SsdpMessageBuilder().BuildMessage(header, values);
 
 
             SendDatagram(msg, _ssdpEndp, new IPEndPoint(dev.Address, 0), true);
             SendDatagram(msg, _ssdpEndp, new IPEndPoint(dev.Address, 0), true);
+            //SendUnicastRequest(msg, 1);
         }
         }
 
 
         public void RegisterNotification(string uuid, Uri descriptionUri, IPAddress address, IEnumerable<string> services)
         public void RegisterNotification(string uuid, Uri descriptionUri, IPAddress address, IEnumerable<string> services)
@@ -582,7 +588,7 @@ namespace MediaBrowser.Dlna.Ssdp
             }
             }
         }
         }
 
 
-        private async void SendUnicastRequest(string request)
+        private async void SendUnicastRequest(string request, int sendCount = 3)
         {
         {
             if (_unicastClient == null)
             if (_unicastClient == null)
             {
             {
@@ -597,7 +603,7 @@ namespace MediaBrowser.Dlna.Ssdp
 
 
             try
             try
             {
             {
-                for (var i = 0; i < 3; i++)
+                for (var i = 0; i < sendCount; i++)
                 {
                 {
                     if (i > 0)
                     if (i > 0)
                     {
                     {

+ 6 - 1
MediaBrowser.Server.Implementations/LiveTv/TunerHosts/SatIp/SatIpDiscovery.cs

@@ -42,7 +42,12 @@ namespace MediaBrowser.Server.Implementations.LiveTv.TunerHosts.SatIp
         void _deviceDiscovery_DeviceDiscovered(object sender, SsdpMessageEventArgs e)
         void _deviceDiscovery_DeviceDiscovered(object sender, SsdpMessageEventArgs e)
         {
         {
             string st = null;
             string st = null;
-            if (e.Headers.TryGetValue("ST", out st) && string.Equals(st, "urn:ses-com:device:SatIPServer:1", StringComparison.OrdinalIgnoreCase))
+            string nt = null;
+            e.Headers.TryGetValue("ST", out st);
+            e.Headers.TryGetValue("NT", out nt);
+
+            if (string.Equals(st, "urn:ses-com:device:SatIPServer:1", StringComparison.OrdinalIgnoreCase) ||
+                string.Equals(nt, "urn:ses-com:device:SatIPServer:1", StringComparison.OrdinalIgnoreCase))
             {
             {
                 string location;
                 string location;
                 if (e.Headers.TryGetValue("Location", out location) && !string.IsNullOrWhiteSpace(location))
                 if (e.Headers.TryGetValue("Location", out location) && !string.IsNullOrWhiteSpace(location))

+ 2 - 2
MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj

@@ -52,9 +52,9 @@
     <Reference Include="Interfaces.IO">
     <Reference Include="Interfaces.IO">
       <HintPath>..\packages\Interfaces.IO.1.0.0.5\lib\portable-net45+sl4+wp71+win8+wpa81\Interfaces.IO.dll</HintPath>
       <HintPath>..\packages\Interfaces.IO.1.0.0.5\lib\portable-net45+sl4+wp71+win8+wpa81\Interfaces.IO.dll</HintPath>
     </Reference>
     </Reference>
-    <Reference Include="MediaBrowser.Naming, Version=1.0.5884.23751, Culture=neutral, processorArchitecture=MSIL">
+    <Reference Include="MediaBrowser.Naming, Version=1.0.5891.29179, Culture=neutral, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
       <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\MediaBrowser.Naming.1.0.0.47\lib\portable-net45+sl4+wp71+win8+wpa81\MediaBrowser.Naming.dll</HintPath>
+      <HintPath>..\packages\MediaBrowser.Naming.1.0.0.48\lib\portable-net45+sl4+wp71+win8+wpa81\MediaBrowser.Naming.dll</HintPath>
     </Reference>
     </Reference>
     <Reference Include="MoreLinq">
     <Reference Include="MoreLinq">
       <HintPath>..\packages\morelinq.1.4.0\lib\net35\MoreLinq.dll</HintPath>
       <HintPath>..\packages\morelinq.1.4.0\lib\net35\MoreLinq.dll</HintPath>

+ 1 - 1
MediaBrowser.Server.Implementations/packages.config

@@ -3,7 +3,7 @@
   <package id="CommonIO" version="1.0.0.7" targetFramework="net45" />
   <package id="CommonIO" version="1.0.0.7" targetFramework="net45" />
   <package id="Emby.XmlTv" version="1.0.0.48" targetFramework="net45" />
   <package id="Emby.XmlTv" version="1.0.0.48" targetFramework="net45" />
   <package id="Interfaces.IO" version="1.0.0.5" targetFramework="net45" />
   <package id="Interfaces.IO" version="1.0.0.5" targetFramework="net45" />
-  <package id="MediaBrowser.Naming" version="1.0.0.47" targetFramework="net45" />
+  <package id="MediaBrowser.Naming" version="1.0.0.48" targetFramework="net45" />
   <package id="Mono.Nat" version="1.2.24.0" targetFramework="net45" />
   <package id="Mono.Nat" version="1.2.24.0" targetFramework="net45" />
   <package id="morelinq" version="1.4.0" targetFramework="net45" />
   <package id="morelinq" version="1.4.0" targetFramework="net45" />
   <package id="Patterns.Logging" version="1.0.0.2" targetFramework="net45" />
   <package id="Patterns.Logging" version="1.0.0.2" targetFramework="net45" />