From 0837f82a695fb7a570e2da39acaab3f24990632a Mon Sep 17 00:00:00 2001 From: mahee96 <47920326+mahee96@users.noreply.github.com> Date: Tue, 3 Mar 2026 02:56:41 +0530 Subject: [PATCH] minimuxer: added binding for the cached tunnel config values so that application layer can provide and listen to updates. --- Dependencies/minimuxer | 2 +- SideStore/MinimuxerWrapper.swift | 51 ++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+), 1 deletion(-) diff --git a/Dependencies/minimuxer b/Dependencies/minimuxer index 74c62833..2e6fc79f 160000 --- a/Dependencies/minimuxer +++ b/Dependencies/minimuxer @@ -1 +1 @@ -Subproject commit 74c628330c22d88a3c9487855537487ea02beb6c +Subproject commit 2e6fc79f2941b94b9f042d8e99926db5b45c7599 diff --git a/SideStore/MinimuxerWrapper.swift b/SideStore/MinimuxerWrapper.swift index 40c44c1a..c490c193 100644 --- a/SideStore/MinimuxerWrapper.swift +++ b/SideStore/MinimuxerWrapper.swift @@ -8,6 +8,55 @@ import Foundation import Minimuxer +func bindTunnelConfig() { + defer { print("[SideStore] bindTunnelConfig() completed") } + + #if targetEnvironment(simulator) + print("[SideStore] bindTunnelConfig() is no-op on simulator") + #else + print("[SideStore] bindTunnelConfig() invoked") + + Task { @MainActor in + let config = TunnelConfig.shared + + Minimuxer.bindTunnelConfig( + TunnelConfigBinding( + setDeviceIP: { value in + print("[SideStore] setDeviceIP <- \(value ?? "nil")") + Task { @MainActor in + config.deviceIP = value + } + }, + setFakeIP: { value in + print("[SideStore] setFakeIP <- \(value ?? "nil")") + Task { @MainActor in + config.fakeIP = value + } + }, + setSubnetMask: { value in + print("[SideStore] setSubnetMask <- \(value ?? "nil")") + Task { @MainActor in + config.subnetMask = value + } + }, + getOverrideFakeIP: { + let v = config.overrideFakeIP + print("[SideStore] overrideFakeIP -> \(v)") + return v + }, + setOverrideEffective: { value in + print("[SideStore] setOverrideEffective <- \(value)") + Task { @MainActor in + config.overrideEffective = value + } + } + ) + ) + } + #endif +} + + var isMinimuxerReady: Bool { var result = true #if targetEnvironment(simulator) @@ -35,6 +84,8 @@ func minimuxerStartWithLogger(_ pairingFile: String, _ logPath: String, _ loggin #if targetEnvironment(simulator) print("[SideStore] minimuxerStartWithLogger(pairingFile, logPath, loggingEnabled) is no-op on simulator") #else + // refresh config if any + bindTunnelConfig() // observe network route changes (and update device endpoint from vpn(utun)) NetworkObserver.shared.start()