summaryrefslogtreecommitdiffhomepage
path: root/tunnel
AgeCommit message (Collapse)Author
2023-02-09ui,tunnel: add lastest handshake to peer detailsMikael Magnusson
Signed-off-by: Mikael Magnusson <mikma@users.sourceforge.net>
2023-02-09tunnel: add experimental SOCKS clientMikael Magnusson
2023-02-09tunnel: implement http proxy for Android 10+Mikael Magnusson
Allow getting package names of tv apps.
2023-02-09tunnel: add gRPC over unix domain socket to the go backendMikael Magnusson
With gRPC it will be easier to extend the go backend API. In this commit the Version function is reimplemented in gRPC. Gitignore generated protobuf files.
2023-02-09ui,tunnel: add HTTP proxy setting to Go backendMikael Magnusson
Only make the HTTP proxy settings visible on supported Android versions, i.e. Android 10 (AKA Android Q) and later. Signed-off-by: Mikael Magnusson <mikma@users.sourceforge.net>
2023-01-20gradle: adjust for and raise compileSdk to 33SlipkHunter
Signed-off-by: SlipkHunter <abrito025@gmail.com> Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2023-01-20gradle: migrate to namespace attributeHarsh Shandilya
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2023-01-20gradle: force the use of an older NDK versionSlipkHunter
NDK 25.x removed the bundled ld.gold/ld.bfd linkers, replacing them with the ld.ldd linker from LLVM. This causes the toolchains to pick up the host OS' `ld.gold` instead, which does not know how to link ARM(64) code and fails the build. Fixes: f269fb175dd7 ("gradle: update AndroidX and Kotlin") Signed-off-by: SlipkHunter <abrito025@gmail.com> Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2022-12-01ui: un-export VpnServiceHwanseung Lee
There is no reason to expose this service to external apps.[1] [1] https://developer.android.com/guide/topics/manifest/activity-element#exported Signed-off-by: Hwanseung Lee <hwanseung@chromium.org> Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2022-05-16tools: bump depsJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2022-04-26ui: move target SDK to 31Shahzain Ali
Signed-off-by: Shahzain Ali <shahzainali93@gmail.com> Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2022-03-20tools: bump wireguard-go and go 1.18Jason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2022-02-09tunnel: fix BadConfigExceptionTestMichal Murin
Fix the test by changing the DNS to a string with an invalid char in the `invalid-value.conf` test configuration file. Signed-off-by: Michal Murin <michal.murin@jamf.com> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2022-01-21ToolsInstaller: set id=wireguard magisk module paramJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2021-10-29tools: bump libwg-goJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2021-10-29global: bump copyright yearJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2021-10-29tunnel: remove kernel module downloaderJason A. Donenfeld
Nathan Chance dropped the ball repeatedly and never maintained this in a consistent way that anybody could use. With Android 12 out now, just drop it all together. A bummer, but I don't see much of a choice. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2021-10-28tunnel: make JSR305 annotations a compileOnly dependencyHarsh Shandilya
These have no business being part of the runtime classpath of this library Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2021-09-26tunnel: bump to work on x86_64 architectureJason A. Donenfeld
Bionic bans poll, so switch to ppoll. Folks were experiencing crashes on ChromeOS. We're waiting for https://go-review.googlesource.com/c/sys/+/352310 to be merged, but for now we rely on https://git.zx2c4.com/wireguard-go/commit/?id=fcc601dbf0f6b626ec1d47a880cbe64f9c8fe385 Reported-by: Rodrigo Alexandre <rdrslv00@gmail.com> Reported-by: Mace Moneta <moneta.mace@gmail.com> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2021-09-25ui,tunnel: support DNS search domainsJason A. Donenfeld
wg-quick has supported this for a while, but not the config layer, and not the Go backend, so wire this all up. Requested-by: Alexis Geoffrey <alexis.geoffrey97@gmail.com> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2021-09-24tools: bump depsJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2021-09-13tunnel: bump depsJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2021-09-09tools: bump for android 12Jason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2021-07-29gradle: update property set with AGP 7 experimental flagsHarsh Shandilya
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2021-07-29build: fix CMake warningHarsh Shandilya
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2021-07-29build: switch to modern plugin application layoutHarsh Shandilya
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2021-05-26tunnel: retry DNS resolution for 10 secondsJason A. Donenfeld
This has several problems: 1) it blocks the main thread; 2) it doesn't distinguish between a permanent error and a transient one; 3) the 10 seconds is hard coded; 4) there's no way for the user to cancel it. We'll have to improve this. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2021-05-07tunnel: bump depsJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2021-05-07tunnel: download hash list in chunks if necessaryJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2021-05-06tunnel: avoid race between shutdown and statsJason A. Donenfeld
wgTurnOff can block for a while, in which case, calling getStatistics will use a stale handle and stale tunnel. Not only that, but wgGetConfig might return null, in which case string.split throws. java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String[] java.lang.String.split(java.lang.String)' on a null at com.wireguard.android.backend.GoBackend.getStatistics Reported-by: tomt@adslweb.co.uk Link: https://lists.zx2c4.com/pipermail/wireguard/2021-May/006709.html Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2021-05-05tools: bump depsJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2021-02-22tunnel: update to go 1.16 and newer apiJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2021-02-12tunnel: report git commit as wgVersionJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2021-02-11tunnel: add developer information to pom xmlJason A. Donenfeld
Otherwise sonatype gets upset. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2021-02-11tunnel: bump all toolsJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2021-02-11tunnel: sign using gpg-agentJason A. Donenfeld
This way we don't have to have a separate java universe. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2021-02-11tunnel: switch publishing to MavenCentralHarsh Shandilya
Since MavenCentral requires GPG signed artifacts, we'll need to configure some things on the machine running the deployment. Specifically, these three Gradle properties need to be set (preferably in ~/.gradle/gradle.properties) ``` signing.keyId= // Duh signing.password= // I have absolutely no idea how this will work with HSMs signing.secretKeyRingFile= // $HOME/.gnupg/... you know the deal ``` The BINTRAY_USER and BINTRAY_KEY variables are replaced by SONATYPE_USER and SONATYPE_PASSWORD to better reflect their new contents. Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2021-01-27tunnel: bump libwg-go and use newer logging functionJason A. Donenfeld
We also plug a memory leak. C.CString was calling malloc, and these were never freed. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2021-01-23libwg-go: update to go 1.15.6L.W.Reek
Signed-off-by: L.W.Reek <syphyr@gmail.com>
2020-12-23tunnel: bump libwg-goJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-12-16tunnel: bump libwg-goJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-11-07build: switch to Gradle's maven-publish pluginHarsh Shandilya
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-10-27ToolsInstaller: unbreak cleanupJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-10-26tunnel: do not constantly raise toasts when process is opportunistically killedJason A. Donenfeld
Modern Android likes to kill processes to free ram and resources. When kernel-mode WireGuard is in use, this is quite alright with us, since the app doesn't actually need to consume any resources at all in order for the tunnel to run. So, we want to allow and encourage this resource frugality. However, when the quick settings tile is being used or when the app is referenced otherwise, the app will occasionally be restarted, to, for example, repaint the quick settings tile. This is also fine, as the process winds up being short-lived again. But, since process initialization means asking for a new root shell in order to check on kernel-mode WireGuard, this means that Magisk raises a systemwide toast. On some phones, this happens each and every time that the notification shade is pulled down. It's not only annoying but it sometimes obscures other notifications that users want to see, prompting their pulling down of the notification shade in the first place. In order to get rid of this nuisance, just disable these notifications and extraneous logs, so that we don't clutter the system every time that the process is opportunistically killed and restarted. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-10-20tunnel: clean up some docstring wordingJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-10-07tunnel: use more subtle roaming escape hatchJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-09-21Statistics: only do one hash lookupJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-09-21TunnelManager: catch exception in intent receiverJason A. Donenfeld
java.lang.IllegalStateException: at android.app.ContextImpl.startServiceCommon (ContextImpl.java:1720) at android.app.ContextImpl.startService (ContextImpl.java:1675) at android.content.ContextWrapper.startService (ContextWrapper.java:669) at com.wireguard.android.backend.GoBackend.startVpnService (GoBackend.java:4) at com.wireguard.android.backend.GoBackend.setStateInternal (GoBackend.java:4) at com.wireguard.android.backend.GoBackend.setState (GoBackend.java:2) at com.wireguard.android.model.TunnelManager$setTunnelState$2$1.invokeSuspend (TunnelManager.java:6) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith (BaseContinuationImpl.java:2) at kotlinx.coroutines.DispatchedTask.run (DispatchedTask.java:2) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely (CoroutineScheduler.java) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask (CoroutineScheduler.java:7) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker (CoroutineScheduler.java:7) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run (CoroutineScheduler.java:7) Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-09-16libwg-go: use PeekLookAtSocketFd6(), not PeekLookAtSocketFd4()Jonathan Davies
Signed-off-by: Jonathan Davies <jpds@protonmail.com> Fixes: 3d088411 ("libwg-go: use conn.Bind for socketfd peek") Cc: David Crawshaw <crawshaw@tailscale.com> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-09-16tunnel: document more public API from backend packageHarsh Shandilya
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>