aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api/Dlna/DlnaServerService.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Api/Dlna/DlnaServerService.cs')
-rw-r--r--MediaBrowser.Api/Dlna/DlnaServerService.cs15
1 files changed, 12 insertions, 3 deletions
diff --git a/MediaBrowser.Api/Dlna/DlnaServerService.cs b/MediaBrowser.Api/Dlna/DlnaServerService.cs
index 097552ab4..0dd7ee7d1 100644
--- a/MediaBrowser.Api/Dlna/DlnaServerService.cs
+++ b/MediaBrowser.Api/Dlna/DlnaServerService.cs
@@ -1,5 +1,7 @@
-using MediaBrowser.Controller.Dlna;
+using System;
+using MediaBrowser.Controller.Dlna;
using ServiceStack;
+using ServiceStack.Text.Controller;
using ServiceStack.Web;
using System.Collections.Generic;
using System.IO;
@@ -21,9 +23,12 @@ namespace MediaBrowser.Api.Dlna
{
}
- [Route("/Dlna/control", "POST", Summary = "Processes a control request")]
+ [Route("/Dlna/{UuId}/control", "POST", Summary = "Processes a control request")]
public class ProcessControlRequest : IRequiresRequestStream
{
+ [ApiMember(Name = "UuId", Description = "Server UuId", IsRequired = false, DataType = "string", ParameterType = "path", Verb = "GET")]
+ public string UuId { get; set; }
+
public Stream RequestStream { get; set; }
}
@@ -66,12 +71,16 @@ namespace MediaBrowser.Api.Dlna
private async Task<ControlResponse> PostAsync(ProcessControlRequest request)
{
+ var pathInfo = PathInfo.Parse(Request.PathInfo);
+ var id = pathInfo.GetArgumentValue<string>(1);
+
using (var reader = new StreamReader(request.RequestStream))
{
return _dlnaManager.ProcessControlRequest(new ControlRequest
{
Headers = GetRequestHeaders(),
- InputXml = await reader.ReadToEndAsync().ConfigureAwait(false)
+ InputXml = await reader.ReadToEndAsync().ConfigureAwait(false),
+ TargetServerUuId = id
});
}
}