aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2016-04-27 14:10:59 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2016-04-27 14:10:59 -0400
commit34b72a98cffe9247711f681a31344a56d6c4b912 (patch)
treefec792321135cb962d1eca42e2f7d05e88fd042f
parent6c62c20a9e3081950bf46fc96966e470ffc73b54 (diff)
improve socket disposal
-rw-r--r--MediaBrowser.Dlna/Ssdp/DeviceDiscovery.cs35
1 files changed, 18 insertions, 17 deletions
diff --git a/MediaBrowser.Dlna/Ssdp/DeviceDiscovery.cs b/MediaBrowser.Dlna/Ssdp/DeviceDiscovery.cs
index a2eac41ec..5e0baa1f6 100644
--- a/MediaBrowser.Dlna/Ssdp/DeviceDiscovery.cs
+++ b/MediaBrowser.Dlna/Ssdp/DeviceDiscovery.cs
@@ -109,30 +109,31 @@ namespace MediaBrowser.Dlna.Ssdp
var endPoint = new IPEndPoint(localIp, 1900);
- var socket = GetMulticastSocket(localIp, endPoint);
-
- var receiveBuffer = new byte[64000];
-
- CreateNotifier(localIp);
-
- while (!_tokenSource.IsCancellationRequested)
+ using (var socket = GetMulticastSocket(localIp, endPoint))
{
- var receivedBytes = await socket.ReceiveAsync(receiveBuffer, 0, 64000);
+ var receiveBuffer = new byte[64000];
+
+ CreateNotifier(localIp);
- if (receivedBytes > 0)
+ while (!_tokenSource.IsCancellationRequested)
{
- var args = SsdpHelper.ParseSsdpResponse(receiveBuffer);
- args.EndPoint = endPoint;
- args.LocalEndPoint = new IPEndPoint(localIp, 0);
+ var receivedBytes = await socket.ReceiveAsync(receiveBuffer, 0, 64000);
- if (_ssdpHandler.IgnoreMessage(args, true))
+ if (receivedBytes > 0)
{
- return;
- }
+ var args = SsdpHelper.ParseSsdpResponse(receiveBuffer);
+ args.EndPoint = endPoint;
+ args.LocalEndPoint = new IPEndPoint(localIp, 0);
+
+ if (_ssdpHandler.IgnoreMessage(args, true))
+ {
+ return;
+ }
- _ssdpHandler.LogMessageReceived(args, true);
+ _ssdpHandler.LogMessageReceived(args, true);
- TryCreateDevice(args);
+ TryCreateDevice(args);
+ }
}
}