Commit Graph

71 Commits

Author SHA1 Message Date
Davide De Rosa 5237aa3916 Import Core framework into iOS target 2019-03-18 11:52:19 +01:00
Davide De Rosa f661008679 Make framework internal components public 2019-03-18 11:50:52 +01:00
Davide De Rosa c7f522f55e Create Passepartout-Core framework target
Move all sources to this target, out of Passepartout-iOS.

FIXME: TrustedNetworks uses ServiceViewController.RowType
FIXME: make iOS target depend on Core.
2019-03-18 11:19:24 +01:00
Davide De Rosa 39fb191309 Log documents migration event
If anything was moved.
2019-03-11 10:17:45 +01:00
Davide De Rosa 9005bf6c19 Skip "Inbox" during migration
No permission.
2019-03-11 10:17:01 +01:00
Davide De Rosa 87249cb8ad Migrate documents to App Group 2019-03-11 10:16:33 +01:00
Davide De Rosa 8ede1ed3d4 Use App Group container for documents and caches 2019-03-11 10:05:54 +01:00
Davide De Rosa 7a21338042 Update copyright 2019-03-09 11:44:44 +01:00
Davide De Rosa 2e4d2162ac Define custom intents
- Connect
- Disable
- (Un)Trust current network
- (Un)Trust cellular network
- Move to location
2019-03-09 11:23:47 +01:00
Davide De Rosa ce3781e3b5 Be more formal about ProfileKey parsing 2019-03-08 10:21:08 +01:00
Davide De Rosa b50cb4681b Fix stupid parsing of ProfileKey from String
Fixes #19
2019-03-08 00:01:52 +01:00
Davide De Rosa e4ef4a9dbc Rearrange lines to isolate throwing code 2019-03-06 17:10:37 +01:00
Davide De Rosa 942aaecdc3 Refine profile description 2019-02-23 11:18:36 +01:00
Davide De Rosa d0de93c60a Do not sort endpoint addresses
Defeats purpose of best-first ordering in DNS reply.
2019-01-17 09:51:42 +01:00
Davide De Rosa 3d5c2bb8f5 Move .ovpn parser to TunnelKit 2018-11-10 11:39:36 +01:00
Davide De Rosa c7cb00f679 Move ProfileKey to separate file 2018-11-06 11:16:34 +01:00
Davide De Rosa 389746180b Move PlaceholderConnectionProfile to separate file 2018-11-06 11:16:30 +01:00
Davide De Rosa 0c389d8d8e Make caught errors warnings instead 2018-11-06 11:03:15 +01:00
Davide De Rosa 299c4088ad Improve ConnectionProfile description format
Refines 137e87a
2018-11-06 11:02:44 +01:00
Davide De Rosa ceeda8c314 Fix default trust policy 2018-11-04 16:49:46 +01:00
Davide De Rosa 137e87ad69 Add description for generic ConnectionProfile 2018-11-04 15:56:05 +01:00
Davide De Rosa e7d2dde972 Add/remove profile to/from filesystem immediately
Save unnecessary serialization of unaffected profiles.
2018-11-04 15:06:53 +01:00
Davide De Rosa bc0568cc38 Do not re-save profiles on (de)activate
Only service JSON is affected.
2018-11-04 14:55:25 +01:00
Davide De Rosa 9e7c4960e5 Update GitHub URL in license preamble 2018-11-04 10:53:16 +01:00
Davide De Rosa ef03b2b94d Leave serialization up to delegate
Ends up calling saveProfiles() multiple times otherwise.
2018-11-04 10:49:40 +01:00
Davide De Rosa 8e445e90b3 Move profile reactions to delegate
- Activation
- Removal
2018-11-04 10:49:40 +01:00
Davide De Rosa f75fbfb4bb Remove keychain password with profile removal 2018-11-02 15:52:36 +01:00
Davide De Rosa 56c0a1a15e Add profile renaming logic
- Suspend delegation of internal add/remove.
- Review several try/throws.
2018-11-02 15:52:36 +01:00
Davide De Rosa aa2b6bafaf Add method to rename immutable profile 2018-11-02 15:52:34 +01:00
Davide De Rosa 3f1e98f8ac Delegate profile management from ConnectionService
Makes much more sense than dumb wizard notifications. Organizer is
already a ConnectionServiceDelegate.
2018-11-02 15:20:37 +01:00
Davide De Rosa af870e2a84 Fix migrateJSON declarations and exposure
Unit tests could not compile.
2018-11-01 23:55:59 +01:00
Davide De Rosa 52394296be Drop pre-release migration logic 2018-11-01 13:42:20 +01:00
Davide De Rosa 964a4d701b Make serviceURL an external static var 2018-11-01 13:40:15 +01:00
Davide De Rosa 36995e089b Locate profiles via relative URLs
Avoid absolute URLs, profiles directory is always relative to
documents. Assume profiles to be based in the documents root
unless directory is != nil.

Given that, starting from iOS 8, the documents location can change
from time to time, could this fix #19?
2018-11-01 13:39:55 +01:00
Davide De Rosa 2197c96bd9 Move serialization URLs to ConnectionService
Keep ProfileKey a bare struct.
2018-11-01 13:32:53 +01:00
Davide De Rosa 0706d552be Drop redundant disconnection alert on Wi-Fi add
Doesn't trust by default, so it won't disconnect.

See 474105d
2018-10-30 00:30:30 +01:00
Davide De Rosa cced9b018f Fix provider name ordering
Define intrinsecally with Comparable.
2018-10-29 17:48:17 +01:00
Davide De Rosa 474105d671 Add current Wi-Fi without auto-trusting 2018-10-28 14:50:09 +01:00
Davide De Rosa 326c5b823d Observe wizard creation via notifications
Flow is too scattered to safely maintain delegation.
2018-10-27 20:11:26 +02:00
Davide De Rosa cda53bc4f1 Clean up Inbox on migration 2018-10-27 13:35:21 +02:00
Davide De Rosa dcecc84bda Remove .ovpn of deleted profile 2018-10-27 13:35:21 +02:00
Davide De Rosa 0e7c0b6388 List imported .ovpn if any, fall back to alert
Use .formSheet presentation (iPad).
2018-10-27 12:43:26 +02:00
Davide De Rosa 4bcb1fe2ad Convert some warnings to errors 2018-10-27 12:08:44 +02:00
Davide De Rosa 804585f13d Fix/improve some poor filename parsing 2018-10-27 10:52:26 +02:00
Davide De Rosa 821393af70 Refactor configurations in service extension
Reuse same directories of ConnectionService for storing
configuration files.
2018-10-27 09:42:41 +02:00
Davide De Rosa 76f2597424 Update TunnelKit and remove unused code
ConnectionProfileHolder
2018-10-26 19:05:25 +02:00
Davide De Rosa b5347e04b2 Move Context to ConnectionProfile
Fix an id conflict in credentials.
2018-10-26 18:57:07 +02:00
Davide De Rosa 18c7de140e Overwrite an existing profile configuration 2018-10-26 18:57:07 +02:00
Davide De Rosa 78abb8c764 Refactor service to use external profile JSONs
- Store only profile key/metadata into service.

- Map profiles by (context, id), context being either provider
or host.

- Initialize cache with a placeholder profile, lazily load full
profile (e.g. after opening profile).

- Only serialize non-placeholder profiles (opened once).

- Do not load full profiles for organizer listing

WARNING: always load active profile as non-placeholder.
2018-10-26 18:30:37 +02:00
Davide De Rosa 2d2884fdea Export profiles to separate JSONs
Use id as contextual filename.
2018-10-26 18:03:28 +02:00