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
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