aboutsummaryrefslogtreecommitdiffstats
path: root/WireGuard/Shared/PacketTunnelOptionKey.swift
blob: ec7a78208441cfe2a809287b8038f6e7d6221491 (plain) (blame)
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
// SPDX-License-Identifier: MIT
// Copyright © 2018 WireGuard LLC. All Rights Reserved.

import Foundation

enum PacketTunnelOptionKey: String {

    case interfaceName, wireguardSettings, remoteAddress, dnsServers, mtu,

    // IPv4 settings
    ipv4Addresses, ipv4SubnetMasks,
    ipv4IncludedRouteAddresses, ipv4IncludedRouteSubnetMasks,
    ipv4ExcludedRouteAddresses, ipv4ExcludedRouteSubnetMasks,

    // IPv6 settings
    ipv6Addresses, ipv6NetworkPrefixLengths,
    ipv6IncludedRouteAddresses, ipv6IncludedRouteNetworkPrefixLengths,
    ipv6ExcludedRouteAddresses, ipv6ExcludedRouteNetworkPrefixLengths
}

extension Dictionary where Key == String {
    subscript(key: PacketTunnelOptionKey) -> Value? {
        get {
            return self[key.rawValue]
        }
        set(value) {
            self[key.rawValue] = value
        }
    }
}