mirror of
https://github.com/jellyfin/jellyfin.git
synced 2024-09-06 03:26:07 +02:00
add local endpoint
This commit is contained in:
parent
aae30eda52
commit
fc7ed4d3fb
2 changed files with 17 additions and 7 deletions
|
@ -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)
|
||||
|
|
|
@ -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))
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue