close method

  1. @override
Future<void> close()
override

Implementation

@override
Future<void> close() async {
  if (_isClosed) return;
  _isClosed = true;
  _log('Closing AutoNAT...');
  _ctxController.add(null); // Signal background tasks to stop

  _probeTimer?.cancel();
  _addrChangeTicker?.cancel();

  await _inboundConnController.close();
  await _dialResponsesController.close();
  await _observationsController.close();

  _host.network.stopNotify(this);
  await _service?.close();
  // _eventBusSubscription is cancelled in _background's cleanup
  _log('AutoNAT closed.');
}