You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Lidarr/src/NzbDrone.Common/Http/Proxy/HttpProxySettings.cs

58 lines
1.8 KiB

using NzbDrone.Common.Extensions;
namespace NzbDrone.Common.Http.Proxy
{
public class HttpProxySettings
{
public HttpProxySettings(ProxyType type, string host, int port, string bypassFilter, bool bypassLocalAddress, string username = null, string password = null)
{
Type = type;
Host = host.IsNullOrWhiteSpace() ? "127.0.0.1" : host;
Port = port;
Username = username ?? string.Empty;
Password = password ?? string.Empty;
BypassFilter = bypassFilter ?? string.Empty;
BypassLocalAddress = bypassLocalAddress;
}
public ProxyType Type { get; private set; }
public string Host { get; private set; }
public int Port { get; private set; }
public string Username { get; private set; }
public string Password { get; private set; }
public string BypassFilter { get; private set; }
public bool BypassLocalAddress { get; private set; }
public string[] BypassListAsArray
{
get
{
if (!string.IsNullOrWhiteSpace(BypassFilter))
{
var hostlist = BypassFilter.Split(',');
for (int i = 0; i < hostlist.Length; i++)
{
if (hostlist[i].StartsWith("*"))
{
hostlist[i] = ";" + hostlist[i];
}
}
return hostlist;
}
return System.Array.Empty<string>();
}
}
public string Key => string.Join("_",
Type,
Host,
Port,
Username,
Password,
BypassFilter,
BypassLocalAddress);
}
}