private void DisposeNat() { _logger.LogDebug("Stopping NAT discovery"); if (_timer != null) { _timer.Dispose(); _timer = null; } _deviceDiscovery.DeviceDiscovered -= _deviceDiscovery_DeviceDiscovered; var natManager = _natManager; if (natManager != null) { _natManager = null; using (natManager) { try { natManager.StopDiscovery(); natManager.DeviceFound -= NatUtility_DeviceFound; } catch (Exception ex) { _logger.LogError(ex, "Error stopping NAT Discovery"); } } } }
private void Start() { _logger.LogDebug("Starting NAT discovery"); if (_natManager == null) { _natManager = new NatManager(_logger, _httpClient); _natManager.DeviceFound += NatUtility_DeviceFound; _natManager.StartDiscovery(); } _timer = _timerFactory.Create(ClearCreatedRules, null, TimeSpan.FromMinutes(10), TimeSpan.FromMinutes(10)); _deviceDiscovery.DeviceDiscovered += _deviceDiscovery_DeviceDiscovered; _lastConfigIdentifier = GetConfigIdentifier(); }