@@ -117,17 +117,17 @@ class DNSChecker: ObservableObject {
117117
118118// MARK: - Main App
119119
120- // Global state variable for the heartbeat response .
121- var pubHeartBeat = false
122- private var heartbeatStartPending = false
123- private var heartbeatStartInProgress = false
124- private var heartbeatPendingShowUI = true
120+ // Global state variable for the tunnel connection .
121+ var pubTunnelConnected = false
122+ private var tunnelStartPending = false
123+ private var tunnelStartInProgress = false
124+ private var tunnelPendingShowUI = true
125125
126126@main
127127struct HeartbeatApp : App {
128128 @StateObject private var mount = MountingProgress . shared
129129 @Environment ( \. scenePhase) private var scenePhase // Observe scene lifecycle
130- @State private var shouldAttemptHeartbeatRestart = false
130+ @State private var shouldAttemptTunnelReconnect = false
131131
132132 init ( ) {
133133 registerAdvancedOptionsDefault ( )
@@ -144,11 +144,11 @@ struct HeartbeatApp: App {
144144 private func handleScenePhaseChange( _ newPhase: ScenePhase ) {
145145 switch newPhase {
146146 case . background:
147- shouldAttemptHeartbeatRestart = true
147+ shouldAttemptTunnelReconnect = true
148148 case . active:
149- if shouldAttemptHeartbeatRestart {
150- shouldAttemptHeartbeatRestart = false
151- startHeartbeatInBackground ( showErrorUI: false )
149+ if shouldAttemptTunnelReconnect {
150+ shouldAttemptTunnelReconnect = false
151+ startTunnelInBackground ( showErrorUI: false )
152152 }
153153 default :
154154 break
@@ -270,42 +270,42 @@ class MountingProgress: ObservableObject {
270270
271271func isPairing( ) -> Bool {
272272 let pairingpath = URL . documentsDirectory. appendingPathComponent ( " pairingFile.plist " ) . path
273- var pairingFile : IdevicePairingFile ?
274- let err = idevice_pairing_file_read ( pairingpath, & pairingFile)
273+ var pairingFile : RpPairingFileHandle ?
274+ let err = rp_pairing_file_read ( pairingpath, & pairingFile)
275275 if err != nil { return false }
276- idevice_pairing_file_free ( pairingFile)
276+ rp_pairing_file_free ( pairingFile)
277277 return true
278278}
279279
280- func startHeartbeatInBackground ( showErrorUI: Bool = true ) {
281- assert ( Thread . isMainThread, " startHeartbeatInBackground must be called on the main thread" )
280+ func startTunnelInBackground ( showErrorUI: Bool = true ) {
281+ assert ( Thread . isMainThread, " startTunnelInBackground must be called on the main thread" )
282282 let pairingFileURL = URL . documentsDirectory. appendingPathComponent ( " pairingFile.plist " )
283-
283+
284284 guard FileManager . default. fileExists ( atPath: pairingFileURL. path) else {
285- heartbeatStartPending = false
286- heartbeatPendingShowUI = true
285+ tunnelStartPending = false
286+ tunnelPendingShowUI = true
287287 return
288288 }
289-
290- guard !heartbeatStartInProgress else {
289+
290+ guard !tunnelStartInProgress else {
291291 return
292292 }
293-
294- heartbeatStartPending = false
295- heartbeatPendingShowUI = true
296- heartbeatStartInProgress = true
297-
293+
294+ tunnelStartPending = false
295+ tunnelPendingShowUI = true
296+ tunnelStartInProgress = true
297+
298298 DispatchQueue . global ( qos: . userInteractive) . async {
299299 defer {
300300 DispatchQueue . main. async {
301- heartbeatStartInProgress = false
301+ tunnelStartInProgress = false
302302 }
303303 }
304304 do {
305- try JITEnableContext . shared. startHeartbeat ( )
306- LogManager . shared. addInfoLog ( " Heartbeat started successfully" )
307- pubHeartBeat = true
308-
305+ try JITEnableContext . shared. startTunnel ( )
306+ LogManager . shared. addInfoLog ( " Tunnel connected successfully" )
307+ pubTunnelConnected = true
308+
309309 DispatchQueue . main. async {
310310 let trustcachePath = URL . documentsDirectory. appendingPathComponent ( " DDI/Image.dmg.trustcache " ) . path
311311 guard FileManager . default. fileExists ( atPath: trustcachePath) ,
@@ -326,7 +326,7 @@ func startHeartbeatInBackground(showErrorUI: Bool = true) {
326326 } catch {
327327 LogManager . shared. addErrorLog ( " Failed to remove invalid pairing file: \( error. localizedDescription) " )
328328 }
329-
329+
330330 showAlert (
331331 title: " Invalid Pairing File " ,
332332 message: " The pairing file is invalid or expired. Please select a new pairing file. " ,
@@ -338,14 +338,14 @@ func startHeartbeatInBackground(showErrorUI: Bool = true) {
338338 }
339339 } else {
340340 showAlert (
341- title: " Heartbeat Error" ,
341+ title: " Connection Error" ,
342342 message: " \( error. localizedDescription) \n \n Make sure Wi‑Fi and LocalDevVPN are connected and that the device is reachable. " ,
343343 showOk: false ,
344344 showTryAgain: true
345345 ) { shouldTryAgain in
346346 if shouldTryAgain {
347347 DispatchQueue . main. async {
348- startHeartbeatInBackground ( )
348+ startTunnelInBackground ( )
349349 }
350350 }
351351 }
0 commit comments