@@ -32,15 +32,15 @@ class AppState: ObservableObject {
3232
3333 @Published var useLiteralHeaders : Bool = UserDefaults . standard. bool ( forKey: Keys . useLiteralHeaders) {
3434 didSet {
35- if let onChange { onChange ( tunnelProviderProtocol ( ) ) }
35+ reconfigure ( )
3636 guard persistent else { return }
3737 UserDefaults . standard. set ( useLiteralHeaders, forKey: Keys . useLiteralHeaders)
3838 }
3939 }
4040
4141 @Published var literalHeaders : [ LiteralHeader ] {
4242 didSet {
43- if let onChange { onChange ( tunnelProviderProtocol ( ) ) }
43+ reconfigure ( )
4444 guard persistent else { return }
4545 try ? UserDefaults . standard. set ( JSONEncoder ( ) . encode ( literalHeaders) , forKey: Keys . literalHeaders)
4646 }
@@ -70,9 +70,13 @@ class AppState: ObservableObject {
7070 private let keychain : Keychain
7171 private let persistent : Bool
7272
73- // This closure must be called when any property used to configure the VPN changes
7473 let onChange : ( ( NETunnelProviderProtocol ? ) -> Void ) ?
7574
75+ // reconfigure must be called when any property used to configure the VPN changes
76+ public func reconfigure( ) {
77+ if let onChange { onChange ( tunnelProviderProtocol ( ) ) }
78+ }
79+
7680 public init ( onChange: ( ( NETunnelProviderProtocol ? ) -> Void ) ? = nil ,
7781 persistent: Bool = true )
7882 {
@@ -97,13 +101,13 @@ class AppState: ObservableObject {
97101 hasSession = true
98102 self . baseAccessURL = baseAccessURL
99103 self . sessionToken = sessionToken
100- if let onChange { onChange ( tunnelProviderProtocol ( ) ) }
104+ reconfigure ( )
101105 }
102106
103107 public func clearSession( ) {
104108 hasSession = false
105109 sessionToken = nil
106- if let onChange { onChange ( tunnelProviderProtocol ( ) ) }
110+ reconfigure ( )
107111 }
108112
109113 private func keychainGet( for key: String ) -> String ? {
0 commit comments