create static method

Future<StaticAutoNAT> create(
  1. Host h,
  2. Reachability reachability,
  3. List<AutoNATOption> options
)

Implementation

static Future<StaticAutoNAT> create(Host h, Reachability reachability, List<AutoNATOption> options) async {
  // Similar to AmbientAutoNAT.create, setup config and optional service
  final dialPolicy = DialPolicyImpl(host: h);
  final conf = AutoNATConfig(host: h, dialPolicy: dialPolicy);
  applyOptions(conf, options); // Apply user-provided options

  conf.forceReachability = true;
  conf.reachability = reachability;

  AutoNATService? serviceInstance;
  if (conf.reachability == Reachability.public && conf.dialer != null) {
     serviceInstance = AutoNATService(conf);
     serviceInstance.enable();
  }

  // Emit initial status
  // h.eventBus.emitter<EvtLocalReachabilityChanged>(EvtLocalReachabilityChanged()).emit(EvtLocalReachabilityChanged(reachability: reachability)); // Placeholder
  _log('StaticAutoNAT created. Status: $reachability');

  return StaticAutoNAT(h, reachability, serviceInstance);
}