aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* UI: iOS: remove donation link1.0.11-21Jason A. Donenfeld2020-12-172-13/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Apple forbids us from having a simple link to wireguard.com/donations/ in the version info window, citing the existence of this link as a form of payment outside of their in-app purchase framework that requires 30%. The link had been there for around two years. After rejecting an app update for a critical networking regression unrelated to this, they wrote: Dec 17, 2020 at 8:35 PM From Apple 3.1.1 - Business - Payments - In-App Purchase We noticed that your app allows users to contribute donations to the development of your app with a mechanism other than the in-app purchase API, which is not appropriate for the App Store. Next Steps To resolve this issue, please revise your app to use the in-app purchase API to pay for this type of transaction. Please note that even though tipping another individual is optional, the tip is connected to or associated with the receipt of digital content or services in your app and must be purchased through in-app purchase in accordance with guideline 3.1.1 of the App Store Review Guidelines. Please see attached screenshot for details. Trying to appeal this or reason with Apple is not going to be a fruitful endeavor, so instead we simply cut our losses and remove the donation link entirely. The goal, anyway, is to get a timely critical update into the hands of users, and encouraging Apple to block that further would be a disservice. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* UI: macOS: Fix UTF-8 and UTF-16 conversions in highlighter codeAndrej Mihajlov2020-12-172-9/+25
| | | | | | NSString uses UTF-16 internally, while String uses UTF-8 in Swift 5. Signed-off-by: Andrej Mihajlov <and@mullvad.net>
* project: generate more stable locale IDsJason A. Donenfeld2020-12-172-40/+44
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* build: disable hardened runtime on iOS but keep it enabled on macOSAndrej Mihajlov2020-12-171-2/+4
| | | | Signed-off-by: Andrej Mihajlov <and@mullvad.net>
* Version bump1.0.11-20Jason A. Donenfeld2020-12-171-2/+2
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* UI: add missing translations to incomplete localesJason A. Donenfeld2020-12-1710-36/+1320
| | | | | | | | | This is the wrong way to fix the problem. The correct way will involve moving away from the whacky tr() macro and using translations functions properly. But migrating to that will require some heavy scripting work. So for now, use a hammer. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* Kit: Adapter: do not treat NE settings timeouts as fatalJason A. Donenfeld2020-12-172-9/+1
| | | | | | | | | | The general Network Extension framework is incredibly buggy, and a timeout when setting the network settings does not necessarily imply that the whole operation failed. Simply log the condition and move on. This restores the app's old behavior. Reported-by: Filipe Mendonça <cfilipem@gmail.com> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* Kit: PacketTunnelSettingsGenerator: do not require DNS queries if no DNSJason A. Donenfeld2020-12-171-5/+9
| | | | | | | | | | | | | | | | | | | | Prior, we would set matchDomains=[""] even if the user didn't provide any DNS servers. This was kind of incoherent, but I guess we had in mind some kind of non-sensical leakproof scheme that never really worked anyway. NetworkExtension didn't like this, so setTunnelNetworkSettings would, rather than return an error, simply timeout and never call its callback function. But everything worked fine, so we had code in the UI to check to make sure everything was okay after 5 seconds or so of no callback. Recent changes made the timeout fatal on the network extension side, so rather than succeed, configs with no DNS server started erroring out, causing user reports. This commit attempts to handle the root cause of the timeout issue by not twiddling with DNS settings if no DNS server was specified. For now, however, it leaves the hard-timeout semantics in place. Reported-by: Filipe Mendonça <cfilipem@gmail.com> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* UI: macOS: remove donation link1.0.10-19Jason A. Donenfeld2020-12-162-4/+2
| | | | | | | | | Apple forbids us from having a simple donation link in the "About WireGuard" dialog, due to new policies. And arguing with the giant is not going to be a fruitful battle. Do the practical thing and just remove it. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* Version bump1.0.10-18Jason A. Donenfeld2020-12-151-2/+2
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* WireGuardApp: Refactor TunnelListCellAndrej Mihajlov2020-12-151-35/+33
| | | | Signed-off-by: Andrej Mihajlov <and@mullvad.net>
* WireGuardApp: Replace AnyObject with a concrete NSKeyValueObservationAndrej Mihajlov2020-12-151-2/+2
| | | | Signed-off-by: Andrej Mihajlov <and@mullvad.net>
* WireGuardApp: Animate switch control in TunnelListCellAndrej Mihajlov2020-12-151-9/+9
| | | | Signed-off-by: Andrej Mihajlov <and@mullvad.net>
* WireGuardApp: Remove 200ms delay when updating tunnel status switchAndrej Mihajlov2020-12-152-13/+8
| | | | Signed-off-by: Andrej Mihajlov <and@mullvad.net>
* WireGuardApp: Pin status switch to cell marginAndrej Mihajlov2020-12-151-1/+1
| | | | Signed-off-by: Andrej Mihajlov <and@mullvad.net>
* WireGuardApp: Refactor indicator view initializationAndrej Mihajlov2020-12-151-6/+5
| | | | Signed-off-by: Andrej Mihajlov <and@mullvad.net>
* WireGuardApp: Use Bundle.forInfoDictionaryKey to access Info.plist fieldsAndrej Mihajlov2020-12-151-2/+2
| | | | Signed-off-by: Andrej Mihajlov <and@mullvad.net>
* WireGuardApp: Refactor indicator initializationAndrej Mihajlov2020-12-151-6/+5
| | | | Signed-off-by: Andrej Mihajlov <and@mullvad.net>
* WireGuardApp: Fix window background color to default blackAndrej Mihajlov2020-12-151-5/+0
| | | | Signed-off-by: Andrej Mihajlov <and@mullvad.net>
* global: support DNS search domainsJason A. Donenfeld2020-12-156-16/+28
| | | | | | | This has been supported by Windows and Linux for quite some time. Add support here for iOS and macOS. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* WireGuardKitGo: update to latest wireguard-go tagJason A. Donenfeld2020-12-155-38/+48
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* Revert "[REVERT ME SOON] TunnelsManager: Workaround for macOS Catalina deleting tunnels arbitrarily"Jason A. Donenfeld2020-12-111-161/+2
| | | | | | | | This reverts commit 028e76eb3fda127d84eb88dc5cb96d4278f37b96. It's been over a year. I really hope this is fixed by Apple. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* WireGuardApp: modify xcodeproj when syncing translationsJason A. Donenfeld2020-12-112-9/+107
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* WireGuardKit: Let wireguard-go backend run in offline on macOSAndrej Mihajlov2020-12-111-3/+8
| | | | Signed-off-by: Andrej Mihajlov <and@mullvad.net>
* WireGuardApp: add CrowdIn syncer and run itJason A. Donenfeld2020-12-1119-20/+4234
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* WireGuardKit: Conditionally turn on/off wireguard-goAndrej Mihajlov2020-12-113-106/+213
| | | | Signed-off-by: Andrej Mihajlov <and@mullvad.net>
* WireGuardGoKit: drop support for armv7Jason A. Donenfeld2020-12-091-3/+2
| | | | | | Apple and Go have both dropped it, so we do the same. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* global: fix remaining swiftlint violationsJason A. Donenfeld2020-12-094-4/+5
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* WireGuardKitGo: get rid of missing -Wno-unused-command-line-argument flagJason A. Donenfeld2020-12-091-1/+1
| | | | | | Recent toolchains error out on it, and it's no longer needed. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* WireGuardKitGo: rebase boottime patch onto Go 1.15.6Jason A. Donenfeld2020-12-092-39/+13
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* global: bump year in headerJason A. Donenfeld2020-12-04102-102/+102
| | | | | | A bit overdue, but better late than never. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* WireGuardApp: Update target membership to exclude sources that are only used in network extensionsAndrej Mihajlov2020-12-041-16/+0
| | | | Signed-off-by: Andrej Mihajlov <and@mullvad.net>
* WireGuardKit: Delegate IPv*Address initialization to self.initAndrej Mihajlov2020-12-041-10/+2
| | | | Signed-off-by: Andrej Mihajlov <and@mullvad.net>
* WireGuardApp: Remove backend version call in Logger.swift & extract wireguard-go version script from network extension targetsAndrej Mihajlov2020-12-043-40/+2
| | | | Signed-off-by: Andrej Mihajlov <and@mullvad.net>
* WireGuardKit: Log XLAT resolution errorsAndrej Mihajlov2020-12-042-5/+20
| | | | Signed-off-by: Andrej Mihajlov <and@mullvad.net>
* WireGuardApp: Disable SWIFT_PRECOMPILE_BRIDGING_HEADERAndrej Mihajlov2020-12-041-0/+2
| | | | | | Clang automatically picks up module.modulemap files from WireGuardKit directories when precompiling bridging header file, which causes the compiler to fail with obscure error. Signed-off-by: Andrej Mihajlov <and@mullvad.net>
* WireGuardApp: Update swift version from 4.2 to 5.0Andrej Mihajlov2020-12-041-2/+2
| | | | Signed-off-by: Andrej Mihajlov <and@mullvad.net>
* Update checkout path in READMEAndrej Mihajlov2020-12-041-1/+1
| | | | Signed-off-by: Andrej Mihajlov <and@mullvad.net>
* Keychain: Avoid roundtrip via items when accessing item label (stored in kSecAttrLabel)Andrej Mihajlov2020-12-041-4/+3
| | | | Signed-off-by: Andrej Mihajlov <and@mullvad.net>
* Keychain: Remove unnecessary cast to String in Keychain queriesAndrej Mihajlov2020-12-041-23/+23
| | | | Signed-off-by: Andrej Mihajlov <and@mullvad.net>
* WireGuardApp: Remove WireGuardKit.swift from Xcode source treeAndrej Mihajlov2020-12-041-10/+0
| | | | Signed-off-by: Andrej Mihajlov <and@mullvad.net>
* WireGuadKit: Rename WireGuardAdapter.version -> .backendVersion & remove `var wireGuardVersion` with WireGuardKit.swiftAndrej Mihajlov2020-12-042-9/+1
| | | | Signed-off-by: Andrej Mihajlov <and@mullvad.net>
* WireGuardApp: Add back the wireguard-go version extraction script and use WIREGUARD_GO_VERSION directlyAndrej Mihajlov2020-12-045-8/+86
| | | | | | Avoids linking against libwg-go.a in order to access the WireGuard backend version. Signed-off-by: Andrej Mihajlov <and@mullvad.net>
* WireGuardApp: Include headers from WireGuardKitCAndrej Mihajlov2020-12-042-2/+5
| | | | Signed-off-by: Andrej Mihajlov <and@mullvad.net>
* WireGuardApp: integrate WireGuardKit sources directlyAndrej Mihajlov2020-12-0327-85/+188
| | | | Signed-off-by: Andrej Mihajlov <and@mullvad.net>
* Remove Sources/ in project folder namesAndrej Mihajlov2020-12-031-6/+9
| | | | Signed-off-by: Andrej Mihajlov <and@mullvad.net>
* WireGuardKit: Rename WireGuardKitSwift -> WireGuardKitAndrej Mihajlov2020-12-0314-2/+2
| | | | Signed-off-by: Andrej Mihajlov <and@mullvad.net>
* Linter: Fix all linter issues across the codebaseAndrej Mihajlov2020-12-0312-42/+48
| | | | Signed-off-by: Andrej Mihajlov <and@mullvad.net>
* WireGuardApp: Fix build working dir for go-bridge targetsAndrej Mihajlov2020-12-031-2/+2
| | | | Signed-off-by: Andrej Mihajlov <and@mullvad.net>
* WireGuardNetworkExtension: Remove wireguard.h from bridging headerAndrej Mihajlov2020-12-031-1/+0
| | | | Signed-off-by: Andrej Mihajlov <and@mullvad.net>