فهرست منبع

Configure Kestrel listener to use configured IPs

Joshua Boniface 5 سال پیش
والد
کامیت
cabb9aed31
1فایلهای تغییر یافته به همراه26 افزوده شده و 3 حذف شده
  1. 26 3
      Emby.Server.Implementations/ApplicationHost.cs

+ 26 - 3
Emby.Server.Implementations/ApplicationHost.cs

@@ -615,11 +615,34 @@ namespace Emby.Server.Implementations
             var host = new WebHostBuilder()
                 .UseKestrel(options =>
                 {
-                    options.ListenAnyIP(HttpPort);
+                    var addresses = ServerConfigurationManager
+                        .Configuration
+                        .LocalNetworkAddresses
+                        .Select(NormalizeConfiguredLocalAddress)
+                        .Where(i => i != null)
+                        .ToList();
+                    if (addresses.Any())
+                    {
+                        foreach (var address in addresses)
+                        {
+                            Logger.LogInformation("Kestrel listening on {ipaddr}", address);
+                            options.Listen(address, HttpPort);
 
-                    if (EnableHttps && Certificate != null)
+                            if (EnableHttps && Certificate != null)
+                            {
+                                options.Listen(address, HttpsPort, listenOptions => listenOptions.UseHttps(Certificate));
+                            }
+                        }
+                    }
+                    else
                     {
-                        options.ListenAnyIP(HttpsPort, listenOptions => listenOptions.UseHttps(Certificate));
+                        Logger.LogInformation("Kestrel listening on all interfaces");
+                        options.ListenAnyIP(HttpPort);
+
+                        if (EnableHttps && Certificate != null)
+                        {
+                            options.ListenAnyIP(HttpsPort, listenOptions => listenOptions.UseHttps(Certificate));
+                        }
                     }
                 })
                 .UseContentRoot(contentRoot)