Commit Graph

32 Commits

Author SHA1 Message Date
Davide
51f5c5824c
Move favorite column to the left 2025-01-29 12:54:15 +01:00
Davide
8d269e7113
Reuse provider entities for more than VPN (#1107)
Rename entities/views, and decouple provider templates from built
configurations. Reuse ProviderServerCoordinator.

This is in preparation for #507
2025-01-29 12:53:23 +01:00
Davide
fcd91ce515
Fix indefinite spinner when listing products (#1121)
Reported by App Review on tvOS but applies in general.
2025-01-29 12:11:44 +01:00
Davide
7ff8dd4fc9
Decrease max log age to 1 day
Reuse log filenames in report issue.
2025-01-29 11:48:30 +01:00
Davide
d0077e03f1
Clarify the extent of the Ethernet rule 2025-01-29 10:00:04 +01:00
Davide
8513c2a22f
Only apply cellular/Ethernet on-demand rules on devices that support the interface (#1120)
Fixes #1096
Fixes #1060 

Revives #1119, but #1096 is more important.
2025-01-29 09:51:23 +01:00
Davide
b6cc5650c6
macOS: Perform provider server action on click address
Tap address to connect/select provider server, rather than a
separate column.

In the future, make country tappable to mean "connect to random
server of this country".

Fixes #1117
2025-01-29 01:44:43 +01:00
Davide
5752b3a8d0
Fix misaligned reveal button in secure fields
Fixes #1116
2025-01-29 01:44:42 +01:00
Davide
66285a819f
Get rid of unused scroll proxy in profiles list 2025-01-29 01:44:42 +01:00
Davide
c310b15688
macOS: Fix unreadable character in provider server favorite column
Fixes #1115
2025-01-29 01:44:42 +01:00
Davide
ab261084cd
iOS: Hide layout toggle on iPhone
Hardcode .list layout.

Fixes #1108
2025-01-29 01:44:40 +01:00
Davide
c6b1c03fcb
Do not show "Activating" when the tunnel is actually idle (#1105)
E.g. in airplane mode, the status shows as "Activating", but the tunnel
is not actively establishing any connection. It's just idle.

Reported here:
https://www.reddit.com/r/passepartout/comments/1i957zj/when_phone_going_into_airplane_mode_passepartout/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button
2025-01-27 12:31:50 +01:00
Davide
9145e81092
Group empty packages by path 2025-01-27 00:09:16 +01:00
Davide
11fcc132fb
OpenVPN: Prompt for credentials when needed (#1104)
Assume OpenVPN to be interactive if credentials are empty but required
(--auth-user-pass).

For this change, change paywall restriction to OTP only. Allow
interactive login similar to OpenVPN Connect "Save username/password".
2025-01-25 14:49:11 +01:00
Davide
b2e9f9a584
Log filtered profile names 2025-01-25 09:53:22 +01:00
Davide
45e33ae314
Resolve logging issues (#1102)
- Purge tunnel logs properly
- Prepend sessions with system information (app/system version, device
type)
2025-01-24 23:21:53 +01:00
Davide
09e8055b7d
Expand on logs generated by ErrorHandler
An error alert is being presented to the user.

Fixes #1098
2025-01-23 11:04:37 +01:00
Davide
f3d90a9a93
Present donations in reverse order
:-)
2025-01-22 23:11:28 +01:00
Davide
1414080ea9
Do not require purchase for empty on-demand rules (#1089)
Major issue with migrated profiles with the "Excluding" policy. Existing
users are being opted into an unnecessary purchase.
2025-01-20 14:49:47 +01:00
Davide
7ecd37e6ba
Fix purchased features on Apple TV (#1083)
Refactor #1074 to show the appropriate list of eligible features in the
"Purchased" screen. The "X" signs are highly misleading.
2025-01-19 23:09:55 +01:00
Davide
66da9d165d
Omit broken links from TV paywall
Fixes #1068
2025-01-19 22:48:38 +01:00
Davide
524243ebaa
Fix error alert when importing files from external apps (#1078)
URL.startAccessingSecurityScopedResource() fails in that case, but
permission is not required at all.

Could reproduce by importing .ovpn file from a Telegram chat.
2025-01-19 11:59:20 +01:00
Davide
bd9f8d63a5
Improve debug logs and move methods to library (#1076)
- Move availableLogs() / purgeLogs() to library
- Append and rotate logs by size (500k)
- Add marker between app/tunnel launches
- Purge logs on each save (3 days)
- Unify debug log content view across platforms
    - macOS: Table + inspect full line
    - iOS/tvOS: Use List
    - Scroll to bottom onLoad()
2025-01-19 00:42:58 +01:00
Davide
a6e44872e9
Select country by typing on macOS
Fixes #1062
2025-01-19 00:18:12 +01:00
Davide
8092c4fb1d
Assume .appleTV to be enough on tvOS (#1074)
Eligibility is ensured on iOS/macOS "remote" apps and profiles are not editable on TV. The day they can be edited, this will need a rework, but today it should be fine.

Regression due to BuildProducts not being credited on Apple TV.
2025-01-18 15:46:11 +01:00
Davide
4cae181bc8
Verify tunnel profile every hour
10 minutes is too pedantic in logs.
2025-01-15 20:50:41 +01:00
Davide
4e43c14cc6
Update copyright 2025-01-15 20:22:52 +01:00
Davide
7b8dbfe84a
Minimize dependencies of VPN implementations (#1057)
### OpenVPN

- Make CPassepartoutCryptoOpenSSL agnostic of PassepartoutKit
- Move Allocation/ZeroingData from PassepartoutKit to package for
internal use
  - Rename ZeroingData.count to .length for consistency with NSData
  - Duplicate some Data manipulation code in CryptoOpenSSL
- Retain a simplified version of ZeroingData in PassepartoutKit
(AutoerasingData)

### WireGuard

- Make WireGuardKit imports `internal`
2025-01-15 09:39:58 +01:00
Davide
53ee7ba457
Bump version 2025-01-13 23:14:56 +01:00
Davide
4a236787bc
Add EULA and privacy policy in paywall (#1056)
Follow-up from App Review.
2025-01-13 18:21:33 +01:00
Davide
a0092b3fad
Pull out VPN implementations from App library
And fix tests.
2025-01-13 18:11:45 +01:00
Davide
1942b82ebb
Rework App+Kit as monorepository (#1055)
Simplify development and maintenance immensely by making this a
monorepository:

- Convert PassepartoutKit and VPN bindings to local packages
  - OpenVPN/OpenSSL
  - WireGuard/Go
- Make PassepartoutKit available via
  - Source submodule for production (private)
- [Binary XCFramework for
development](https://github.com/passepartoutvpn/passepartoutkit)
 - Add PassepartoutKit Demo in root
   - Deploy package later
2025-01-13 12:26:53 +01:00