diff --git a/MediaBrowser.Common/Net/INetworkManager.cs b/MediaBrowser.Common/Net/INetworkManager.cs
index efd87a8107..1a3176b581 100644
--- a/MediaBrowser.Common/Net/INetworkManager.cs
+++ b/MediaBrowser.Common/Net/INetworkManager.cs
@@ -76,7 +76,6 @@ namespace MediaBrowser.Common.Net
///
/// Retrieves the bind address to use in system URLs. (Server Discovery, PlayTo, LiveTV, SystemInfo)
/// If no bind addresses are specified, an internal interface address is selected.
- /// (See .
///
/// IP address of the request.
/// Optional port returned, if it's part of an override.
diff --git a/MediaBrowser.Model/Net/IPData.cs b/MediaBrowser.Model/Net/IPData.cs
index 16d74dcddd..985b16c6e4 100644
--- a/MediaBrowser.Model/Net/IPData.cs
+++ b/MediaBrowser.Model/Net/IPData.cs
@@ -2,73 +2,72 @@ using System.Net;
using System.Net.Sockets;
using Microsoft.AspNetCore.HttpOverrides;
-namespace MediaBrowser.Model.Net
+namespace MediaBrowser.Model.Net;
+
+///
+/// Base network object class.
+///
+public class IPData
{
///
- /// Base network object class.
+ /// Initializes a new instance of the class.
///
- public class IPData
+ /// The .
+ /// The .
+ /// The interface name.
+ public IPData(IPAddress address, IPNetwork? subnet, string name)
{
- ///
- /// Initializes a new instance of the class.
- ///
- /// The .
- /// The .
- /// The interface name.
- public IPData(IPAddress address, IPNetwork? subnet, string name)
+ Address = address;
+ Subnet = subnet ?? (address.AddressFamily == AddressFamily.InterNetwork ? new IPNetwork(address, 32) : new IPNetwork(address, 128));
+ Name = name;
+ }
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The .
+ /// The .
+ public IPData(IPAddress address, IPNetwork? subnet)
+ : this(address, subnet, string.Empty)
+ {
+ }
+
+ ///
+ /// Gets or sets the object's IP address.
+ ///
+ public IPAddress Address { get; set; }
+
+ ///
+ /// Gets or sets the object's IP address.
+ ///
+ public IPNetwork Subnet { get; set; }
+
+ ///
+ /// Gets or sets the interface index.
+ ///
+ public int Index { get; set; }
+
+ ///
+ /// Gets or sets the interface name.
+ ///
+ public string Name { get; set; }
+
+ ///
+ /// Gets the AddressFamily of the object.
+ ///
+ public AddressFamily AddressFamily
+ {
+ get
{
- Address = address;
- Subnet = subnet ?? (address.AddressFamily == AddressFamily.InterNetwork ? new IPNetwork(address, 32) : new IPNetwork(address, 128));
- Name = name;
- }
-
- ///
- /// Initializes a new instance of the class.
- ///
- /// The .
- /// The .
- public IPData(IPAddress address, IPNetwork? subnet)
- : this(address, subnet, string.Empty)
- {
- }
-
- ///
- /// Gets or sets the object's IP address.
- ///
- public IPAddress Address { get; set; }
-
- ///
- /// Gets or sets the object's IP address.
- ///
- public IPNetwork Subnet { get; set; }
-
- ///
- /// Gets or sets the interface index.
- ///
- public int Index { get; set; }
-
- ///
- /// Gets or sets the interface name.
- ///
- public string Name { get; set; }
-
- ///
- /// Gets the AddressFamily of the object.
- ///
- public AddressFamily AddressFamily
- {
- get
+ if (Address.Equals(IPAddress.None))
{
- if (Address.Equals(IPAddress.None))
- {
- return Subnet.Prefix.AddressFamily.Equals(IPAddress.None)
- ? AddressFamily.Unspecified
- : Subnet.Prefix.AddressFamily;
- }
- else
- {
- return Address.AddressFamily;
- }
+ return Subnet.Prefix.AddressFamily.Equals(IPAddress.None)
+ ? AddressFamily.Unspecified
+ : Subnet.Prefix.AddressFamily;
+ }
+ else
+ {
+ return Address.AddressFamily;
}
}
}
diff --git a/MediaBrowser.Model/Net/ISocketFactory.cs b/MediaBrowser.Model/Net/ISocketFactory.cs
index 49a88c2277..128034eb8f 100644
--- a/MediaBrowser.Model/Net/ISocketFactory.cs
+++ b/MediaBrowser.Model/Net/ISocketFactory.cs
@@ -1,36 +1,35 @@
using System.Net;
using System.Net.Sockets;
-namespace MediaBrowser.Model.Net
+namespace MediaBrowser.Model.Net;
+
+///
+/// Implemented by components that can create specific socket configurations.
+///
+public interface ISocketFactory
{
///
- /// Implemented by components that can create specific socket configurations.
+ /// Creates a new unicast socket using the specified local port number.
///
- public interface ISocketFactory
- {
- ///
- /// Creates a new unicast socket using the specified local port number.
- ///
- /// The local port to bind to.
- /// A new unicast socket using the specified local port number.
- Socket CreateUdpBroadcastSocket(int localPort);
+ /// The local port to bind to.
+ /// A new unicast socket using the specified local port number.
+ Socket CreateUdpBroadcastSocket(int localPort);
- ///
- /// Creates a new unicast socket using the specified local port number.
- ///
- /// The bind interface.
- /// The local port to bind to.
- /// A new unicast socket using the specified local port number.
- Socket CreateSsdpUdpSocket(IPData bindInterface, int localPort);
+ ///
+ /// Creates a new unicast socket using the specified local port number.
+ ///
+ /// The bind interface.
+ /// The local port to bind to.
+ /// A new unicast socket using the specified local port number.
+ Socket CreateSsdpUdpSocket(IPData bindInterface, int localPort);
- ///
- /// Creates a new multicast socket using the specified multicast IP address, multicast time to live and local port.
- ///
- /// The multicast IP address to bind to.
- /// The bind interface.
- /// The multicast time to live value. Actually a maximum number of network hops for UDP packets.
- /// The local port to bind to.
- /// A new multicast socket using the specfied bind interface, multicast address, multicast time to live and port.
- Socket CreateUdpMulticastSocket(IPAddress multicastAddress, IPData bindInterface, int multicastTimeToLive, int localPort);
- }
+ ///
+ /// Creates a new multicast socket using the specified multicast IP address, multicast time to live and local port.
+ ///
+ /// The multicast IP address to bind to.
+ /// The bind interface.
+ /// The multicast time to live value. Actually a maximum number of network hops for UDP packets.
+ /// The local port to bind to.
+ /// A new multicast socket using the specfied bind interface, multicast address, multicast time to live and port.
+ Socket CreateUdpMulticastSocket(IPAddress multicastAddress, IPData bindInterface, int multicastTimeToLive, int localPort);
}
diff --git a/RSSDP/SsdpDeviceLocator.cs b/RSSDP/SsdpDeviceLocator.cs
index 9d756d0d4c..ffe97754c7 100644
--- a/RSSDP/SsdpDeviceLocator.cs
+++ b/RSSDP/SsdpDeviceLocator.cs
@@ -34,30 +34,9 @@ namespace Rssdp.Infrastructure
string osName,
string osVersion)
{
- if (communicationsServer is null)
- {
- throw new ArgumentNullException(nameof(communicationsServer));
- }
-
- if (osName is null)
- {
- throw new ArgumentNullException(nameof(osName));
- }
-
- if (osName.Length == 0)
- {
- throw new ArgumentException("osName cannot be an empty string.", nameof(osName));
- }
-
- if (osVersion is null)
- {
- throw new ArgumentNullException(nameof(osVersion));
- }
-
- if (osVersion.Length == 0)
- {
- throw new ArgumentException("osVersion cannot be an empty string.", nameof(osName));
- }
+ ArgumentNullException.ThrowIfNull(communicationsServer);
+ ArgumentNullException.ThrowIfNullOrEmpty(osName);
+ ArgumentNullException.ThrowIfNullOrEmpty(osVersion);
_OSName = osName;
_OSVersion = osVersion;
@@ -363,7 +342,6 @@ namespace Rssdp.Infrastructure
var values = new Dictionary(StringComparer.OrdinalIgnoreCase);
values["HOST"] = "239.255.255.250:1900";
- values["USER-AGENT"] = "UPnP/1.0 DLNADOC/1.50 Platinum/1.0.4.2";
values["USER-AGENT"] = string.Format(CultureInfo.InvariantCulture, "{0}/{1} UPnP/1.0 RSSDP/{2}", _OSName, _OSVersion, SsdpConstants.ServerVersion);
values["MAN"] = "\"ssdp:discover\"";
diff --git a/RSSDP/SsdpDevicePublisher.cs b/RSSDP/SsdpDevicePublisher.cs
index 8b55518999..e443c62855 100644
--- a/RSSDP/SsdpDevicePublisher.cs
+++ b/RSSDP/SsdpDevicePublisher.cs
@@ -40,30 +40,9 @@ namespace Rssdp.Infrastructure
string osVersion,
bool sendOnlyMatchedHost)
{
- if (communicationsServer is null)
- {
- throw new ArgumentNullException(nameof(communicationsServer));
- }
-
- if (osName is null)
- {
- throw new ArgumentNullException(nameof(osName));
- }
-
- if (osName.Length == 0)
- {
- throw new ArgumentException("osName cannot be an empty string.", nameof(osName));
- }
-
- if (osVersion is null)
- {
- throw new ArgumentNullException(nameof(osVersion));
- }
-
- if (osVersion.Length == 0)
- {
- throw new ArgumentException("osVersion cannot be an empty string.", nameof(osName));
- }
+ ArgumentNullException.ThrowIfNull(communicationsServer);
+ ArgumentNullException.ThrowIfNullOrEmpty(osName);
+ ArgumentNullException.ThrowIfNullOrEmpty(osVersion);
_SupportPnpRootDevice = true;
_Devices = new List();