mirror of
https://github.com/usestrix/firewall.git
synced 2026-11-09 05:19:35 -10:00
Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
49d97a288a |
No files matched your search
@@ -33,12 +33,11 @@ enum SetupWindow {
|
||||
private struct MenuBarLabel: View {
|
||||
@ObservedObject var model: FirewallModel
|
||||
@Environment(\.openWindow) private var openWindow
|
||||
@State private var raised = false
|
||||
|
||||
var body: some View {
|
||||
Image(nsImage: Self.icon).onAppear {
|
||||
guard !raised, !model.screening else { return }
|
||||
raised = true
|
||||
Image(nsImage: Self.icon).task {
|
||||
await model.refresh()
|
||||
guard !model.configured else { return }
|
||||
SetupWindow.open(openWindow)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -71,9 +71,8 @@ final class FirewallModel: NSObject, ObservableObject {
|
||||
let running = connection.status == .connected
|
||||
Task { @MainActor in self?.screening = running }
|
||||
}
|
||||
Task {
|
||||
await refresh()
|
||||
if CommandLine.arguments.contains("--install") { await install() }
|
||||
if CommandLine.arguments.contains("--install") {
|
||||
Task { await install() }
|
||||
}
|
||||
Task { await watchBlocks() }
|
||||
}
|
||||
@@ -83,6 +82,10 @@ final class FirewallModel: NSObject, ObservableObject {
|
||||
func refresh() async {
|
||||
if let manager = try? await loadManager() {
|
||||
watched = manager
|
||||
// Nothing starts the tunnel at boot, so the app does once it is set up and not paused.
|
||||
if manager.isEnabled && manager.connection.status == .disconnected {
|
||||
try? manager.connection.startVPNTunnel()
|
||||
}
|
||||
if manager.isEnabled {
|
||||
screeningStep = .done("Enabled (\(manager.connection.status.label))")
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user