Browse Source

Properly remove event handler

Bond_009 5 years ago
parent
commit
210af0e73e
1 changed files with 10 additions and 6 deletions
  1. 10 6
      Emby.Server.Implementations/EntryPoints/ExternalPortForwarding.cs

+ 10 - 6
Emby.Server.Implementations/EntryPoints/ExternalPortForwarding.cs

@@ -65,23 +65,20 @@ namespace Emby.Server.Implementations.EntryPoints
                 .ToString();
                 .ToString();
         }
         }
 
 
-        private async void OnConfigurationUpdated(object sender, EventArgs e)
+        private void OnConfigurationUpdated(object sender, EventArgs e)
         {
         {
             if (!string.Equals(_lastConfigIdentifier, GetConfigIdentifier(), StringComparison.OrdinalIgnoreCase))
             if (!string.Equals(_lastConfigIdentifier, GetConfigIdentifier(), StringComparison.OrdinalIgnoreCase))
             {
             {
                 Stop();
                 Stop();
 
 
-                await RunAsync().ConfigureAwait(false);
+                Start();
             }
             }
         }
         }
 
 
         /// <inheritdoc />
         /// <inheritdoc />
         public Task RunAsync()
         public Task RunAsync()
         {
         {
-            if (_config.Configuration.EnableUPnP && _config.Configuration.EnableRemoteAccess)
-            {
-                Start();
-            }
+            Start();
 
 
             _config.ConfigurationUpdated += OnConfigurationUpdated;
             _config.ConfigurationUpdated += OnConfigurationUpdated;
 
 
@@ -90,6 +87,11 @@ namespace Emby.Server.Implementations.EntryPoints
 
 
         private void Start()
         private void Start()
         {
         {
+            if (!_config.Configuration.EnableUPnP || !_config.Configuration.EnableRemoteAccess)
+            {
+                return;
+            }
+
             _logger.LogDebug("Starting NAT discovery");
             _logger.LogDebug("Starting NAT discovery");
 
 
             NatUtility.DeviceFound += OnNatUtilityDeviceFound;
             NatUtility.DeviceFound += OnNatUtilityDeviceFound;
@@ -214,6 +216,8 @@ namespace Emby.Server.Implementations.EntryPoints
                 return;
                 return;
             }
             }
 
 
+            _config.ConfigurationUpdated -= OnConfigurationUpdated;
+
             Stop();
             Stop();
 
 
             _timer = null;
             _timer = null;