tun.dart 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. class TunConfig {
  2. final bool enable;
  3. final String stack;
  4. final List<String> dnsHijack;
  5. final bool autoRoute;
  6. final bool autoDetectInterface;
  7. TunConfig({
  8. required this.enable,
  9. required this.stack,
  10. required this.dnsHijack,
  11. required this.autoRoute,
  12. required this.autoDetectInterface,
  13. });
  14. factory TunConfig.fromMap(Map<String, dynamic> map) {
  15. return TunConfig(
  16. enable: map['enable'] ?? false,
  17. stack: map['stack'] ?? 'system',
  18. dnsHijack: List<String>.from(map['dns-hijack'] ?? []),
  19. autoRoute: map['auto-route'] ?? false,
  20. autoDetectInterface: map['auto-detect-interface'] ?? false,
  21. );
  22. }
  23. Map<String, dynamic> toJson() {
  24. return {
  25. 'enable': enable,
  26. 'stack': stack,
  27. 'dns-hijack': dnsHijack,
  28. 'auto-route': autoRoute,
  29. 'auto-detect-interface': autoDetectInterface,
  30. };
  31. }
  32. String toYaml() {
  33. return '''
  34. tun:
  35. enable: $enable
  36. stack: $stack
  37. dns-hijack:
  38. ${dnsHijack.map((item) => ' - $item').join('\n')}
  39. auto-route: $autoRoute
  40. auto-detect-interface: $autoDetectInterface
  41. ''';
  42. }
  43. }