瀏覽代碼

Properly remove event handler

Bond_009 5 年之前
父節點
當前提交
210af0e73e
共有 1 個文件被更改,包括 10 次插入6 次删除
  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();
         }
 
-        private async void OnConfigurationUpdated(object sender, EventArgs e)
+        private void OnConfigurationUpdated(object sender, EventArgs e)
         {
             if (!string.Equals(_lastConfigIdentifier, GetConfigIdentifier(), StringComparison.OrdinalIgnoreCase))
             {
                 Stop();
 
-                await RunAsync().ConfigureAwait(false);
+                Start();
             }
         }
 
         /// <inheritdoc />
         public Task RunAsync()
         {
-            if (_config.Configuration.EnableUPnP && _config.Configuration.EnableRemoteAccess)
-            {
-                Start();
-            }
+            Start();
 
             _config.ConfigurationUpdated += OnConfigurationUpdated;
 
@@ -90,6 +87,11 @@ namespace Emby.Server.Implementations.EntryPoints
 
         private void Start()
         {
+            if (!_config.Configuration.EnableUPnP || !_config.Configuration.EnableRemoteAccess)
+            {
+                return;
+            }
+
             _logger.LogDebug("Starting NAT discovery");
 
             NatUtility.DeviceFound += OnNatUtilityDeviceFound;
@@ -214,6 +216,8 @@ namespace Emby.Server.Implementations.EntryPoints
                 return;
             }
 
+            _config.ConfigurationUpdated -= OnConfigurationUpdated;
+
             Stop();
 
             _timer = null;