diff options
Diffstat (limited to 'MediaBrowser.Common/Net')
| -rw-r--r-- | MediaBrowser.Common/Net/IPData.cs | 17 | ||||
| -rw-r--r-- | MediaBrowser.Common/Net/NetworkExtensions.cs | 10 |
2 files changed, 10 insertions, 17 deletions
diff --git a/MediaBrowser.Common/Net/IPData.cs b/MediaBrowser.Common/Net/IPData.cs index 3c6adc7e8..6901d6ad8 100644 --- a/MediaBrowser.Common/Net/IPData.cs +++ b/MediaBrowser.Common/Net/IPData.cs @@ -14,13 +14,12 @@ namespace MediaBrowser.Common.Net /// </summary> /// <param name="address">An <see cref="IPAddress"/>.</param> /// <param name="subnet">The <see cref="IPNetwork"/>.</param> - public IPData( - IPAddress address, - IPNetwork? subnet) + /// <param name="name">The object's 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 = string.Empty; + Name = name; } /// <summary> @@ -28,15 +27,9 @@ namespace MediaBrowser.Common.Net /// </summary> /// <param name="address">An <see cref="IPAddress"/>.</param> /// <param name="subnet">The <see cref="IPNetwork"/>.</param> - /// <param name="name">The object's name.</param> - public IPData( - IPAddress address, - IPNetwork? subnet, - string name) + public IPData(IPAddress address, IPNetwork? subnet) + : this(address, subnet, string.Empty) { - Address = address; - Subnet = subnet ?? (address.AddressFamily == AddressFamily.InterNetwork ? new IPNetwork(address, 32) : new IPNetwork(address, 128)); - Name = name; } /// <summary> diff --git a/MediaBrowser.Common/Net/NetworkExtensions.cs b/MediaBrowser.Common/Net/NetworkExtensions.cs index 4cba1c99f..ae1e47ccc 100644 --- a/MediaBrowser.Common/Net/NetworkExtensions.cs +++ b/MediaBrowser.Common/Net/NetworkExtensions.cs @@ -13,6 +13,10 @@ namespace MediaBrowser.Common.Net /// </summary> public static class NetworkExtensions { + // Use regular expression as CheckHostName isn't RFC5892 compliant. + // Modified from gSkinner's expression at https://stackoverflow.com/questions/11809631/fully-qualified-domain-name-validation + private static readonly Regex _fqdnRegex = new Regex(@"(?im)^(?!:\/\/)(?=.{1,255}$)((.{1,63}\.){0,127}(?![0-9]*$)[a-z0-9-]+\.?)(:(\d){1,5}){0,1}$"); + /// <summary> /// Returns true if the IPAddress contains an IP6 Local link address. /// </summary> @@ -227,12 +231,8 @@ namespace MediaBrowser.Common.Net if (hosts.Length <= 2) { - // Use regular expression as CheckHostName isn't RFC5892 compliant. - // Modified from gSkinner's expression at https://stackoverflow.com/questions/11809631/fully-qualified-domain-name-validation - string pattern = @"(?im)^(?!:\/\/)(?=.{1,255}$)((.{1,63}\.){0,127}(?![0-9]*$)[a-z0-9-]+\.?)(:(\d){1,5}){0,1}$"; - // Is hostname or hostname:port - if (Regex.IsMatch(hosts[0], pattern)) + if (_fqdnRegex.IsMatch(hosts[0])) { try { |
