aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Reed <ebr@mediabrowser3.com>2013-05-07 15:27:23 -0400
committerEric Reed <ebr@mediabrowser3.com>2013-05-07 15:27:23 -0400
commit52a726786477fc94f137fc5ac93b8bed99a78110 (patch)
treeb72826476f41aa58f4e254431a9b2c64eded2115
parent67f2b1b2bacee5ef3272076e84b1bf305f9b69c7 (diff)
parent0934a9ca766ae6794e7e8aa506ebf48c63a25526 (diff)
Merge branch 'master' of https://github.com/MediaBrowser/MediaBrowser
-rw-r--r--MediaBrowser.Common.Implementations/BaseApplicationHost.cs4
-rw-r--r--MediaBrowser.Server.Implementations/IO/DirectoryWatchers.cs16
-rw-r--r--MediaBrowser.Server.Implementations/MediaEncoder/MediaEncoder.cs31
-rw-r--r--MediaBrowser.Server.Implementations/Providers/ProviderManager.cs8
-rw-r--r--MediaBrowser.Server.Implementations/ServerManager/ServerManager.cs14
-rw-r--r--MediaBrowser.ServerApplication/ApplicationHost.cs49
6 files changed, 92 insertions, 30 deletions
diff --git a/MediaBrowser.Common.Implementations/BaseApplicationHost.cs b/MediaBrowser.Common.Implementations/BaseApplicationHost.cs
index c0959de85..386da0ffa 100644
--- a/MediaBrowser.Common.Implementations/BaseApplicationHost.cs
+++ b/MediaBrowser.Common.Implementations/BaseApplicationHost.cs
@@ -201,7 +201,7 @@ namespace MediaBrowser.Common.Implementations
Task.Run(() => ConfigureAutoRunAtStartup());
- ConfigurationManager.ConfigurationUpdated += ConfigurationManager_ConfigurationUpdated;
+ ConfigurationManager.ConfigurationUpdated += OnConfigurationUpdated;
});
}
@@ -459,7 +459,7 @@ namespace MediaBrowser.Common.Implementations
/// <param name="sender">The source of the event.</param>
/// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param>
/// <exception cref="System.NotImplementedException"></exception>
- void ConfigurationManager_ConfigurationUpdated(object sender, EventArgs e)
+ protected virtual void OnConfigurationUpdated(object sender, EventArgs e)
{
ConfigureAutoRunAtStartup();
}
diff --git a/MediaBrowser.Server.Implementations/IO/DirectoryWatchers.cs b/MediaBrowser.Server.Implementations/IO/DirectoryWatchers.cs
index 5413cefc3..beeb1c181 100644
--- a/MediaBrowser.Server.Implementations/IO/DirectoryWatchers.cs
+++ b/MediaBrowser.Server.Implementations/IO/DirectoryWatchers.cs
@@ -410,11 +410,13 @@ namespace MediaBrowser.Server.Implementations.IO
return false;
}
- FileStream stream = null;
-
try
{
- stream = new FileStream(path, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
+ using (new FileStream(path, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite))
+ {
+ //file is not locked
+ return false;
+ }
}
catch
{
@@ -424,14 +426,6 @@ namespace MediaBrowser.Server.Implementations.IO
//or does not exist (has already been processed)
return true;
}
- finally
- {
- if (stream != null)
- stream.Close();
- }
-
- //file is not locked
- return false;
}
/// <summary>
diff --git a/MediaBrowser.Server.Implementations/MediaEncoder/MediaEncoder.cs b/MediaBrowser.Server.Implementations/MediaEncoder/MediaEncoder.cs
index d02031fe6..ce39ffc06 100644
--- a/MediaBrowser.Server.Implementations/MediaEncoder/MediaEncoder.cs
+++ b/MediaBrowser.Server.Implementations/MediaEncoder/MediaEncoder.cs
@@ -682,6 +682,7 @@ namespace MediaBrowser.Server.Implementations.MediaEncoder
throw new ApplicationException(msg);
}
+ await SetAssFont(outputPath).ConfigureAwait(false);
}
/// <summary>
@@ -843,6 +844,36 @@ namespace MediaBrowser.Server.Implementations.MediaEncoder
throw new ApplicationException(msg);
}
+
+ await SetAssFont(outputPath).ConfigureAwait(false);
+ }
+
+ /// <summary>
+ /// Sets the ass font.
+ /// </summary>
+ /// <param name="file">The file.</param>
+ /// <returns>Task.</returns>
+ private async Task SetAssFont(string file)
+ {
+ string text;
+ Encoding encoding;
+
+ using (var reader = new StreamReader(file, detectEncodingFromByteOrderMarks: true))
+ {
+ encoding = reader.CurrentEncoding;
+
+ text = await reader.ReadToEndAsync().ConfigureAwait(false);
+ }
+
+ var newText = text.Replace(",Arial,", ",Arial Unicode MS,");
+
+ if (!string.Equals(text, newText))
+ {
+ using (var writer = new StreamWriter(file, false, encoding))
+ {
+ writer.Write(newText);
+ }
+ }
}
/// <summary>
diff --git a/MediaBrowser.Server.Implementations/Providers/ProviderManager.cs b/MediaBrowser.Server.Implementations/Providers/ProviderManager.cs
index 569fb8e02..12cc85912 100644
--- a/MediaBrowser.Server.Implementations/Providers/ProviderManager.cs
+++ b/MediaBrowser.Server.Implementations/Providers/ProviderManager.cs
@@ -457,9 +457,9 @@ namespace MediaBrowser.Server.Implementations.Providers
{
var ms = new MemoryStream();
- using (var input = dataToSave)
+ using (dataToSave)
{
- await input.CopyToAsync(ms).ConfigureAwait(false);
+ await dataToSave.CopyToAsync(ms).ConfigureAwait(false);
}
ms.Position = 0;
@@ -470,9 +470,9 @@ namespace MediaBrowser.Server.Implementations.Providers
{
using (var fs = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.Read, StreamDefaults.DefaultFileStreamBufferSize, FileOptions.Asynchronous))
{
- using (var input = dataToSave)
+ using (dataToSave)
{
- await input.CopyToAsync(fs, StreamDefaults.DefaultCopyToBufferSize, cancellationToken).ConfigureAwait(false);
+ await dataToSave.CopyToAsync(fs, StreamDefaults.DefaultCopyToBufferSize, cancellationToken).ConfigureAwait(false);
}
}
diff --git a/MediaBrowser.Server.Implementations/ServerManager/ServerManager.cs b/MediaBrowser.Server.Implementations/ServerManager/ServerManager.cs
index 2131d9011..a45804f69 100644
--- a/MediaBrowser.Server.Implementations/ServerManager/ServerManager.cs
+++ b/MediaBrowser.Server.Implementations/ServerManager/ServerManager.cs
@@ -114,6 +114,8 @@ namespace MediaBrowser.Server.Implementations.ServerManager
_applicationHost = applicationHost;
ConfigurationManager = configurationManager;
_kernel = kernel;
+
+ ConfigurationManager.ConfigurationUpdated += ConfigurationUpdated;
}
/// <summary>
@@ -127,8 +129,6 @@ namespace MediaBrowser.Server.Implementations.ServerManager
{
ReloadExternalWebSocketServer();
}
-
- ConfigurationManager.ConfigurationUpdated += ConfigurationUpdated;
}
/// <summary>
@@ -352,16 +352,6 @@ namespace MediaBrowser.Server.Implementations.ServerManager
void ConfigurationUpdated(object sender, EventArgs e)
{
HttpServer.EnableHttpRequestLogging = ConfigurationManager.Configuration.EnableHttpLevelLogging;
-
- if (!string.Equals(HttpServer.UrlPrefix, _kernel.HttpServerUrlPrefix, StringComparison.OrdinalIgnoreCase))
- {
- ReloadHttpServer();
- }
-
- if (!SupportsNativeWebSocket && ExternalWebSocketServer != null && ExternalWebSocketServer.Port != ConfigurationManager.Configuration.LegacyWebSocketPortNumber)
- {
- ReloadExternalWebSocketServer();
- }
}
/// <summary>
diff --git a/MediaBrowser.ServerApplication/ApplicationHost.cs b/MediaBrowser.ServerApplication/ApplicationHost.cs
index 07e615b1d..37e6d1b8d 100644
--- a/MediaBrowser.ServerApplication/ApplicationHost.cs
+++ b/MediaBrowser.ServerApplication/ApplicationHost.cs
@@ -382,7 +382,8 @@ namespace MediaBrowser.ServerApplication
HttpServer.Init(GetExports<IRestfulService>(false));
ServerManager.AddWebSocketListeners(GetExports<IWebSocketListener>(false));
- ServerManager.Start();
+
+ StartServer(true);
},
() => LibraryManager.AddParts(GetExports<IResolverIgnoreRule>(), GetExports<IVirtualFolderCreator>(), GetExports<IItemResolver>(), GetExports<IIntroProvider>(), GetExports<IBaseItemComparer>()),
@@ -406,6 +407,52 @@ namespace MediaBrowser.ServerApplication
}
/// <summary>
+ /// Starts the server.
+ /// </summary>
+ /// <param name="retryOnFailure">if set to <c>true</c> [retry on failure].</param>
+ private void StartServer(bool retryOnFailure)
+ {
+ try
+ {
+ ServerManager.Start();
+ }
+ catch
+ {
+ if (retryOnFailure)
+ {
+ RegisterServerWithAdministratorAccess();
+
+ StartServer(false);
+ }
+ else
+ {
+ throw;
+ }
+ }
+ }
+
+ /// <summary>
+ /// Called when [configuration updated].
+ /// </summary>
+ /// <param name="sender">The sender.</param>
+ /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
+ protected override void OnConfigurationUpdated(object sender, EventArgs e)
+ {
+ base.OnConfigurationUpdated(sender, e);
+
+ if (!string.Equals(HttpServer.UrlPrefix, ServerKernel.HttpServerUrlPrefix, StringComparison.OrdinalIgnoreCase))
+ {
+ NotifyPendingRestart();
+ }
+
+ else if (!ServerManager.SupportsNativeWebSocket && ServerManager.WebSocketPortNumber != ServerConfigurationManager.Configuration.LegacyWebSocketPortNumber)
+ {
+ NotifyPendingRestart();
+ }
+
+ }
+
+ /// <summary>
/// Restarts this instance.
/// </summary>
public override void Restart()