aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Dlna/PlayTo/Device.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Dlna/PlayTo/Device.cs')
-rw-r--r--MediaBrowser.Dlna/PlayTo/Device.cs30
1 files changed, 19 insertions, 11 deletions
diff --git a/MediaBrowser.Dlna/PlayTo/Device.cs b/MediaBrowser.Dlna/PlayTo/Device.cs
index c43efcd1da..00cb34be3e 100644
--- a/MediaBrowser.Dlna/PlayTo/Device.cs
+++ b/MediaBrowser.Dlna/PlayTo/Device.cs
@@ -712,14 +712,10 @@ namespace MediaBrowser.Dlna.PlayTo
if (avService == null)
return;
- var url = avService.ScpdUrl;
- if (!url.Contains("/"))
- url = "/dmr/" + url;
- if (!url.StartsWith("/"))
- url = "/" + url;
+ string url = NormalizeUrl(Properties.BaseUrl, avService.ScpdUrl);
var httpClient = new SsdpHttpClient(_httpClient, _config);
- var document = await httpClient.GetDataAsync(Properties.BaseUrl + url);
+ var document = await httpClient.GetDataAsync(url);
AvCommands = TransportCommands.Create(document);
}
@@ -730,16 +726,28 @@ namespace MediaBrowser.Dlna.PlayTo
if (avService == null)
return;
- string url = avService.ScpdUrl;
+ string url = NormalizeUrl(Properties.BaseUrl, avService.ScpdUrl);
+
+ var httpClient = new SsdpHttpClient(_httpClient, _config);
+ var document = await httpClient.GetDataAsync(url);
+
+ RendererCommands = TransportCommands.Create(document);
+ }
+
+ private string NormalizeUrl(string baseUrl, string url)
+ {
+ // If it's already a complete url, don't stick anything onto the front of it
+ if (url.StartsWith("http", StringComparison.OrdinalIgnoreCase))
+ {
+ return url;
+ }
+
if (!url.Contains("/"))
url = "/dmr/" + url;
if (!url.StartsWith("/"))
url = "/" + url;
- var httpClient = new SsdpHttpClient(_httpClient, _config);
- var document = await httpClient.GetDataAsync(Properties.BaseUrl + url);
-
- RendererCommands = TransportCommands.Create(document);
+ return baseUrl + url;
}
private TransportCommands AvCommands