|
@@ -10,6 +10,7 @@ using System.Threading.Tasks;
|
|
using Emby.Server.Implementations.Configuration;
|
|
using Emby.Server.Implementations.Configuration;
|
|
using Emby.Server.Implementations.Serialization;
|
|
using Emby.Server.Implementations.Serialization;
|
|
using Jellyfin.Networking.Manager;
|
|
using Jellyfin.Networking.Manager;
|
|
|
|
+using Jellyfin.Server.Extensions;
|
|
using MediaBrowser.Common.Configuration;
|
|
using MediaBrowser.Common.Configuration;
|
|
using MediaBrowser.Common.Net;
|
|
using MediaBrowser.Common.Net;
|
|
using MediaBrowser.Controller;
|
|
using MediaBrowser.Controller;
|
|
@@ -18,6 +19,7 @@ using MediaBrowser.Model.System;
|
|
using Microsoft.AspNetCore.Builder;
|
|
using Microsoft.AspNetCore.Builder;
|
|
using Microsoft.AspNetCore.Hosting;
|
|
using Microsoft.AspNetCore.Hosting;
|
|
using Microsoft.AspNetCore.Http;
|
|
using Microsoft.AspNetCore.Http;
|
|
|
|
+using Microsoft.AspNetCore.HttpOverrides;
|
|
using Microsoft.Extensions.Configuration;
|
|
using Microsoft.Extensions.Configuration;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.Extensions.Diagnostics.HealthChecks;
|
|
using Microsoft.Extensions.Diagnostics.HealthChecks;
|
|
@@ -138,19 +140,23 @@ public sealed class SetupServer : IDisposable
|
|
|
|
|
|
ThrowIfDisposed();
|
|
ThrowIfDisposed();
|
|
var retryAfterValue = TimeSpan.FromSeconds(5);
|
|
var retryAfterValue = TimeSpan.FromSeconds(5);
|
|
|
|
+ var config = _configurationManager.GetNetworkConfiguration()!;
|
|
_startupServer = Host.CreateDefaultBuilder()
|
|
_startupServer = Host.CreateDefaultBuilder()
|
|
.UseConsoleLifetime()
|
|
.UseConsoleLifetime()
|
|
.ConfigureServices(serv =>
|
|
.ConfigureServices(serv =>
|
|
{
|
|
{
|
|
serv.AddHealthChecks()
|
|
serv.AddHealthChecks()
|
|
.AddCheck<SetupHealthcheck>("StartupCheck");
|
|
.AddCheck<SetupHealthcheck>("StartupCheck");
|
|
|
|
+ serv.Configure<ForwardedHeadersOptions>(options =>
|
|
|
|
+ {
|
|
|
|
+ ApiServiceCollectionExtensions.ConfigureForwardHeaders(config, options);
|
|
|
|
+ });
|
|
})
|
|
})
|
|
.ConfigureWebHostDefaults(webHostBuilder =>
|
|
.ConfigureWebHostDefaults(webHostBuilder =>
|
|
{
|
|
{
|
|
webHostBuilder
|
|
webHostBuilder
|
|
.UseKestrel((builderContext, options) =>
|
|
.UseKestrel((builderContext, options) =>
|
|
{
|
|
{
|
|
- var config = _configurationManager.GetNetworkConfiguration()!;
|
|
|
|
var knownBindInterfaces = NetworkManager.GetInterfacesCore(_loggerFactory.CreateLogger<SetupServer>(), config.EnableIPv4, config.EnableIPv6);
|
|
var knownBindInterfaces = NetworkManager.GetInterfacesCore(_loggerFactory.CreateLogger<SetupServer>(), config.EnableIPv4, config.EnableIPv6);
|
|
knownBindInterfaces = NetworkManager.FilterBindSettings(config, knownBindInterfaces.ToList(), config.EnableIPv4, config.EnableIPv6);
|
|
knownBindInterfaces = NetworkManager.FilterBindSettings(config, knownBindInterfaces.ToList(), config.EnableIPv4, config.EnableIPv6);
|
|
var bindInterfaces = NetworkManager.GetAllBindInterfaces(false, _configurationManager, knownBindInterfaces, config.EnableIPv4, config.EnableIPv6);
|
|
var bindInterfaces = NetworkManager.GetAllBindInterfaces(false, _configurationManager, knownBindInterfaces, config.EnableIPv4, config.EnableIPv6);
|
|
@@ -168,7 +174,7 @@ public sealed class SetupServer : IDisposable
|
|
.Configure(app =>
|
|
.Configure(app =>
|
|
{
|
|
{
|
|
app.UseHealthChecks("/health");
|
|
app.UseHealthChecks("/health");
|
|
-
|
|
|
|
|
|
+ app.UseForwardedHeaders();
|
|
app.Map("/startup/logger", loggerRoute =>
|
|
app.Map("/startup/logger", loggerRoute =>
|
|
{
|
|
{
|
|
loggerRoute.Run(async context =>
|
|
loggerRoute.Run(async context =>
|