aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShadowghost <Ghost_of_Stone@web.de>2023-02-20 16:58:22 +0100
committerShadowghost <Ghost_of_Stone@web.de>2023-02-20 16:58:22 +0100
commita5f16136eb171b17b1e1ed661e9aeb017522ce89 (patch)
tree3c523ede9ed7f42813a4c9fb9361832007fb9339
parentc5a363a007b98e7a680bb2a95d9bd49a7dced8f2 (diff)
Apply review suggestions
-rw-r--r--MediaBrowser.Common/Net/INetworkManager.cs1
-rw-r--r--MediaBrowser.Model/Net/IPData.cs109
-rw-r--r--MediaBrowser.Model/Net/ISocketFactory.cs53
-rw-r--r--RSSDP/SsdpDeviceLocator.cs28
-rw-r--r--RSSDP/SsdpDevicePublisher.cs27
5 files changed, 86 insertions, 132 deletions
diff --git a/MediaBrowser.Common/Net/INetworkManager.cs b/MediaBrowser.Common/Net/INetworkManager.cs
index efd87a810..1a3176b58 100644
--- a/MediaBrowser.Common/Net/INetworkManager.cs
+++ b/MediaBrowser.Common/Net/INetworkManager.cs
@@ -76,7 +76,6 @@ namespace MediaBrowser.Common.Net
/// <summary>
/// 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 <see cref="GetBindAddress(IPAddress, out int?, bool)"/>.
/// </summary>
/// <param name="source">IP address of the request.</param>
/// <param name="port">Optional port returned, if it's part of an override.</param>
diff --git a/MediaBrowser.Model/Net/IPData.cs b/MediaBrowser.Model/Net/IPData.cs
index 16d74dcdd..985b16c6e 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;
+
+/// <summary>
+/// Base network object class.
+/// </summary>
+public class IPData
{
/// <summary>
- /// Base network object class.
+ /// Initializes a new instance of the <see cref="IPData"/> class.
/// </summary>
- public class IPData
+ /// <param name="address">The <see cref="IPAddress"/>.</param>
+ /// <param name="subnet">The <see cref="IPNetwork"/>.</param>
+ /// <param name="name">The interface name.</param>
+ public IPData(IPAddress address, IPNetwork? subnet, string name)
{
- /// <summary>
- /// Initializes a new instance of the <see cref="IPData"/> class.
- /// </summary>
- /// <param name="address">The <see cref="IPAddress"/>.</param>
- /// <param name="subnet">The <see cref="IPNetwork"/>.</param>
- /// <param name="name">The interface name.</param>
- 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;
- }
+ Address = address;
+ Subnet = subnet ?? (address.AddressFamily == AddressFamily.InterNetwork ? new IPNetwork(address, 32) : new IPNetwork(address, 128));
+ Name = name;
+ }
- /// <summary>
- /// Initializes a new instance of the <see cref="IPData"/> class.
- /// </summary>
- /// <param name="address">The <see cref="IPAddress"/>.</param>
- /// <param name="subnet">The <see cref="IPNetwork"/>.</param>
- public IPData(IPAddress address, IPNetwork? subnet)
- : this(address, subnet, string.Empty)
- {
- }
+ /// <summary>
+ /// Initializes a new instance of the <see cref="IPData"/> class.
+ /// </summary>
+ /// <param name="address">The <see cref="IPAddress"/>.</param>
+ /// <param name="subnet">The <see cref="IPNetwork"/>.</param>
+ public IPData(IPAddress address, IPNetwork? subnet)
+ : this(address, subnet, string.Empty)
+ {
+ }
- /// <summary>
- /// Gets or sets the object's IP address.
- /// </summary>
- public IPAddress Address { get; set; }
+ /// <summary>
+ /// Gets or sets the object's IP address.
+ /// </summary>
+ public IPAddress Address { get; set; }
- /// <summary>
- /// Gets or sets the object's IP address.
- /// </summary>
- public IPNetwork Subnet { get; set; }
+ /// <summary>
+ /// Gets or sets the object's IP address.
+ /// </summary>
+ public IPNetwork Subnet { get; set; }
- /// <summary>
- /// Gets or sets the interface index.
- /// </summary>
- public int Index { get; set; }
+ /// <summary>
+ /// Gets or sets the interface index.
+ /// </summary>
+ public int Index { get; set; }
- /// <summary>
- /// Gets or sets the interface name.
- /// </summary>
- public string Name { get; set; }
+ /// <summary>
+ /// Gets or sets the interface name.
+ /// </summary>
+ public string Name { get; set; }
- /// <summary>
- /// Gets the AddressFamily of the object.
- /// </summary>
- public AddressFamily AddressFamily
+ /// <summary>
+ /// Gets the AddressFamily of the object.
+ /// </summary>
+ public AddressFamily AddressFamily
+ {
+ get
{
- get
+ if (Address.Equals(IPAddress.None))
+ {
+ return Subnet.Prefix.AddressFamily.Equals(IPAddress.None)
+ ? AddressFamily.Unspecified
+ : Subnet.Prefix.AddressFamily;
+ }
+ else
{
- if (Address.Equals(IPAddress.None))
- {
- return Subnet.Prefix.AddressFamily.Equals(IPAddress.None)
- ? AddressFamily.Unspecified
- : Subnet.Prefix.AddressFamily;
- }
- else
- {
- return Address.AddressFamily;
- }
+ return Address.AddressFamily;
}
}
}
diff --git a/MediaBrowser.Model/Net/ISocketFactory.cs b/MediaBrowser.Model/Net/ISocketFactory.cs
index 49a88c227..128034eb8 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;
+
+/// <summary>
+/// Implemented by components that can create specific socket configurations.
+/// </summary>
+public interface ISocketFactory
{
/// <summary>
- /// Implemented by components that can create specific socket configurations.
+ /// Creates a new unicast socket using the specified local port number.
/// </summary>
- public interface ISocketFactory
- {
- /// <summary>
- /// Creates a new unicast socket using the specified local port number.
- /// </summary>
- /// <param name="localPort">The local port to bind to.</param>
- /// <returns>A new unicast socket using the specified local port number.</returns>
- Socket CreateUdpBroadcastSocket(int localPort);
+ /// <param name="localPort">The local port to bind to.</param>
+ /// <returns>A new unicast socket using the specified local port number.</returns>
+ Socket CreateUdpBroadcastSocket(int localPort);
- /// <summary>
- /// Creates a new unicast socket using the specified local port number.
- /// </summary>
- /// <param name="bindInterface">The bind interface.</param>
- /// <param name="localPort">The local port to bind to.</param>
- /// <returns>A new unicast socket using the specified local port number.</returns>
- Socket CreateSsdpUdpSocket(IPData bindInterface, int localPort);
+ /// <summary>
+ /// Creates a new unicast socket using the specified local port number.
+ /// </summary>
+ /// <param name="bindInterface">The bind interface.</param>
+ /// <param name="localPort">The local port to bind to.</param>
+ /// <returns>A new unicast socket using the specified local port number.</returns>
+ Socket CreateSsdpUdpSocket(IPData bindInterface, int localPort);
- /// <summary>
- /// Creates a new multicast socket using the specified multicast IP address, multicast time to live and local port.
- /// </summary>
- /// <param name="multicastAddress">The multicast IP address to bind to.</param>
- /// <param name="bindInterface">The bind interface.</param>
- /// <param name="multicastTimeToLive">The multicast time to live value. Actually a maximum number of network hops for UDP packets.</param>
- /// <param name="localPort">The local port to bind to.</param>
- /// <returns>A new multicast socket using the specfied bind interface, multicast address, multicast time to live and port.</returns>
- Socket CreateUdpMulticastSocket(IPAddress multicastAddress, IPData bindInterface, int multicastTimeToLive, int localPort);
- }
+ /// <summary>
+ /// Creates a new multicast socket using the specified multicast IP address, multicast time to live and local port.
+ /// </summary>
+ /// <param name="multicastAddress">The multicast IP address to bind to.</param>
+ /// <param name="bindInterface">The bind interface.</param>
+ /// <param name="multicastTimeToLive">The multicast time to live value. Actually a maximum number of network hops for UDP packets.</param>
+ /// <param name="localPort">The local port to bind to.</param>
+ /// <returns>A new multicast socket using the specfied bind interface, multicast address, multicast time to live and port.</returns>
+ Socket CreateUdpMulticastSocket(IPAddress multicastAddress, IPData bindInterface, int multicastTimeToLive, int localPort);
}
diff --git a/RSSDP/SsdpDeviceLocator.cs b/RSSDP/SsdpDeviceLocator.cs
index 9d756d0d4..ffe97754c 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<string, string>(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 8b5551899..e443c6285 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<SsdpRootDevice>();