summaryrefslogtreecommitdiffhomepage
path: root/ios/MullvadREST/Relay/AnyRelay.swift
blob: 7dbe8cec50374379118fdfc7438f1818df83d9e2 (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
//
//  AnyRelay.swift
//  MullvadREST
//
//  Created by Jon Petersson on 2024-01-31.
//  Copyright © 2025 Mullvad VPN AB. All rights reserved.
//

import MullvadTypes
import Network

public protocol AnyRelay {
    var hostname: String { get }
    var owned: Bool { get }
    var location: REST.LocationIdentifier { get }
    var provider: String { get }
    var weight: UInt64 { get }
    var active: Bool { get }
    var includeInCountry: Bool { get }
    var daita: Bool? { get }

    func override(ipv4AddrIn: IPv4Address?, ipv6AddrIn: IPv6Address?) -> Self
}

extension REST.ServerRelay: AnyRelay {}
extension REST.BridgeRelay: AnyRelay {
    public func override(ipv4AddrIn: IPv4Address?, ipv6AddrIn: IPv6Address?) -> REST.BridgeRelay {
        override(ipv4AddrIn: ipv4AddrIn)
    }
}