summaryrefslogtreecommitdiffhomepage
path: root/gui/src/main/default-settings.ts
blob: e942a535b62a92882b00a64ab3d4ab0aef0c533d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
import {
  ApiAccessMethodSettings,
  ISettings,
  ObfuscationType,
  Ownership,
} from '../shared/daemon-rpc-types';

export function getDefaultSettings(): ISettings {
  return {
    allowLan: false,
    autoConnect: false,
    blockWhenDisconnected: false,
    showBetaReleases: false,
    splitTunnel: {
      enableExclusions: false,
      appsList: [],
    },
    relaySettings: {
      normal: {
        location: 'any',
        tunnelProtocol: 'any',
        providers: [],
        ownership: Ownership.any,
        openvpnConstraints: {
          port: 'any',
          protocol: 'any',
        },
        wireguardConstraints: {
          port: 'any',
          ipVersion: 'any',
          useMultihop: false,
          entryLocation: 'any',
        },
      },
    },
    bridgeSettings: {
      type: 'normal',
      normal: {
        location: 'any',
        providers: [],
        ownership: Ownership.any,
      },
      custom: undefined,
    },
    bridgeState: 'auto',
    tunnelOptions: {
      generic: {
        enableIpv6: false,
      },
      openvpn: {
        mssfix: undefined,
      },
      wireguard: {
        mtu: undefined,
        quantumResistant: undefined,
      },
      dns: {
        state: 'default',
        defaultOptions: {
          blockAds: false,
          blockTrackers: false,
          blockMalware: false,
          blockAdultContent: false,
          blockGambling: false,
          blockSocialMedia: false,
        },
        customOptions: {
          addresses: [],
        },
      },
    },
    obfuscationSettings: {
      selectedObfuscation: ObfuscationType.auto,
      udp2tcpSettings: {
        port: 'any',
      },
    },
    customLists: [],
    apiAccessMethods: getDefaultApiAccessMethods(),
    relayOverrides: [],
  };
}

export function getDefaultApiAccessMethods(): ApiAccessMethodSettings {
  // 'id's are UUIDs generated by the daemon when an access method is created,
  // and as such we can't provide a good default value for them.
  return {
    direct: {
      id: '',
      name: 'Direct',
      enabled: true,
      type: 'direct',
    },
    mullvadBridges: {
      id: '',
      name: 'Mullvad Bridges',
      enabled: false,
      type: 'bridges',
    },
    custom: [],
  };
}