Fixing docker bind issue (#1852)

# Fixed:
- Fixed an issue for docker users conflicting with a previous feature inclusion for multiple IP addresses
This commit is contained in:
Robbie Davis 2023-03-06 13:33:55 -05:00 committed by GitHub
parent c07f174baf
commit 4c837170d7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,4 +1,4 @@
using System; using System;
using System.IO.Abstractions; using System.IO.Abstractions;
using System.Linq; using System.Linq;
using System.Security.Cryptography; using System.Security.Cryptography;
@ -10,6 +10,7 @@ using API.Logging;
using API.Services; using API.Services;
using API.SignalR; using API.SignalR;
using Kavita.Common; using Kavita.Common;
using Kavita.Common.EnvironmentInfo;
using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Server.Kestrel.Core; using Microsoft.AspNetCore.Server.Kestrel.Core;
@ -172,7 +173,7 @@ public class Program
webBuilder.UseKestrel((opts) => webBuilder.UseKestrel((opts) =>
{ {
var ipAddresses = Configuration.IpAddresses; var ipAddresses = Configuration.IpAddresses;
if (string.IsNullOrEmpty(ipAddresses)) if (new OsInfo(Array.Empty<IOsVersionAdapter>()).IsDocker || string.IsNullOrEmpty(ipAddresses))
{ {
opts.ListenAnyIP(HttpPort, options => { options.Protocols = HttpProtocols.Http1AndHttp2; }); opts.ListenAnyIP(HttpPort, options => { options.Protocols = HttpProtocols.Http1AndHttp2; });
} }
@ -180,17 +181,17 @@ public class Program
{ {
foreach (var ipAddress in ipAddresses.Split(',')) foreach (var ipAddress in ipAddresses.Split(','))
{ {
try { try
{
var address = System.Net.IPAddress.Parse(ipAddress.Trim()); var address = System.Net.IPAddress.Parse(ipAddress.Trim());
opts.Listen(address, HttpPort, options => { options.Protocols = HttpProtocols.Http1AndHttp2; }); opts.Listen(address, HttpPort, options => { options.Protocols = HttpProtocols.Http1AndHttp2; });
} }
catch (Exception ex) catch (Exception ex)
{ {
Log.Fatal(ex, "Could not parse ip addess '{0}'", ipAddress); Log.Fatal(ex, "Could not parse ip address {IPAddress}", ipAddress);
} }
} }
} }
});
webBuilder.UseStartup<Startup>(); webBuilder.UseStartup<Startup>();
}); });