diff options
Diffstat (limited to 'MediaBrowser.Server.Implementations')
5 files changed, 73 insertions, 6 deletions
diff --git a/MediaBrowser.Server.Implementations/Connect/ConnectManager.cs b/MediaBrowser.Server.Implementations/Connect/ConnectManager.cs index af1628ba4..dc03f14cb 100644 --- a/MediaBrowser.Server.Implementations/Connect/ConnectManager.cs +++ b/MediaBrowser.Server.Implementations/Connect/ConnectManager.cs @@ -1,10 +1,12 @@ -using MediaBrowser.Common.Configuration; +using System.Net; +using MediaBrowser.Common.Configuration; using MediaBrowser.Common.Net; using MediaBrowser.Controller; using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Connect; using MediaBrowser.Controller.Security; using MediaBrowser.Model.Logging; +using MediaBrowser.Model.Net; using MediaBrowser.Model.Serialization; using System; using System.Collections.Generic; @@ -93,11 +95,26 @@ namespace MediaBrowser.Server.Implementations.Connect var hasExistingRecord = !string.IsNullOrWhiteSpace(ConnectServerId) && !string.IsNullOrWhiteSpace(ConnectAccessKey); + var createNewRegistration = !hasExistingRecord; + if (hasExistingRecord) { - await UpdateServerRegistration(wanApiAddress).ConfigureAwait(false); + try + { + await UpdateServerRegistration(wanApiAddress).ConfigureAwait(false); + } + catch (HttpException ex) + { + if (!ex.StatusCode.HasValue || ex.StatusCode.Value != HttpStatusCode.NotFound || ex.StatusCode.Value != HttpStatusCode.Unauthorized) + { + throw; + } + + createNewRegistration = true; + } } - else + + if (createNewRegistration) { await CreateServerRegistration(wanApiAddress).ConfigureAwait(false); } @@ -136,7 +153,6 @@ namespace MediaBrowser.Server.Implementations.Connect url = GetConnectUrl(url); url += "?id=" + ConnectServerId; - // TODO: Add Access-Key http request header var options = new HttpRequestOptions { Url = url, diff --git a/MediaBrowser.Server.Implementations/HttpServer/HttpListenerHost.cs b/MediaBrowser.Server.Implementations/HttpServer/HttpListenerHost.cs index 16ca8b099..15d1eea6d 100644 --- a/MediaBrowser.Server.Implementations/HttpServer/HttpListenerHost.cs +++ b/MediaBrowser.Server.Implementations/HttpServer/HttpListenerHost.cs @@ -168,7 +168,7 @@ namespace MediaBrowser.Server.Implementations.HttpServer _listener = NativeWebSocket.IsSupported ? _listener = new HttpListenerServer(_logger, OnRequestReceived) - //? _listener = new WebSocketSharpListener(_logger) + //? _listener = new WebSocketSharpListener(_logger, OnRequestReceived) : _listener = new WebSocketSharpListener(_logger, OnRequestReceived); _listener.WebSocketHandler = WebSocketHandler; diff --git a/MediaBrowser.Server.Implementations/HttpServer/SocketSharp/SocketSharpLogger.cs b/MediaBrowser.Server.Implementations/HttpServer/SocketSharp/SocketSharpLogger.cs new file mode 100644 index 000000000..ffc99793e --- /dev/null +++ b/MediaBrowser.Server.Implementations/HttpServer/SocketSharp/SocketSharpLogger.cs @@ -0,0 +1,50 @@ +using MediaBrowser.Model.Logging; +using System; + +namespace MediaBrowser.Server.Implementations.HttpServer.SocketSharp +{ + public class SocketSharpLogger : WebSocketSharp.Logging.ILogger + { + private readonly ILogger _logger; + + public SocketSharpLogger(ILogger logger) + { + _logger = logger; + } + + public void Debug(string message, params object[] paramList) + { + _logger.Debug(message, paramList); + } + + public void Error(string message, params object[] paramList) + { + _logger.Error(message, paramList); + } + + public void ErrorException(string message, Exception exception, params object[] paramList) + { + _logger.ErrorException(message, exception, paramList); + } + + public void Fatal(string message, params object[] paramList) + { + _logger.Fatal(message, paramList); + } + + public void FatalException(string message, Exception exception, params object[] paramList) + { + _logger.FatalException(message, exception, paramList); + } + + public void Info(string message, params object[] paramList) + { + _logger.Info(message, paramList); + } + + public void Warn(string message, params object[] paramList) + { + _logger.Warn(message, paramList); + } + } +} diff --git a/MediaBrowser.Server.Implementations/HttpServer/SocketSharp/WebSocketSharpListener.cs b/MediaBrowser.Server.Implementations/HttpServer/SocketSharp/WebSocketSharpListener.cs index f2fae9e90..79916d5ff 100644 --- a/MediaBrowser.Server.Implementations/HttpServer/SocketSharp/WebSocketSharpListener.cs +++ b/MediaBrowser.Server.Implementations/HttpServer/SocketSharp/WebSocketSharpListener.cs @@ -35,7 +35,7 @@ namespace MediaBrowser.Server.Implementations.HttpServer.SocketSharp public void Start(IEnumerable<string> urlPrefixes) { if (_listener == null) - _listener = new WebSocketSharp.Net.HttpListener(); + _listener = new HttpListener(new SocketSharpLogger(_logger)); foreach (var prefix in urlPrefixes) { diff --git a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj index 313063673..24d1447c0 100644 --- a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj +++ b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj @@ -162,6 +162,7 @@ <Compile Include="HttpServer\ServerLogger.cs" /> <Compile Include="HttpServer\Security\SessionContext.cs" /> <Compile Include="HttpServer\SocketSharp\SharpWebSocket.cs" /> + <Compile Include="HttpServer\SocketSharp\SocketSharpLogger.cs" /> <Compile Include="HttpServer\StreamWriter.cs" /> <Compile Include="HttpServer\SwaggerService.cs" /> <Compile Include="Drawing\ImageProcessor.cs" /> |
