mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-06-23 15:30:56 -04:00
add local endpoint
This commit is contained in:
parent
aae30eda52
commit
fc7ed4d3fb
@ -30,7 +30,7 @@ namespace MediaBrowser.Dlna.Ssdp
|
|||||||
{
|
{
|
||||||
var msg = Encoding.ASCII.GetBytes(Message);
|
var msg = Encoding.ASCII.GetBytes(Message);
|
||||||
|
|
||||||
var socket = CreateSocket();
|
var socket = CreateSocket(!IgnoreBindFailure);
|
||||||
|
|
||||||
if (socket == null)
|
if (socket == null)
|
||||||
{
|
{
|
||||||
@ -102,13 +102,20 @@ namespace MediaBrowser.Dlna.Ssdp
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Socket CreateSocket()
|
private Socket CreateSocket(bool isBroadcast)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
|
var socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
|
||||||
|
|
||||||
socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
|
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;
|
return socket;
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
@ -87,11 +87,14 @@ namespace MediaBrowser.Dlna.Ssdp
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var ip = _appHost.LocalIpAddress;
|
if (e.LocalEndPoint == null)
|
||||||
|
{
|
||||||
if (!string.IsNullOrWhiteSpace(ip))
|
var ip = _appHost.LocalIpAddress;
|
||||||
|
e.LocalEndPoint = new IPEndPoint(IPAddress.Parse(ip), 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (e.LocalEndPoint != null)
|
||||||
{
|
{
|
||||||
e.LocalIp = IPAddress.Parse(ip);
|
|
||||||
TryCreateDevice(e);
|
TryCreateDevice(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -140,7 +143,7 @@ namespace MediaBrowser.Dlna.Ssdp
|
|||||||
{
|
{
|
||||||
var args = SsdpHelper.ParseSsdpResponse(receiveBuffer);
|
var args = SsdpHelper.ParseSsdpResponse(receiveBuffer);
|
||||||
args.EndPoint = endPoint;
|
args.EndPoint = endPoint;
|
||||||
args.LocalIp = localIp;
|
args.LocalEndPoint = new IPEndPoint(localIp, 0);
|
||||||
|
|
||||||
if (!_ssdpHandler.IsSelfNotification(args))
|
if (!_ssdpHandler.IsSelfNotification(args))
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user