diff options
| author | Shadowghost <Ghost_of_Stone@web.de> | 2023-02-20 16:58:22 +0100 |
|---|---|---|
| committer | Shadowghost <Ghost_of_Stone@web.de> | 2023-02-20 16:58:22 +0100 |
| commit | a5f16136eb171b17b1e1ed661e9aeb017522ce89 (patch) | |
| tree | 3c523ede9ed7f42813a4c9fb9361832007fb9339 | |
| parent | c5a363a007b98e7a680bb2a95d9bd49a7dced8f2 (diff) | |
Apply review suggestions
| -rw-r--r-- | MediaBrowser.Common/Net/INetworkManager.cs | 1 | ||||
| -rw-r--r-- | MediaBrowser.Model/Net/IPData.cs | 109 | ||||
| -rw-r--r-- | MediaBrowser.Model/Net/ISocketFactory.cs | 53 | ||||
| -rw-r--r-- | RSSDP/SsdpDeviceLocator.cs | 28 | ||||
| -rw-r--r-- | RSSDP/SsdpDevicePublisher.cs | 27 |
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>(); |
