summaryrefslogtreecommitdiffhomepage
path: root/app/src/main/java
AgeCommit message (Collapse)Author
2018-04-25GoBackend: bring down tunnels when revoked or disconnectedJason A. Donenfeld
This synchronizes the OS's connection state with ours, such as when the user disconnects using the system UI. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-04-25Curve25519: fix up spacingJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-04-23Update application state based on wg-quickJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-04-18Determine MTU automaticallyJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-04-18More javaficationJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-04-17GoBackend: default MTU is 1280Jason A. Donenfeld
This sucks, but it works with mobile networks. Later we can do something sophisticated like we do with wg-quick.c, but not now. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-04-17Remove sloppy java with enterprise java horrorsJason A. Donenfeld
Since the amount of mind numbing boiler plate has been increased, this must be the proper way to do things. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-04-17GoBackend: Handle vpn service expirationAurélien Chabot
After a timeout the android system is destroying the vpn service when it is not used. By using a completable future we can wait for the service to be relaunch on demand. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-04-17Config: Handle multiple address or dns in config fileAurélien Chabot
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-04-17GoBackend: Add support for multiple address and dns as a comma separated listAurélien Chabot
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-04-17GoBackend: parse allowed ipsAurélien Chabot
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-04-17GoBackend: Parse the dns addressAurélien Chabot
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-04-17GoBackend: IPv6 handlingAurélien Chabot
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-04-17GoBackend: Resolve endpoint before passing it to the go libAurélien Chabot
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-04-17GoBackend: Use the android VpnService to encapsulate the go backendAurélien Chabot
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-02-17GoBackend: integrate into appJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-02-13KeyEncoding: add constant time hex implementationJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-01-18FileConfigStore: Warn for deletion failure in exception pathSamuel Holland
There's nothing we can do about it at this point; we're already rolling back changes. Signed-off-by: Samuel Holland <samuel@sholland.org>
2018-01-18WgQuickBackend: Always pass the full path to wg-quickSamuel Holland
Signed-off-by: Samuel Holland <samuel@sholland.org>
2018-01-18fragments: Be extra paranoid about the binding getting destroyedSamuel Holland
Signed-off-by: Samuel Holland <samuel@sholland.org>
2018-01-17TunnelManager: Use constants directly where appropriateSamuel Holland
Signed-off-by: Samuel Holland <samuel@sholland.org>
2018-01-17Peer: Add missing @OverrideSamuel Holland
Signed-off-by: Samuel Holland <samuel@sholland.org>
2018-01-17WgQuickBackend: Clean up unused fields and importsSamuel Holland
Signed-off-by: Samuel Holland <samuel@sholland.org>
2018-01-17ToolsInstaller: Remove double-checked lockingSamuel Holland
It can't work and may be crashing the runtime. Use a lock object to avoid exposing the synchronization in the class's interface. Signed-off-by: Samuel Holland <samuel@sholland.org>
2018-01-17RootShell: Use a lock object instead of sync methodsSamuel Holland
This avoids exposing the synchronization implementation details in the class's interface. Signed-off-by: Samuel Holland <samuel@sholland.org>
2018-01-10ToolsInstaller: symlink tools alwaysJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-01-10FileConfigStore: cleanup on rename problemJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-01-10QuickTileService: Fix crash opening activitySamuel Holland
Signed-off-by: Samuel Holland <samuel@sholland.org>
2018-01-10TunnelController: Use helper function to unwrap the ThrowableSamuel Holland
Signed-off-by: Samuel Holland <samuel@sholland.org>
2018-01-10model: Use ConfigStore.rename() to avoid recreating tunnelsSamuel Holland
Rename all of the functions to be in line with setConfig/setState Signed-off-by: Samuel Holland <samuel@sholland.org>
2018-01-10ConfigStore: Add a rename method and implement itSamuel Holland
Signed-off-by: Samuel Holland <samuel@sholland.org>
2018-01-09FileConfigStore: Simplify error handlingSamuel Holland
Signed-off-by: Samuel Holland <samuel@sholland.org>
2018-01-10WgQuickBackend: properly report exception so alert showsJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-01-10Tunnel: ifname has max len 15Jason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-01-10TunnelEditorFragment: do not pass null localConfigJason A. Donenfeld
Otherwise we might dereference it, per this play store gathered trace: Xiaomi Redmi 3S (land), 2048MB RAM, Android 7.1 java.lang.NullPointerException: at com.wireguard.android.model.Tunnel.setConfig (Tunnel.java:118) at com.wireguard.android.fragment.TunnelEditorFragment.onOptionsItemSelected (TunnelEditorFragment.java:160) at android.app.Fragment.performOptionsItemSelected (Fragment.java:2478) at android.app.FragmentManagerImpl.dispatchOptionsItemSelected (FragmentManager.java:2182) at android.app.FragmentController.dispatchOptionsItemSelected (FragmentController.java:336) at android.app.Activity.onMenuItemSelected (Activity.java:3211) at com.android.internal.policy.PhoneWindow.onMenuItemSelected (PhoneWindow.java:1219) at com.android.internal.view.menu.MenuBuilder.dispatchMenuItemSelected (MenuBuilder.java:761) at com.android.internal.view.menu.MenuItemImpl.invoke (MenuItemImpl.java:152) at com.android.internal.view.menu.MenuBuilder.performItemAction (MenuBuilder.java:904) at com.android.internal.view.menu.MenuBuilder.performItemAction (MenuBuilder.java:894) at android.widget.ActionMenuView.invokeItem (ActionMenuView.java:616) at com.android.internal.view.menu.ActionMenuItemView.onClick (ActionMenuItemView.java:152) at android.view.View.performClick (View.java:5637) at android.view.View$PerformClick.run (View.java:22433) at android.os.Handler.handleCallback (Handler.java:751) at android.os.Handler.dispatchMessage (Handler.java:95) at android.os.Looper.loop (Looper.java:153) at android.app.ActivityThread.main (ActivityThread.java:6244) at java.lang.reflect.Method.invoke (Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:891) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:781) Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-01-10QuickTileService: sometimes tile is nullJason A. Donenfeld
According to play store reports, such as: wt88047, 0MB RAM, Android 8.1 java.lang.NullPointerException: at com.wireguard.android.QuickTileService.updateTile (QuickTileService.java:97) at com.wireguard.android.QuickTileService.onStartListening (QuickTileService.java:56) at android.service.quicksettings.TileService$H.handleMessage (TileService.java:407) at android.os.Handler.dispatchMessage (Handler.java:106) at android.os.Looper.loop (Looper.java:164) at android.app.ActivityThread.main (ActivityThread.java:6520) at java.lang.reflect.Method.invoke (Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:442) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:807) Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-01-09WgQuickBackend: Finish the implementationSamuel Holland
Signed-off-by: Samuel Holland <samuel@sholland.org>
2018-01-09model: Chain completions to avoid race conditionsSamuel Holland
Otherwise getConfigAsync().thenCompose(x -> setState()) would be unsafe. This reverts commit a6595a273afd50524cc66765c6bfbdcc34cb12e4. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-01-09global: Clean up error loggingSamuel Holland
Signed-off-by: Samuel Holland <samuel@sholland.org>
2018-01-09WgQuickBackend: Log when tunnels can't be enumeratedSamuel Holland
Signed-off-by: Samuel Holland <samuel@sholland.org>
2018-01-09RootShell: Improve shell start error handlingSamuel Holland
No need to catch and re-throw exceptions before starting the process. If running `su` itself fails, there's no (functional) root, so report that. Signed-off-by: Samuel Holland <samuel@sholland.org>
2018-01-09RootShell: Be stricter about command delimitersSamuel Holland
Signed-off-by: Samuel Holland <samuel@sholland.org>
2018-01-09RootShell: stop if we can't startJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-01-09RootShell: hoist out synchronizationJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-01-09ToolsInstaller: Propagate NoRootException properlySamuel Holland
Signed-off-by: Samuel Holland <samuel@sholland.org>
2018-01-09RootShell: Simplify, synchronize, clean upSamuel Holland
Signed-off-by: Samuel Holland <samuel@sholland.org>
2018-01-09TunnelListFragment: Remove useless keywordSamuel Holland
final doesn't do anything in try-with-resources (it's always final). Signed-off-by: Samuel Holland <samuel@sholland.org>
2018-01-09ToolsInstaller: terminators are better than seperatorsJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-01-09RootShell: synchronize accesses to single shellJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-01-08RootShell: Simplify constructorSamuel Holland
ToolsInstaller now takes care of installing the tools. Signed-off-by: Samuel Holland <samuel@sholland.org>