add mono CreateWebRequest workaround
This commit is contained in:
parent
c0125c03fd
commit
e8322b4a12
|
@ -446,22 +446,29 @@ namespace MediaBrowser.Api.Playback.Hls
|
|||
|
||||
while (!cancellationToken.IsCancellationRequested)
|
||||
{
|
||||
using (var fileStream = GetPlaylistFileStream(playlistPath))
|
||||
try
|
||||
{
|
||||
using (var reader = new StreamReader(fileStream))
|
||||
using (var fileStream = GetPlaylistFileStream(playlistPath))
|
||||
{
|
||||
while (!reader.EndOfStream)
|
||||
using (var reader = new StreamReader(fileStream))
|
||||
{
|
||||
var text = await reader.ReadLineAsync().ConfigureAwait(false);
|
||||
|
||||
// If it appears in the playlist, it's done
|
||||
if (text.IndexOf(segmentFilename, StringComparison.OrdinalIgnoreCase) != -1)
|
||||
while (!reader.EndOfStream)
|
||||
{
|
||||
return GetSegmentResult(segmentPath, segmentIndex, segmentLength, transcodingJob);
|
||||
var text = await reader.ReadLineAsync().ConfigureAwait(false);
|
||||
|
||||
// If it appears in the playlist, it's done
|
||||
if (text.IndexOf(segmentFilename, StringComparison.OrdinalIgnoreCase) != -1)
|
||||
{
|
||||
return GetSegmentResult(segmentPath, segmentIndex, segmentLength, transcodingJob);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (IOException)
|
||||
{
|
||||
// May get an error if the file is locked
|
||||
}
|
||||
|
||||
await Task.Delay(100, cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
|
|
|
@ -105,6 +105,23 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager
|
|||
return client;
|
||||
}
|
||||
|
||||
private WebRequest CreateWebRequest(string url)
|
||||
{
|
||||
try
|
||||
{
|
||||
return WebRequest.Create(url);
|
||||
}
|
||||
catch (NotSupportedException)
|
||||
{
|
||||
//Webrequest creation does fail on MONO randomly when using WebRequest.Create
|
||||
//the issue occurs in the GetCreator method here: http://www.oschina.net/code/explore/mono-2.8.1/mcs/class/System/System.Net/WebRequest.cs
|
||||
|
||||
var type = Type.GetType("System.Net.HttpRequestCreator, System, Version=4.0.0.0,Culture=neutral, PublicKeyToken=b77a5c561934e089");
|
||||
var creator = Activator.CreateInstance(type, nonPublic: true) as IWebRequestCreate;
|
||||
return creator.Create(new Uri(url)) as HttpWebRequest;
|
||||
}
|
||||
}
|
||||
|
||||
private WebRequest GetRequest(HttpRequestOptions options, string method, bool enableHttpCompression)
|
||||
{
|
||||
var request = WebRequest.Create(options.Url);
|
||||
|
|
|
@ -85,8 +85,8 @@
|
|||
"ButtonDonateWithPayPal": "Donate with PayPal",
|
||||
"OptionDetectArchiveFilesAsMedia": "Detect archive files as media",
|
||||
"OptionDetectArchiveFilesAsMediaHelp": "If enabled, files with .rar and .zip extensions will be detected as media files.",
|
||||
"LabelEnterConnectUserName": "User name or email:",
|
||||
"LabelEnterConnectUserNameHelp": "This is your Emby online account user name or password.",
|
||||
"LabelEnterConnectUserName": "Username or email:",
|
||||
"LabelEnterConnectUserNameHelp": "This is your Emby online account username or password.",
|
||||
"LabelEnableEnhancedMovies": "Enable enhanced movie displays",
|
||||
"LabelEnableEnhancedMoviesHelp": "When enabled, movies will be displayed as folders to include trailers, extras, cast & crew, and other related content.",
|
||||
"HeaderSyncJobInfo": "Sync Job",
|
||||
|
|
|
@ -179,7 +179,8 @@ namespace MediaBrowser.Server.Implementations.ServerManager
|
|||
|
||||
if (!message.StartsWith("{", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
_logger.Error("Received web socket message that is not a json structure: " + message);
|
||||
// This info is useful sometimes but also clogs up the log
|
||||
//_logger.Error("Received web socket message that is not a json structure: " + message);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user