| Age | Commit message (Collapse) | Author | Files | Lines | |
|---|---|---|---|---|---|
| 2023-08-24 | Return RESTTransport from TransportProvider | Andrej Mihajlov | 1 | -2/+2 | |
| Ensures that RESTTransport returns consistent values throughout execution and solves the following issues: - Dynamic implementation of RESTTransport implemented by TransportProvider may yield different values (i.e RESTTransport.name) when accessed at different times during network operation execution - Current implementation of RESTTransport on TransportProvider yields "TransportProvider" before the first call to sendRequest() which is not correct behavior becuase we always log the name of transport that's being used before sending request. - When starting the app with network link conditioner blocking traffic, TransportProvider seems to print "TransportProvider" indefinitely even after the first call to sendRequest(). | |||||
| 2023-08-17 | PacketTunnel: refactor parsing of start options | Andrej Mihajlov | 2 | -32/+70 | |
| 2023-08-16 | Introduce PacketTunnelCore framework | Andrej Mihajlov | 10 | -1265/+158 | |
| - Move TunnelMonitor, Pinger, WgStats into new framework - Add TunnelMonitorProtocol, TunnelDeviceInfoProtocol, PingerProtocol protocols to improve testing/mocking - Rework TunnelMonitor and Pinger to use block-based event handler instead of delegate - Drop Objective-C bridging header from PacketTunnel - Add tests for Pinger | |||||
| 2023-08-08 | PacketTunnel: fix missing call to completion handler in onSleep() | Andrej Mihajlov | 2 | -4/+3 | |
| 2023-08-08 | Add a generic version of tunnel settings | Bug Magnet | 1 | -1/+1 | |
| 2023-07-10 | Enable Shadowsocks bridges selection via RelaySelector | Bug Magnet | 1 | -1/+6 | |
| 2023-06-27 | New swiftformat rule, enable google swift guidelines | Bug Magnet | 6 | -15/+12 | |
| 2023-06-13 | Replace Caching type with FileCache<Content: Codable> | Andrej Mihajlov | 1 | -4/+4 | |
| 2023-06-13 | Cache the last used shadowsocks configuration and reuse it subsequently | Bug Magnet | 1 | -5/+9 | |
| 2023-06-09 | Formalize application targets | Andrej Mihajlov | 2 | -16/+5 | |
| 2023-06-08 | PacketTunnel: rotate private key on mismatch with server | Andrej Mihajlov | 6 | -150/+460 | |
| 2023-05-29 | Introduce MullvadTransport and move Shadowsocks there, share ↵ | Bug Magnet | 2 | -60/+3 | |
| TransportProvider implementation | |||||
| 2023-05-25 | Pass the API endpoint to Shadowsocks instead of hardcoding it | Bug Magnet | 2 | -3/+7 | |
| 2023-05-22 | Reformat the code for Swift 5.8 | Andrej Mihajlov | 6 | -36/+36 | |
| 2023-05-22 | Add shadowsocks-proxy crate | Emīls | 2 | -4/+65 | |
| 2023-05-12 | Simplify the AddressCache logic, it now filters results to only keep the ↵ | Bug Magnet | 1 | -3/+4 | |
| first one, does not rotate addresses anymore, and has tests written for. | |||||
| 2023-05-09 | Fix port selection algorithm | Jon Petersson | 1 | -2/+4 | |
| 2023-05-03 | Pass closure to block operations instead of the entire operation | Andrej Mihajlov | 1 | -13/+14 | |
| Block operations receive (Error?) -> Void Result block operations receive (Result<Output, Error>) -> Void Transform operations receive (Input, (Result<Output, Error>) -> Void) -> Void | |||||
| 2023-05-03 | Adapt codebase to use cancellable initializer | Andrej Mihajlov | 1 | -35/+13 | |
| 2023-03-29 | Delay tunnel reconnection after private key rotation | Jon Petersson | 1 | -1/+64 | |
| 2023-03-27 | Fix many typos | Alexander Seiler | 1 | -1/+1 | |
| Signed-off-by: Alexander Seiler <seileralex@gmail.com> | |||||
| 2023-03-22 | Add coordinators and app router | Andrej Mihajlov | 1 | -0/+53 | |
| Fixes IOS-10 | |||||
| 2023-03-08 | PacketTunnel: wrap start/stop in dispatch queue | Andrej Mihajlov | 1 | -79/+81 | |
| 2023-03-03 | Fix typo | Andrej Mihajlov | 1 | -1/+1 | |
| 2023-03-03 | Add additional guard to restrict connectivity check to connecting and ↵ | Andrej Mihajlov | 1 | -3/+3 | |
| connected state only | |||||
| 2023-03-03 | Use NEPacketTunnelProvider.defaultPath instead of path monitor | Andrej Mihajlov | 2 | -52/+52 | |
| Seems to be more reliable than using path monitor directly. Also understands airplane mode so no need for any kind of heuristics. | |||||
| 2023-03-03 | PacketTunnel: ignore all requests to reconnect after the first call to ↵ | Andrej Mihajlov | 1 | -0/+8 | |
| stopTunnel() | |||||
| 2023-03-03 | TunnelMonitor: rework to use locks and introduce .recovering state | Andrej Mihajlov | 3 | -118/+137 | |
| 2023-03-03 | Serialize calls to reconnect tunnel | Andrej Mihajlov | 1 | -4/+36 | |
| 2023-03-02 | Pinger: lock send(to:) | Andrej Mihajlov | 1 | -2/+2 | |
| 2023-02-28 | Replace OperationCompletion with Result | Andrej Mihajlov | 1 | -18/+24 | |
| Error is set to OperationError.cancelled if operation is cancelled. | |||||
| 2023-02-15 | PacketTunnel: tune down error verbosity | Andrej Mihajlov | 1 | -3/+3 | |
| 2023-02-15 | TunnelMonitor: move happy path into do {} block to avoid return in catch. | Andrej Mihajlov | 1 | -5/+3 | |
| 2023-02-15 | TunnelMonitor: tune down log levels | Andrej Mihajlov | 1 | -17/+19 | |
| 2023-02-15 | Pinger: remove logger | Andrej Mihajlov | 1 | -13/+1 | |
| 2023-02-03 | Extract URLRequestProxy implementation | Andrej Mihajlov | 1 | -37/+19 | |
| 2023-02-03 | Add missing call to completion in response to .cancelURLRequest(id) | Andrej Mihajlov | 1 | -0/+1 | |
| 2023-02-03 | Keep the tunnel process running if it had failed to read configuration on ↵ | Andrej Mihajlov | 1 | -68/+83 | |
| startup Restart it internally at 2s interval. This should keep the VPN running on boot but block all networking until device is locked and the process gained access to configuration stored in Keychain. | |||||
| 2023-02-03 | Rework logging configurator into builder | Andrej Mihajlov | 1 | -6/+13 | |
| 2023-02-03 | Exit tunnel when keychain is locked (solves boot issue) | Andrej Mihajlov | 1 | -0/+18 | |
| 2023-02-03 | Add configuration failure cause | Andrej Mihajlov | 1 | -13/+36 | |
| 2022-12-09 | Handle application updates with settings migration | sajacl | 1 | -6/+48 | |
| 1. Block all the traffic when tunnel cannot read the settings (Introduced empty tunnel in `TunnelConfiguration`). 2. Introduce proper error enum, wrap WireGuard error and settings migration error. 3. Report possible errors to GUI. | |||||
| 2022-11-30 | Wait for utun to appear before reporting network status | Andrej Mihajlov | 1 | -34/+31 | |
| 2022-11-30 | Start tunnel monitoring upon receiving the first path update | Andrej Mihajlov | 1 | -15/+19 | |
| 2022-11-17 | REST: replace transport registry with transport provider closure | Andrej Mihajlov | 1 | -4/+4 | |
| 2022-11-09 | PacketTunnel: fix error message | Andrej Mihajlov | 1 | -1/+1 | |
| 2022-11-09 | Remove shared instances | Andrej Mihajlov | 1 | -9/+20 | |
| 2022-11-07 | Check if device revoked or time expired after couple of failed attempts | sajacl | 1 | -1/+199 | |
| Check if device is revoked or account has expired when the tunnel fails to connect on each second failed attempt. | |||||
| 2022-11-07 | Add exponential backoff with jitter | Andrej Mihajlov | 1 | -1/+1 | |
| 2022-11-07 | Move FixedWidthInteger arithmetics to MullvadTypes | Andrej Mihajlov | 2 | -65/+1 | |
