diff options
| author | Bug Magnet <marco.nikic@mullvad.net> | 2024-01-30 14:27:57 +0100 |
|---|---|---|
| committer | Bug Magnet <marco.nikic@mullvad.net> | 2024-01-30 14:27:57 +0100 |
| commit | 620b3f5f29213c23d0d27ee2e3653b266256d429 (patch) | |
| tree | f98213ede61acc6a899e102303eb6b26cebde49b | |
| parent | e93f97c9cf677563d7cc4cea9852538cf7c2dcaf (diff) | |
| parent | 03f17f3c36fc16071721a2f038bebd9fdb78f793 (diff) | |
| download | mullvadvpn-620b3f5f29213c23d0d27ee2e3653b266256d429.tar.xz mullvadvpn-620b3f5f29213c23d0d27ee2e3653b266256d429.zip | |
Merge branch 'trigger-the-local-network-alert-before-trying-local-ios-465'
4 files changed, 35 insertions, 0 deletions
diff --git a/ios/MullvadVPN.xcodeproj/project.pbxproj b/ios/MullvadVPN.xcodeproj/project.pbxproj index 6ea30d83c4..f65b281bb3 100644 --- a/ios/MullvadVPN.xcodeproj/project.pbxproj +++ b/ios/MullvadVPN.xcodeproj/project.pbxproj @@ -616,6 +616,7 @@ A97D25B42B0CB59300946B2D /* TunnelObfuscationStub.swift in Sources */ = {isa = PBXBuildFile; fileRef = A97D25B32B0CB59300946B2D /* TunnelObfuscationStub.swift */; }; A97D30172AE6B5E90045C0E4 /* StoredWgKeyData.swift in Sources */ = {isa = PBXBuildFile; fileRef = A97D30162AE6B5E90045C0E4 /* StoredWgKeyData.swift */; }; A97FF5502A0D2FFC00900996 /* NSFileCoordinator+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = A97FF54F2A0D2FFC00900996 /* NSFileCoordinator+Extensions.swift */; }; + A98502032B627B120061901E /* LocalNetworkProbe.swift in Sources */ = {isa = PBXBuildFile; fileRef = A98502022B627B120061901E /* LocalNetworkProbe.swift */; }; A988A3E22AFE54AC0008D2C7 /* AccountExpiry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A6F2FA62AFBB9AE006D0856 /* AccountExpiry.swift */; }; A988DF272ADE86ED00D807EF /* WireGuardObfuscationSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = A988DF252ADE86ED00D807EF /* WireGuardObfuscationSettings.swift */; }; A988DF2A2ADE880300D807EF /* TunnelSettingsV3.swift in Sources */ = {isa = PBXBuildFile; fileRef = A988DF282ADE880300D807EF /* TunnelSettingsV3.swift */; }; @@ -1772,6 +1773,7 @@ A97D25B32B0CB59300946B2D /* TunnelObfuscationStub.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TunnelObfuscationStub.swift; sourceTree = "<group>"; }; A97D30162AE6B5E90045C0E4 /* StoredWgKeyData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StoredWgKeyData.swift; sourceTree = "<group>"; }; A97FF54F2A0D2FFC00900996 /* NSFileCoordinator+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSFileCoordinator+Extensions.swift"; sourceTree = "<group>"; }; + A98502022B627B120061901E /* LocalNetworkProbe.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalNetworkProbe.swift; sourceTree = "<group>"; }; A988DF252ADE86ED00D807EF /* WireGuardObfuscationSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WireGuardObfuscationSettings.swift; sourceTree = "<group>"; }; A988DF282ADE880300D807EF /* TunnelSettingsV3.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TunnelSettingsV3.swift; sourceTree = "<group>"; }; A9A1DE782AD5708E0073F689 /* TransportStrategy.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TransportStrategy.swift; sourceTree = "<group>"; }; @@ -2169,6 +2171,7 @@ 5827B0A22B0E068800CCBBA1 /* AccessMethodRepository */ = { isa = PBXGroup; children = ( + A98502022B627B120061901E /* LocalNetworkProbe.swift */, 58EF87562B16330B00C098B2 /* ProxyConfigurationTester.swift */, 58EF875C2B1638BF00C098B2 /* ProxyConfigurationTesterProtocol.swift */, ); @@ -4896,6 +4899,7 @@ F0C6FA852A6A733700F521F0 /* InAppPurchaseInteractor.swift in Sources */, 58CEB2F92AFD136E00E6E088 /* UIBackgroundConfiguration+Extensions.swift in Sources */, 5878F50029CDA742003D4BE2 /* UIView+AutoLayoutBuilder.swift in Sources */, + A98502032B627B120061901E /* LocalNetworkProbe.swift in Sources */, 583FE01029C0F532006E85F9 /* CustomSplitViewController.swift in Sources */, 7A6F2FA92AFD0842006D0856 /* CustomDNSDataSource.swift in Sources */, 58EF580B25D69D7A00AEBA94 /* ProblemReportSubmissionOverlayView.swift in Sources */, diff --git a/ios/MullvadVPN/AccessMethodRepository/LocalNetworkProbe.swift b/ios/MullvadVPN/AccessMethodRepository/LocalNetworkProbe.swift new file mode 100644 index 0000000000..a231e11acb --- /dev/null +++ b/ios/MullvadVPN/AccessMethodRepository/LocalNetworkProbe.swift @@ -0,0 +1,28 @@ +// +// LocalNetworkProbe.swift +// MullvadVPN +// +// Created by Marco Nikic on 2024-01-25. +// Copyright © 2024 Mullvad VPN AB. All rights reserved. +// + +import Foundation +import Network + +struct LocalNetworkProbe { + /// Does a best effort attempt to trigger the local network privacy alert. + func triggerLocalNetworkPrivacyAlert() { + let dispatchQueue = DispatchQueue(label: "com.mullvad.localNetworkAlert") + let localIpv4Connection = NWConnection( + to: NWEndpoint.hostPort(host: .ipv4(.broadcast), port: .any), + using: .udp + ) + localIpv4Connection.start(queue: dispatchQueue) + + let localIpv6Connection = NWConnection( + to: NWEndpoint.hostPort(host: .ipv6(.broadcast), port: .any), + using: .udp + ) + localIpv6Connection.start(queue: dispatchQueue) + } +} diff --git a/ios/MullvadVPN/Coordinators/Settings/APIAccess/Add/AddAccessMethodCoordinator.swift b/ios/MullvadVPN/Coordinators/Settings/APIAccess/Add/AddAccessMethodCoordinator.swift index 8c81f79f6e..d6ea38a426 100644 --- a/ios/MullvadVPN/Coordinators/Settings/APIAccess/Add/AddAccessMethodCoordinator.swift +++ b/ios/MullvadVPN/Coordinators/Settings/APIAccess/Add/AddAccessMethodCoordinator.swift @@ -46,6 +46,7 @@ class AddAccessMethodCoordinator: Coordinator, Presentable, Presenting { setUpControllerNavigationItem(controller) controller.delegate = self + LocalNetworkProbe().triggerLocalNetworkPrivacyAlert() navigationController.pushViewController(controller, animated: false) } diff --git a/ios/MullvadVPN/Supporting Files/Info.plist b/ios/MullvadVPN/Supporting Files/Info.plist index a4d5f8c98e..3c3dd00b6f 100644 --- a/ios/MullvadVPN/Supporting Files/Info.plist +++ b/ios/MullvadVPN/Supporting Files/Info.plist @@ -2,6 +2,8 @@ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> + <key>NSLocalNetworkUsageDescription</key> + <string>The app needs this to connect and test a new method.</string> <key>ApplicationSecurityGroupIdentifier</key> <string>$(SECURITY_GROUP_IDENTIFIER)</string> <key>MainApplicationIdentifier</key> |
