aboutsummaryrefslogtreecommitdiff
path: root/Emby.Dlna
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2017-10-20 12:16:56 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2017-10-20 12:16:56 -0400
commit060215143ff62e4cf475a493e57c8607beca8640 (patch)
tree1d1095525a83bb8183184db952d28556bc05f323 /Emby.Dlna
parent86226ff97c7d6dc4005c3bb1978861e948de1e20 (diff)
improve httpclient resource disposal
Diffstat (limited to 'Emby.Dlna')
-rw-r--r--Emby.Dlna/ContentDirectory/ContentDirectoryBrowser.cs43
-rw-r--r--Emby.Dlna/Eventing/EventManager.cs5
-rw-r--r--Emby.Dlna/PlayTo/SsdpHttpClient.cs27
3 files changed, 43 insertions, 32 deletions
diff --git a/Emby.Dlna/ContentDirectory/ContentDirectoryBrowser.cs b/Emby.Dlna/ContentDirectory/ContentDirectoryBrowser.cs
index 2b421794ab..9c5c5fb64f 100644
--- a/Emby.Dlna/ContentDirectory/ContentDirectoryBrowser.cs
+++ b/Emby.Dlna/ContentDirectory/ContentDirectoryBrowser.cs
@@ -43,37 +43,38 @@ namespace Emby.Dlna.ContentDirectory
options.RequestContent = GetRequestBody(request);
- var response = await _httpClient.SendAsync(options, "POST");
-
- using (var reader = new StreamReader(response.Content))
+ using (var response = await _httpClient.SendAsync(options, "POST"))
{
- var doc = XDocument.Parse(reader.ReadToEnd(), LoadOptions.PreserveWhitespace);
+ using (var reader = new StreamReader(response.Content))
+ {
+ var doc = XDocument.Parse(reader.ReadToEnd(), LoadOptions.PreserveWhitespace);
- var queryResult = new QueryResult<ChannelItemInfo>();
+ var queryResult = new QueryResult<ChannelItemInfo>();
- if (doc.Document == null)
- return queryResult;
+ if (doc.Document == null)
+ return queryResult;
- var responseElement = doc.Document.Descendants(UNamespace + "BrowseResponse").ToList();
+ var responseElement = doc.Document.Descendants(UNamespace + "BrowseResponse").ToList();
- var countElement = responseElement.Select(i => i.Element("TotalMatches")).FirstOrDefault(i => i != null);
- var countValue = countElement == null ? null : countElement.Value;
+ var countElement = responseElement.Select(i => i.Element("TotalMatches")).FirstOrDefault(i => i != null);
+ var countValue = countElement == null ? null : countElement.Value;
- int count;
- if (!string.IsNullOrWhiteSpace(countValue) && int.TryParse(countValue, NumberStyles.Integer, CultureInfo.InvariantCulture, out count))
- {
- queryResult.TotalRecordCount = count;
+ int count;
+ if (!string.IsNullOrWhiteSpace(countValue) && int.TryParse(countValue, NumberStyles.Integer, CultureInfo.InvariantCulture, out count))
+ {
+ queryResult.TotalRecordCount = count;
- var resultElement = responseElement.Select(i => i.Element("Result")).FirstOrDefault(i => i != null);
- var resultString = (string)resultElement;
+ var resultElement = responseElement.Select(i => i.Element("Result")).FirstOrDefault(i => i != null);
+ var resultString = (string)resultElement;
- if (resultElement != null)
- {
- var xElement = XElement.Parse(resultString);
+ if (resultElement != null)
+ {
+ var xElement = XElement.Parse(resultString);
+ }
}
- }
- return queryResult;
+ return queryResult;
+ }
}
}
diff --git a/Emby.Dlna/Eventing/EventManager.cs b/Emby.Dlna/Eventing/EventManager.cs
index 99ba74f327..67eac640e1 100644
--- a/Emby.Dlna/Eventing/EventManager.cs
+++ b/Emby.Dlna/Eventing/EventManager.cs
@@ -182,7 +182,10 @@ namespace Emby.Dlna.Eventing
try
{
- await _httpClient.SendAsync(options, "NOTIFY").ConfigureAwait(false);
+ using (await _httpClient.SendAsync(options, "NOTIFY").ConfigureAwait(false))
+ {
+
+ }
}
catch (OperationCanceledException)
{
diff --git a/Emby.Dlna/PlayTo/SsdpHttpClient.cs b/Emby.Dlna/PlayTo/SsdpHttpClient.cs
index 1aa671b8ff..6c66a999c8 100644
--- a/Emby.Dlna/PlayTo/SsdpHttpClient.cs
+++ b/Emby.Dlna/PlayTo/SsdpHttpClient.cs
@@ -31,14 +31,15 @@ namespace Emby.Dlna.PlayTo
bool logRequest = true,
string header = null)
{
- var response = await PostSoapDataAsync(NormalizeServiceUrl(baseUrl, service.ControlUrl), "\"" + service.ServiceType + "#" + command + "\"", postData, header, logRequest)
- .ConfigureAwait(false);
-
- using (var stream = response.Content)
+ using (var response = await PostSoapDataAsync(NormalizeServiceUrl(baseUrl, service.ControlUrl), "\"" + service.ServiceType + "#" + command + "\"", postData, header, logRequest)
+ .ConfigureAwait(false))
{
- using (var reader = new StreamReader(stream, Encoding.UTF8))
+ using (var stream = response.Content)
{
- return XDocument.Parse(reader.ReadToEnd(), LoadOptions.PreserveWhitespace);
+ using (var reader = new StreamReader(stream, Encoding.UTF8))
+ {
+ return XDocument.Parse(reader.ReadToEnd(), LoadOptions.PreserveWhitespace);
+ }
}
}
}
@@ -79,7 +80,10 @@ namespace Emby.Dlna.PlayTo
options.RequestHeaders["NT"] = "upnp:event";
options.RequestHeaders["TIMEOUT"] = "Second-" + timeOut.ToString(_usCulture);
- await _httpClient.SendAsync(options, "SUBSCRIBE").ConfigureAwait(false);
+ using (await _httpClient.SendAsync(options, "SUBSCRIBE").ConfigureAwait(false))
+ {
+
+ }
}
public async Task<XDocument> GetDataAsync(string url)
@@ -94,11 +98,14 @@ namespace Emby.Dlna.PlayTo
options.RequestHeaders["FriendlyName.DLNA.ORG"] = FriendlyName;
- using (var stream = await _httpClient.Get(options).ConfigureAwait(false))
+ using (var response = await _httpClient.SendAsync(options, "GET").ConfigureAwait(false))
{
- using (var reader = new StreamReader(stream, Encoding.UTF8))
+ using (var stream = response.Content)
{
- return XDocument.Parse(reader.ReadToEnd(), LoadOptions.PreserveWhitespace);
+ using (var reader = new StreamReader(stream, Encoding.UTF8))
+ {
+ return XDocument.Parse(reader.ReadToEnd(), LoadOptions.PreserveWhitespace);
+ }
}
}
}