Make proxy port configurable
This commit is contained in:
@@ -20,5 +20,12 @@
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public int IndexerRequestsCacheDurationInMinutes { get; set; } = 12;
|
public int IndexerRequestsCacheDurationInMinutes { get; set; } = 12;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// API key for requests to the UmlautAdaptarr. Optional.
|
||||||
|
public string? ApiKey { get; set; } = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Proxy port for the internal UmlautAdaptarr proxy.
|
||||||
|
public int ProxyPort { get; set; } = 5006;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -8,7 +8,8 @@ using UmlautAdaptarr.Utilities;
|
|||||||
|
|
||||||
internal class Program
|
internal class Program
|
||||||
{
|
{
|
||||||
private static void Main(string[] args) {
|
private static void Main(string[] args)
|
||||||
|
{
|
||||||
MainAsync(args).Wait();
|
MainAsync(args).Wait();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -22,11 +23,6 @@ internal class Program
|
|||||||
|
|
||||||
builder.Services.AddSerilog();
|
builder.Services.AddSerilog();
|
||||||
|
|
||||||
|
|
||||||
// Log all configuration values
|
|
||||||
LogConfigurationValues(configuration);
|
|
||||||
|
|
||||||
|
|
||||||
// Add services to the container.
|
// Add services to the container.
|
||||||
builder.Services.AddHttpClient("HttpClient").ConfigurePrimaryHttpMessageHandler(() =>
|
builder.Services.AddHttpClient("HttpClient").ConfigurePrimaryHttpMessageHandler(() =>
|
||||||
{
|
{
|
||||||
@@ -123,15 +119,4 @@ internal class Program
|
|||||||
//.Enrich.With(new ApiKeyMaskingEnricher("appsettings.json")) // TODO - Not working currently
|
//.Enrich.With(new ApiKeyMaskingEnricher("appsettings.json")) // TODO - Not working currently
|
||||||
.CreateLogger();
|
.CreateLogger();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void LogConfigurationValues(IConfiguration configuration)
|
|
||||||
{
|
|
||||||
Log.Information("Logging all configuration values at startup:");
|
|
||||||
|
|
||||||
foreach (var kvp in configuration.AsEnumerable())
|
|
||||||
{
|
|
||||||
Log.Information("{Key}: {Value}", kvp.Key, kvp.Value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,8 @@
|
|||||||
"http": {
|
"http": {
|
||||||
"commandName": "Project",
|
"commandName": "Project",
|
||||||
"environmentVariables": {
|
"environmentVariables": {
|
||||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
"ASPNETCORE_ENVIRONMENT": "Development",
|
||||||
|
"Kestrel__Endpoints__Http__Url": "http://[::]:8080"
|
||||||
},
|
},
|
||||||
"_launchUrl": "optionsTODO/example.com/api?t=movie&apikey=132&imdbid=123&limit=100",
|
"_launchUrl": "optionsTODO/example.com/api?t=movie&apikey=132&imdbid=123&limit=100",
|
||||||
"dotnetRunMessages": true,
|
"dotnetRunMessages": true,
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
using System.Net;
|
using Microsoft.Extensions.Options;
|
||||||
|
using System.Net;
|
||||||
using System.Net.Sockets;
|
using System.Net.Sockets;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using UmlautAdaptarr.Options;
|
||||||
|
|
||||||
namespace UmlautAdaptarr.Services
|
namespace UmlautAdaptarr.Services
|
||||||
{
|
{
|
||||||
@@ -8,15 +10,16 @@ namespace UmlautAdaptarr.Services
|
|||||||
{
|
{
|
||||||
private TcpListener _listener;
|
private TcpListener _listener;
|
||||||
private readonly ILogger<HttpProxyService> _logger;
|
private readonly ILogger<HttpProxyService> _logger;
|
||||||
private readonly int _proxyPort = 5006; // TODO move to appsettings.json
|
|
||||||
private readonly IHttpClientFactory _clientFactory;
|
private readonly IHttpClientFactory _clientFactory;
|
||||||
|
private readonly GlobalOptions _options;
|
||||||
private readonly HashSet<string> _knownHosts = [];
|
private readonly HashSet<string> _knownHosts = [];
|
||||||
private readonly object _hostsLock = new();
|
private readonly object _hostsLock = new();
|
||||||
private readonly IConfiguration _configuration;
|
private readonly IConfiguration _configuration;
|
||||||
private static readonly string[] newLineSeparator = ["\r\n"];
|
private static readonly string[] newLineSeparator = ["\r\n"];
|
||||||
|
|
||||||
public HttpProxyService(ILogger<HttpProxyService> logger, IHttpClientFactory clientFactory, IConfiguration configuration)
|
public HttpProxyService(ILogger<HttpProxyService> logger, IHttpClientFactory clientFactory, IConfiguration configuration, IOptions<GlobalOptions> options)
|
||||||
{
|
{
|
||||||
|
_options = options.Value;
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
_configuration = configuration;
|
_configuration = configuration;
|
||||||
_clientFactory = clientFactory;
|
_clientFactory = clientFactory;
|
||||||
@@ -168,7 +171,7 @@ namespace UmlautAdaptarr.Services
|
|||||||
|
|
||||||
public Task StartAsync(CancellationToken cancellationToken)
|
public Task StartAsync(CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
_listener = new TcpListener(IPAddress.Any, _proxyPort);
|
_listener = new TcpListener(IPAddress.Any, _options.ProxyPort);
|
||||||
_listener.Start();
|
_listener.Start();
|
||||||
Task.Run(() => HandleRequests(cancellationToken), cancellationToken);
|
Task.Run(() => HandleRequests(cancellationToken), cancellationToken);
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
|
|||||||
@@ -35,6 +35,8 @@ services:
|
|||||||
|
|
||||||
### Advanced options (with default values))
|
### Advanced options (with default values))
|
||||||
#- IpLeakTest__Enabled=false
|
#- IpLeakTest__Enabled=false
|
||||||
#- SETTINGS__IndexerRequestsCacheDurationInMinutes=12
|
#- SETTINGS__IndexerRequestsCacheDurationInMinutes=12 # How long to cache indexer requests for. Default is 12 minutes.
|
||||||
#- Kestrel__Endpoints__Http__Url=http://[::]:8080
|
#- SETTINGS__ApiKey= # API key for requests to the UmlautAdaptarr. Optional, probably only needed for seedboxes.
|
||||||
|
#- SETTINGS__ProxyPort=5006 # Proxy port for the internal UmlautAdaptarr proxy used for Prowlarr.
|
||||||
|
#- Kestrel__Endpoints__Http__Url=http://[::]:5005 # HTTP port for the UmlautAdaptarr
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user