aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs31
-rw-r--r--MediaBrowser.Mono.userprefs16
-rw-r--r--MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj1
-rw-r--r--MediaBrowser.Server.Mono/MediaBrowser.Server.Mono.csproj3
-rw-r--r--MediaBrowser.Server.Mono/Program.cs15
-rw-r--r--MediaBrowser.ServerApplication/MainStartup.cs13
6 files changed, 66 insertions, 13 deletions
diff --git a/MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs b/MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs
index 4d1a9c0d4..b75234107 100644
--- a/MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs
+++ b/MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs
@@ -471,7 +471,10 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager
foreach (var pair in options.RequestHeaders.ToList())
{
- message.Headers.Add(pair.Key, pair.Value);
+ if (!message.Headers.TryAddWithoutValidation(pair.Key, pair.Value))
+ {
+ _logger.Error("Unable to add request header {0} with value {1}", pair.Key, pair.Value);
+ }
}
return message;
@@ -484,9 +487,31 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager
/// <returns>System.Nullable{System.Int64}.</returns>
private long? GetContentLength(HttpResponseMessage response)
{
- IEnumerable<string> lengthValues;
+ IEnumerable<string> lengthValues = null;
+
+ // Seeing some InvalidOperationException here under mono
+ try
+ {
+ response.Headers.TryGetValues("content-length", out lengthValues);
+ }
+ catch (InvalidOperationException ex)
+ {
+ _logger.ErrorException("Error accessing response.Headers.TryGetValues Content-Length", ex);
+ }
+
+ if (lengthValues == null)
+ {
+ try
+ {
+ response.Content.Headers.TryGetValues("content-length", out lengthValues);
+ }
+ catch (InvalidOperationException ex)
+ {
+ _logger.ErrorException("Error accessing response.Content.Headers.TryGetValues Content-Length", ex);
+ }
+ }
- if (!response.Headers.TryGetValues("content-length", out lengthValues) && !response.Content.Headers.TryGetValues("content-length", out lengthValues))
+ if (lengthValues == null)
{
return null;
}
diff --git a/MediaBrowser.Mono.userprefs b/MediaBrowser.Mono.userprefs
index c2875801e..b773d7aef 100644
--- a/MediaBrowser.Mono.userprefs
+++ b/MediaBrowser.Mono.userprefs
@@ -1,23 +1,25 @@
<Properties>
<MonoDevelop.Ide.Workspace ActiveConfiguration="Debug|x86" />
- <MonoDevelop.Ide.Workbench ActiveDocument="MediaBrowser.Server.Mono\FFMpeg\FFMpegDownloadInfo.cs">
+ <MonoDevelop.Ide.Workbench ActiveDocument="MediaBrowser.Model\Web\QueryStringDictionary.cs">
<Files>
<File FileName="MediaBrowser.Server.Implementations\HttpServer\HttpServer.cs" Line="1" Column="1" />
<File FileName="MediaBrowser.Server.Mono\Networking\NetworkManager.cs" Line="1" Column="1" />
<File FileName="MediaBrowser.ServerApplication\ApplicationHost.cs" Line="1" Column="1" />
<File FileName="MediaBrowser.Server.Mono\Native\NativeApp.cs" Line="1" Column="1" />
<File FileName="MediaBrowser.Server.Mono\Program.cs" Line="1" Column="1" />
- <File FileName="MediaBrowser.ServerApplication\FFMpeg\FFMpegDownloader.cs" Line="1" Column="1" />
- <File FileName="MediaBrowser.Server.Mono\FFMpeg\FFMpegDownloadInfo.cs" Line="21" Column="1" />
+ <File FileName="MediaBrowser.ServerApplication\FFMpeg\FFMpegDownloader.cs" Line="31" Column="30" />
+ <File FileName="MediaBrowser.Server.Mono\FFMpeg\FFMpegDownloadInfo.cs" Line="1" Column="1" />
+ <File FileName="MediaBrowser.Model\Web\QueryStringDictionary.cs" Line="26" Column="10" />
</Files>
<Pads>
<Pad Id="ProjectPad">
<State expanded="True">
- <Node name="MediaBrowser.Model" expanded="True" />
+ <Node name="MediaBrowser.Model" expanded="True">
+ <Node name="References" expanded="True" selected="True" />
+ <Node name="Web" expanded="True" />
+ </Node>
<Node name="MediaBrowser.Server.Mono" expanded="True">
- <Node name="FFMpeg" expanded="True">
- <Node name="FFMpegDownloadInfo.cs" selected="True" />
- </Node>
+ <Node name="FFMpeg" expanded="True" />
</Node>
</State>
</Pad>
diff --git a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj
index f10eff166..7dab3aee5 100644
--- a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj
+++ b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj
@@ -259,7 +259,6 @@
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
- <None Include="sqlite3.dll" />
</ItemGroup>
<ItemGroup>
<Content Include="swagger-ui\css\hightlight.default.css">
diff --git a/MediaBrowser.Server.Mono/MediaBrowser.Server.Mono.csproj b/MediaBrowser.Server.Mono/MediaBrowser.Server.Mono.csproj
index de3d2d0cb..2c99f3370 100644
--- a/MediaBrowser.Server.Mono/MediaBrowser.Server.Mono.csproj
+++ b/MediaBrowser.Server.Mono/MediaBrowser.Server.Mono.csproj
@@ -135,5 +135,8 @@
<None Include="tray.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
+ <None Include="sqlite3.dll">
+ <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+ </None>
</ItemGroup>
</Project> \ No newline at end of file
diff --git a/MediaBrowser.Server.Mono/Program.cs b/MediaBrowser.Server.Mono/Program.cs
index 2c2390a81..ea6cca6ff 100644
--- a/MediaBrowser.Server.Mono/Program.cs
+++ b/MediaBrowser.Server.Mono/Program.cs
@@ -206,7 +206,7 @@ namespace MediaBrowser.Server.Mono
{
var exception = (Exception)e.ExceptionObject;
- _logger.ErrorException("UnhandledException", exception);
+ LogUnhandledException(exception);
if (!Debugger.IsAttached)
{
@@ -214,6 +214,19 @@ namespace MediaBrowser.Server.Mono
}
}
+ private static void LogUnhandledException(Exception ex)
+ {
+ _logger.ErrorException("UnhandledException", ex);
+
+ _appHost.LogManager.Flush ();
+
+ var path = Path.Combine(_appHost.ServerConfigurationManager.ApplicationPaths.LogDirectoryPath, "crash_" + Guid.NewGuid() + ".txt");
+
+ var builder = LogHelper.GetLogMessage(ex);
+
+ File.WriteAllText(path, builder.ToString());
+ }
+
/// <summary>
/// Performs the update if needed.
/// </summary>
diff --git a/MediaBrowser.ServerApplication/MainStartup.cs b/MediaBrowser.ServerApplication/MainStartup.cs
index f61b0f1d1..c6bd65750 100644
--- a/MediaBrowser.ServerApplication/MainStartup.cs
+++ b/MediaBrowser.ServerApplication/MainStartup.cs
@@ -398,7 +398,7 @@ namespace MediaBrowser.ServerApplication
{
var exception = (Exception)e.ExceptionObject;
- _logger.ErrorException("UnhandledException", exception);
+ LogUnhandledException(exception);
_appHost.LogManager.Flush();
@@ -413,6 +413,17 @@ namespace MediaBrowser.ServerApplication
}
}
+ private static void LogUnhandledException(Exception ex)
+ {
+ _logger.ErrorException("UnhandledException", ex);
+
+ var path = Path.Combine(_appHost.ServerConfigurationManager.ApplicationPaths.LogDirectoryPath, "crash_" + Guid.NewGuid() + ".txt");
+
+ var builder = LogHelper.GetLogMessage(ex);
+
+ File.WriteAllText(path, builder.ToString());
+ }
+
/// <summary>
/// Performs the update if needed.
/// </summary>