aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2015-01-19 02:12:01 -0500
committerLuke Pulverenti <luke.pulverenti@gmail.com>2015-01-19 02:12:01 -0500
commitbdb9cd77bca63a64abd0f23c0958f9ff2e4a1cd6 (patch)
treea16eb4d8f9219d7a5c2e03b85c2299f9d9c85f91
parentbe6418a19e477714a5a277ba33d77e03227e76cf (diff)
fix restart notification for cert config change
-rw-r--r--MediaBrowser.Server.Startup.Common/ApplicationHost.cs58
1 files changed, 33 insertions, 25 deletions
diff --git a/MediaBrowser.Server.Startup.Common/ApplicationHost.cs b/MediaBrowser.Server.Startup.Common/ApplicationHost.cs
index 5ce23fa37..a3e389957 100644
--- a/MediaBrowser.Server.Startup.Common/ApplicationHost.cs
+++ b/MediaBrowser.Server.Startup.Common/ApplicationHost.cs
@@ -780,43 +780,51 @@ namespace MediaBrowser.Server.Startup.Common
/// </summary>
private void StartServer()
{
+ CertificatePath = GetCertificatePath(true);
+
+ try
+ {
+ ServerManager.Start(GetUrlPrefixes(), CertificatePath);
+ }
+ catch (Exception ex)
+ {
+ Logger.ErrorException("Error starting http server", ex);
+
+ throw;
+ }
+ }
+
+ private string GetCertificatePath(bool generateCertificate)
+ {
if (string.IsNullOrWhiteSpace(ServerConfigurationManager.Configuration.CertificatePath))
{
// Generate self-signed cert
var certHost = GetHostnameFromExternalDns(ServerConfigurationManager.Configuration.WanDdns);
var certPath = Path.Combine(ServerConfigurationManager.ApplicationPaths.ProgramDataPath, "ssl", "cert_" + certHost.GetMD5().ToString("N") + ".pfx");
- if (!File.Exists(certPath))
+ if (generateCertificate)
{
- Directory.CreateDirectory(Path.GetDirectoryName(certPath));
-
- try
- {
- NetworkManager.GenerateSelfSignedSslCertificate(certPath, certHost);
- CertificatePath = certHost;
- }
- catch (Exception ex)
+ if (!File.Exists(certPath))
{
- Logger.ErrorException("Error creating ssl cert", ex);
+ Directory.CreateDirectory(Path.GetDirectoryName(certPath));
+
+ try
+ {
+ NetworkManager.GenerateSelfSignedSslCertificate(certPath, certHost);
+ }
+ catch (Exception ex)
+ {
+ Logger.ErrorException("Error creating ssl cert", ex);
+ return null;
+ }
}
}
- }
- else
- {
- // Custom cert
- CertificatePath = ServerConfigurationManager.Configuration.CertificatePath;
- }
- try
- {
- ServerManager.Start(GetUrlPrefixes(), CertificatePath);
+ return certPath;
}
- catch (Exception ex)
- {
- Logger.ErrorException("Error starting http server", ex);
- throw;
- }
+ // Custom cert
+ return ServerConfigurationManager.Configuration.CertificatePath;
}
/// <summary>
@@ -849,7 +857,7 @@ namespace MediaBrowser.Server.Startup.Common
requiresRestart = true;
}
- if (!string.Equals(CertificatePath, ServerConfigurationManager.Configuration.CertificatePath, StringComparison.OrdinalIgnoreCase))
+ if (!string.Equals(CertificatePath, GetCertificatePath(false), StringComparison.OrdinalIgnoreCase))
{
requiresRestart = true;
}