Commit Graph

44 Commits

Author SHA1 Message Date
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
Davide De Rosa
2aae3499de Move host configurations to "Hosts" subdirectory
Without "host." prefix, now unnecessary.
2018-10-26 18:03:28 +02:00
Davide De Rosa
8e1b67d151 Infer profile id uniqueness by context
Drop "(provider|host)." prefix, reuse as title.
2018-10-26 17:37:52 +02:00
Davide De Rosa
8f29f79168 Fix exceptions thrown on already migrated JSON
Also remove deprecated tunnel configuration keys.
2018-10-26 15:31:02 +02:00
Davide De Rosa
9726158030 Drop deprecated configuration values
- debugLogKey
- lastErrorKey
2018-10-25 22:45:50 +02:00
Davide De Rosa
12e0a55f7a Bind migrations to build numbers 2018-10-25 22:45:50 +02:00
Davide De Rosa
082ffa3cb1 Attach build number to service JSON
Update before serializing.
2018-10-25 22:45:50 +02:00
Davide De Rosa
c73c2e3826 Rename tunnelConfiguration to baseConfiguration
It's much less confusing. Migrate too.
2018-10-25 22:45:50 +02:00
Davide De Rosa
09685e6994 Activate service migration 2018-10-25 22:45:50 +02:00
Davide De Rosa
d087acd512 Migrate host configurations 2018-10-25 22:45:50 +02:00
Davide De Rosa
542a3e3721 Upgrade TunnelKit with configuration refactoring 2018-10-25 22:45:44 +02:00
Davide De Rosa
ef9032e440 Update TunnelKit
- Improve logging performance and privacy.
- Fix server-side renegotiation issues.
2018-10-24 21:23:13 +02:00
Davide De Rosa
be17f57a5e Add reset cell to revert to original configuration
When a backing .ovpn is available.
2018-10-23 12:57:11 +02:00
Davide De Rosa
346a9490ec Save .ovpn internally associated to host profile 2018-10-23 12:57:11 +02:00
Davide De Rosa
976e47af64 Clear VPN error status before restart 2018-10-22 21:49:43 +02:00
Davide De Rosa
e8f2aaaf08 Show tunnel failure reason in VPN status 2018-10-22 21:49:43 +02:00
Davide De Rosa
8219519a22 Fix credentials requirement in VPN configuration
Refines #4
2018-10-19 17:51:25 +02:00
Davide De Rosa
ae2bd3d876 Replace some profile exceptions with preconditions
Misconfigured profiles must fall back to a consistent state, this
is a programming error.

- provider.pool: fall back to default pool (should always be there)
- provider.preset: why would one remove a preset?
- host.endpointProtocols: .ovpn with no remotes shouldn't get this far
2018-10-19 01:29:44 +02:00
Davide De Rosa
5e0590184b Require credentials for providers only
Not always the case, but PIA certainly requires them. Will make it
an infrastructure option later. Only require credentials as a
configuration check, everything else has defaults.
2018-10-19 01:29:44 +02:00
Davide De Rosa
567ddd9b12 Find out version/build statically
Assume bundle and info dictionary are never nil.
2018-10-18 14:02:35 +02:00
Davide De Rosa
62d1c2d882 Add promoting alert for subreddit 2018-10-18 10:04:23 +02:00
Davide De Rosa
b9ec01945d Initial commit 2018-10-11 09:13:19 +02:00