aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/app/src/main/java (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* Allow exporting to zip fileJason A. Donenfeld2018-04-292-0/+173
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* Allow importing from zip fileJason A. Donenfeld2018-04-282-45/+116
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* config: Minor cleanupHarsh Shandilya2018-04-284-18/+23
| | | | | | | | | - Stop implicitly assuming locales in String.format - Cleanup method visibilities - Improve uses of Integer methods - Remove unused getToken method Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* Quick cleanup across the boardHarsh Shandilya2018-04-288-19/+16
| | | | | | | | | | - Clean up imports - Adjust method visibility - Drop in NonNull annotations where needed - Prevent potential NPEs from nulled getActivity calls - Remove unused methods Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* Use validation instead of two-way bindingJason A. Donenfeld2018-04-287-119/+340
| | | | | | | | | | | | | | This is insane, but it appears to be working. We essentially store things in a separate class for editing, and then commit it back at a given time. This business with onViewStateRestored in both TunnelEditorFragment and in TunnelDetailFragment is buggy and likely wrong. In general TunnelEditorFragment should probably be rewritten. The relationship with the changed name is not clear. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* Do not do DNS lookups for IPsJason A. Donenfeld2018-04-274-14/+29
| | | | | | | This involves reflection, which is a bummer, but it's better than doing unnecessary DNS lookups. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* Throw IllegalArgumentExceptions when arguments are badJason A. Donenfeld2018-04-274-37/+35
| | | | | | | | | This will make the two way data binding crash more, but it will improve the robustness of the config file parser, which deals with exceptions gracefully, and when we move to one way data binding, it will help with that too. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* WgQuickBackend: always create configuration fileJason A. Donenfeld2018-04-261-10/+5
| | | | | | It might be removed on an update. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* GoBackend: bring down tunnels when revoked or disconnectedJason A. Donenfeld2018-04-251-0/+6
| | | | | | | 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>
* Curve25519: fix up spacingJason A. Donenfeld2018-04-251-453/+453
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* Update application state based on wg-quickJason A. Donenfeld2018-04-233-1/+21
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* Determine MTU automaticallyJason A. Donenfeld2018-04-181-2/+2
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* More javaficationJason A. Donenfeld2018-04-185-188/+333
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* GoBackend: default MTU is 1280Jason A. Donenfeld2018-04-171-2/+11
| | | | | | | 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>
* Remove sloppy java with enterprise java horrorsJason A. Donenfeld2018-04-174-95/+147
| | | | | | | 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>
* GoBackend: Handle vpn service expirationAurélien Chabot2018-04-171-8/+22
| | | | | | | | 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>
* Config: Handle multiple address or dns in config fileAurélien Chabot2018-04-171-2/+16
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* GoBackend: Add support for multiple address and dns as a comma separated listAurélien Chabot2018-04-171-4/+11
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* GoBackend: parse allowed ipsAurélien Chabot2018-04-171-5/+33
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* GoBackend: Parse the dns addressAurélien Chabot2018-04-171-1/+1
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* GoBackend: IPv6 handlingAurélien Chabot2018-04-171-6/+25
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* GoBackend: Resolve endpoint before passing it to the go libAurélien Chabot2018-04-171-2/+15
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* GoBackend: Use the android VpnService to encapsulate the go backendAurélien Chabot2018-04-172-6/+90
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* GoBackend: integrate into appJason A. Donenfeld2018-02-175-38/+152
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* KeyEncoding: add constant time hex implementationJason A. Donenfeld2018-02-131-2/+44
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* FileConfigStore: Warn for deletion failure in exception pathSamuel Holland2018-01-181-1/+2
| | | | | | | 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>
* WgQuickBackend: Always pass the full path to wg-quickSamuel Holland2018-01-181-20/+21
| | | | Signed-off-by: Samuel Holland <samuel@sholland.org>
* fragments: Be extra paranoid about the binding getting destroyedSamuel Holland2018-01-181-4/+8
| | | | Signed-off-by: Samuel Holland <samuel@sholland.org>
* TunnelManager: Use constants directly where appropriateSamuel Holland2018-01-171-2/+2
| | | | Signed-off-by: Samuel Holland <samuel@sholland.org>
* Peer: Add missing @OverrideSamuel Holland2018-01-171-0/+1
| | | | Signed-off-by: Samuel Holland <samuel@sholland.org>
* WgQuickBackend: Clean up unused fields and importsSamuel Holland2018-01-171-4/+0
| | | | Signed-off-by: Samuel Holland <samuel@sholland.org>
* ToolsInstaller: Remove double-checked lockingSamuel Holland2018-01-171-16/+15
| | | | | | | | | 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>
* RootShell: Use a lock object instead of sync methodsSamuel Holland2018-01-171-88/+98
| | | | | | | This avoids exposing the synchronization implementation details in the class's interface. Signed-off-by: Samuel Holland <samuel@sholland.org>
* ToolsInstaller: symlink tools alwaysJason A. Donenfeld2018-01-101-22/+14
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* FileConfigStore: cleanup on rename problemJason A. Donenfeld2018-01-101-1/+3
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* QuickTileService: Fix crash opening activitySamuel Holland2018-01-101-3/+6
| | | | Signed-off-by: Samuel Holland <samuel@sholland.org>
* TunnelController: Use helper function to unwrap the ThrowableSamuel Holland2018-01-101-2/+2
| | | | Signed-off-by: Samuel Holland <samuel@sholland.org>
* model: Use ConfigStore.rename() to avoid recreating tunnelsSamuel Holland2018-01-103-61/+51
| | | | | | Rename all of the functions to be in line with setConfig/setState Signed-off-by: Samuel Holland <samuel@sholland.org>
* ConfigStore: Add a rename method and implement itSamuel Holland2018-01-102-0/+19
| | | | Signed-off-by: Samuel Holland <samuel@sholland.org>
* FileConfigStore: Simplify error handlingSamuel Holland2018-01-091-8/+4
| | | | Signed-off-by: Samuel Holland <samuel@sholland.org>
* WgQuickBackend: properly report exception so alert showsJason A. Donenfeld2018-01-102-10/+18
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* Tunnel: ifname has max len 15Jason A. Donenfeld2018-01-101-2/+2
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* TunnelEditorFragment: do not pass null localConfigJason A. Donenfeld2018-01-101-6/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* QuickTileService: sometimes tile is nullJason A. Donenfeld2018-01-101-0/+2
| | | | | | | | | | | | | | | | | | 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>
* WgQuickBackend: Finish the implementationSamuel Holland2018-01-091-7/+29
| | | | Signed-off-by: Samuel Holland <samuel@sholland.org>
* model: Chain completions to avoid race conditionsSamuel Holland2018-01-092-23/+18
| | | | | | | | Otherwise getConfigAsync().thenCompose(x -> setState()) would be unsafe. This reverts commit a6595a273afd50524cc66765c6bfbdcc34cb12e4. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* global: Clean up error loggingSamuel Holland2018-01-095-10/+13
| | | | Signed-off-by: Samuel Holland <samuel@sholland.org>
* WgQuickBackend: Log when tunnels can't be enumeratedSamuel Holland2018-01-091-1/+2
| | | | Signed-off-by: Samuel Holland <samuel@sholland.org>
* RootShell: Improve shell start error handlingSamuel Holland2018-01-091-9/+14
| | | | | | | 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>
* RootShell: Be stricter about command delimitersSamuel Holland2018-01-091-13/+24
| | | | Signed-off-by: Samuel Holland <samuel@sholland.org>