add local endpoint

This commit is contained in:
Luke Pulverenti 2015-05-11 22:40:26 -04:00
parent aae30eda52
commit fc7ed4d3fb
2 changed files with 17 additions and 7 deletions

View file

@ -30,7 +30,7 @@ namespace MediaBrowser.Dlna.Ssdp
{
var msg = Encoding.ASCII.GetBytes(Message);
var socket = CreateSocket();
var socket = CreateSocket(!IgnoreBindFailure);
if (socket == null)
{
@ -102,13 +102,20 @@ namespace MediaBrowser.Dlna.Ssdp
}
}
private Socket CreateSocket()
private Socket CreateSocket(bool isBroadcast)
{
try
{
var socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
if (isBroadcast)
{
socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, true);
socket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.MulticastTimeToLive, 4);
}
return socket;
}
catch (Exception ex)

View file

@ -87,11 +87,14 @@ namespace MediaBrowser.Dlna.Ssdp
try
{
var ip = _appHost.LocalIpAddress;
if (!string.IsNullOrWhiteSpace(ip))
if (e.LocalEndPoint == null)
{
var ip = _appHost.LocalIpAddress;
e.LocalEndPoint = new IPEndPoint(IPAddress.Parse(ip), 0);
}
if (e.LocalEndPoint != null)
{
e.LocalIp = IPAddress.Parse(ip);
TryCreateDevice(e);
}
}
@ -140,7 +143,7 @@ namespace MediaBrowser.Dlna.Ssdp
{
var args = SsdpHelper.ParseSsdpResponse(receiveBuffer);
args.EndPoint = endPoint;
args.LocalIp = localIp;
args.LocalEndPoint = new IPEndPoint(localIp, 0);
if (!_ssdpHandler.IsSelfNotification(args))
{