aboutsummaryrefslogtreecommitdiff
path: root/Emby.Server.Implementations
diff options
context:
space:
mode:
Diffstat (limited to 'Emby.Server.Implementations')
-rw-r--r--Emby.Server.Implementations/ApplicationHost.cs17
-rw-r--r--Emby.Server.Implementations/EntryPoints/StartupWizard.cs7
-rw-r--r--Emby.Server.Implementations/Networking/NetworkManager.cs19
-rw-r--r--Emby.Server.Implementations/Session/HttpSessionController.cs2
-rw-r--r--Emby.Server.Implementations/Session/SessionManager.cs4
-rw-r--r--Emby.Server.Implementations/Session/WebSocketController.cs6
6 files changed, 33 insertions, 22 deletions
diff --git a/Emby.Server.Implementations/ApplicationHost.cs b/Emby.Server.Implementations/ApplicationHost.cs
index 9a159194e..abc6c3566 100644
--- a/Emby.Server.Implementations/ApplicationHost.cs
+++ b/Emby.Server.Implementations/ApplicationHost.cs
@@ -361,7 +361,7 @@ namespace Emby.Server.Implementations
protected IAuthService AuthService { get; private set; }
- protected readonly StartupOptions StartupOptions;
+ public StartupOptions StartupOptions { get; private set; }
protected readonly string ReleaseAssetFilename;
internal IPowerManagement PowerManagement { get; private set; }
@@ -1950,6 +1950,21 @@ namespace Emby.Server.Implementations
};
}
+ public async Task<PublicSystemInfo> GetPublicSystemInfo(CancellationToken cancellationToken)
+ {
+ var localAddress = await GetLocalApiUrl(cancellationToken).ConfigureAwait(false);
+
+ return new PublicSystemInfo
+ {
+ Version = ApplicationVersion.ToString(),
+ Id = SystemId,
+ OperatingSystem = EnvironmentInfo.OperatingSystem.ToString(),
+ WanAddress = ConnectManager.WanApiAddress,
+ ServerName = FriendlyName,
+ LocalAddress = localAddress
+ };
+ }
+
public bool EnableHttps
{
get
diff --git a/Emby.Server.Implementations/EntryPoints/StartupWizard.cs b/Emby.Server.Implementations/EntryPoints/StartupWizard.cs
index 8d1355795..746edf9e7 100644
--- a/Emby.Server.Implementations/EntryPoints/StartupWizard.cs
+++ b/Emby.Server.Implementations/EntryPoints/StartupWizard.cs
@@ -41,7 +41,12 @@ namespace Emby.Server.Implementations.EntryPoints
}
else if (_config.Configuration.IsStartupWizardCompleted)
{
- BrowserLauncher.OpenDashboardPage("index.html", _appHost);
+ var options = ((ApplicationHost)_appHost).StartupOptions;
+
+ if (!options.ContainsOption("-service") && !options.ContainsOption("-nobrowser"))
+ {
+ BrowserLauncher.OpenDashboardPage("index.html", _appHost);
+ }
}
}
diff --git a/Emby.Server.Implementations/Networking/NetworkManager.cs b/Emby.Server.Implementations/Networking/NetworkManager.cs
index 30a3ff9e8..60da8a012 100644
--- a/Emby.Server.Implementations/Networking/NetworkManager.cs
+++ b/Emby.Server.Implementations/Networking/NetworkManager.cs
@@ -11,15 +11,12 @@ using MediaBrowser.Model.Extensions;
using MediaBrowser.Model.IO;
using MediaBrowser.Model.Logging;
using MediaBrowser.Model.Net;
-using System.Threading;
namespace Emby.Server.Implementations.Networking
{
public class NetworkManager : INetworkManager
{
protected ILogger Logger { get; private set; }
- private DateTime _lastRefresh;
- private int NetworkCacheMinutes = 720;
public event EventHandler NetworkChanged;
@@ -33,7 +30,6 @@ namespace Emby.Server.Implementations.Networking
}
catch (Exception ex)
{
- NetworkCacheMinutes = 15;
Logger.ErrorException("Error binding to NetworkAddressChanged event", ex);
}
@@ -43,7 +39,6 @@ namespace Emby.Server.Implementations.Networking
}
catch (Exception ex)
{
- NetworkCacheMinutes = 15;
Logger.ErrorException("Error binding to NetworkChange_NetworkAvailabilityChanged event", ex);
}
}
@@ -51,19 +46,21 @@ namespace Emby.Server.Implementations.Networking
private void NetworkChange_NetworkAvailabilityChanged(object sender, NetworkAvailabilityEventArgs e)
{
Logger.Debug("NetworkAvailabilityChanged");
- _lastRefresh = DateTime.MinValue;
OnNetworkChanged();
}
private void NetworkChange_NetworkAddressChanged(object sender, EventArgs e)
{
Logger.Debug("NetworkAddressChanged");
- _lastRefresh = DateTime.MinValue;
OnNetworkChanged();
}
private void OnNetworkChanged()
{
+ lock (_localIpAddressSyncLock)
+ {
+ _localIpAddresses = null;
+ }
if (NetworkChanged != null)
{
NetworkChanged(this, EventArgs.Empty);
@@ -77,20 +74,16 @@ namespace Emby.Server.Implementations.Networking
{
lock (_localIpAddressSyncLock)
{
- var forceRefresh = (DateTime.UtcNow - _lastRefresh).TotalMinutes >= NetworkCacheMinutes;
-
- if (_localIpAddresses == null || forceRefresh)
+ if (_localIpAddresses == null)
{
var addresses = GetLocalIpAddressesInternal().Result.Select(ToIpAddressInfo).ToList();
_localIpAddresses = addresses;
- _lastRefresh = DateTime.UtcNow;
return addresses;
}
+ return _localIpAddresses;
}
-
- return _localIpAddresses;
}
private async Task<List<IPAddress>> GetLocalIpAddressesInternal()
diff --git a/Emby.Server.Implementations/Session/HttpSessionController.cs b/Emby.Server.Implementations/Session/HttpSessionController.cs
index e85254420..6725cd7af 100644
--- a/Emby.Server.Implementations/Session/HttpSessionController.cs
+++ b/Emby.Server.Implementations/Session/HttpSessionController.cs
@@ -151,7 +151,7 @@ namespace Emby.Server.Implementations.Session
return SendMessage("LibraryChanged", info, cancellationToken);
}
- public Task SendRestartRequiredNotification(SystemInfo info, CancellationToken cancellationToken)
+ public Task SendRestartRequiredNotification(CancellationToken cancellationToken)
{
return SendMessage("RestartRequired", cancellationToken);
}
diff --git a/Emby.Server.Implementations/Session/SessionManager.cs b/Emby.Server.Implementations/Session/SessionManager.cs
index f49251da5..6b70f2cda 100644
--- a/Emby.Server.Implementations/Session/SessionManager.cs
+++ b/Emby.Server.Implementations/Session/SessionManager.cs
@@ -1182,13 +1182,11 @@ namespace Emby.Server.Implementations.Session
{
var sessions = Sessions.Where(i => i.IsActive && i.SessionController != null).ToList();
- var info = await _appHost.GetSystemInfo(cancellationToken).ConfigureAwait(false);
-
var tasks = sessions.Select(session => Task.Run(async () =>
{
try
{
- await session.SessionController.SendRestartRequiredNotification(info, cancellationToken).ConfigureAwait(false);
+ await session.SessionController.SendRestartRequiredNotification(cancellationToken).ConfigureAwait(false);
}
catch (Exception ex)
{
diff --git a/Emby.Server.Implementations/Session/WebSocketController.cs b/Emby.Server.Implementations/Session/WebSocketController.cs
index ee9ee8969..b13eb6116 100644
--- a/Emby.Server.Implementations/Session/WebSocketController.cs
+++ b/Emby.Server.Implementations/Session/WebSocketController.cs
@@ -145,12 +145,12 @@ namespace Emby.Server.Implementations.Session
/// <param name="info">The information.</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>Task.</returns>
- public Task SendRestartRequiredNotification(SystemInfo info, CancellationToken cancellationToken)
+ public Task SendRestartRequiredNotification(CancellationToken cancellationToken)
{
- return SendMessagesInternal(new WebSocketMessage<SystemInfo>
+ return SendMessagesInternal(new WebSocketMessage<string>
{
MessageType = "RestartRequired",
- Data = info
+ Data = string.Empty
}, cancellationToken);
}