Commit Graph

17 Commits (87a8003d397174b54c2bc25b0dc8f32222a01420)

Author SHA1 Message Date
James Tucker 87a8003d39 *: add a CI check for license headers and fix all files
Updates tailscale/tailscale#10992

Signed-off-by: James Tucker <james@tailscale.com>
3 months ago
kari-ts 9492b01946
cmd/tailscale, tailscale/ipn: fix alway-on VPN (#168)
=If a ConnectEvent is received before the first notification, (as happens when a connection is attempted due to always-on after device reboot) create state.Prefs.
-Create an intent to start the VPN worker in the case of an always-on intent received on device reboot
-Rename onConnect channel to onVPNRequested, since this isn't doing the actual connecting

Fixes tailscale/tailscale#2481

Signed-off-by: kari-ts <kari@tailscale.com>
3 months ago
Brett Jenkins 6348bb254a
Prevent connecting loops when using connect intent more than once (#95)
* startvpnworker.java: prevent connecting loops

If start intent called more than once.

Turns out there were still some cases where the bug would occur, also it turns out checking the status of a VPN connection isn't foolproof in android, so this is a safer way to fix it, we just ensure that the autoConnect var is set to false when disconnecting.

Fixes: https://github.com/tailscale/tailscale/issues/8013

Signed-off-by: Brett Jenkins <brett@brettjenkins.co.uk>
10 months ago
Brett Jenkins eb9599540c
Add intents (#87)
IPNReceiver: Add intents to connect and disconnect VPN

Added a new class IPNReceiver to listen to intents silently and connect and disconnect the VPN. This uses workers to avoid doing too much in the IPNReceiver which is to be avoided according to documentation.

Also includes a fix for vpn occasionally not starting. Think this was due to a race condition, but now only sets autoConnect to false when we know a connection is connecting or connected.

Fixes https://github.com/tailscale/tailscale/issues/3547
Updates https://github.com/tailscale/tailscale/issues/2481

Signed-off-by: Brett Jenkins <brett@brettjenkins.co.uk>
1 year ago
Denton Gentry e7ceb58224 IPNService: add Chromecast to the apps allowed to bypass the VPN.
Needed for LAN discovery of Chromecast devices.
Fixes https://github.com/tailscale/tailscale/issues/3636

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
1 year ago
Denton Gentry 908c634a6a
IPNService: add Sonos S1 to the apps allowed to bypass the VPN. (#76)
Fixes https://github.com/tailscale/tailscale/issues/2548

Signed-off-by: Denton Gentry <dgentry@tailscale.com>

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
1 year ago
Denton Gentry 9ce897ed8f
IPNService: add Sonos to the apps allowed to bypass the VPN. (#69)
Updates https://github.com/tailscale/tailscale/issues/2548

Signed-off-by: Denton Gentry <dgentry@tailscale.com>

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry ac5e24a63d
build.gradle: update to SDK31 (#68)
Required for apps to update in the Play Store after November 1.

This requires:
- manifest must specify if Intents are exported.
- PendingIntent must declare FLAG_IMMUTABLE or MUTABLE

Signed-off-by: Denton Gentry <dgentry@tailscale.com>

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry d1d72859b4 Add GoPro to the apps allowed to skip the VPN.
Fixes https://github.com/tailscale/tailscale/issues/2554

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Denton Gentry 2597b82c3f Add inherently local apps to disallowed list.
Google Stadia, Messages (RCS/Jibe), and Android Auto
don't benefit from being on the VPN, and don't work.
Either they need access to local hardware (Auto, Stadia)
or they're accessing an entirely different communications
channel (Messages). Don't send them through the VPN.

Fixes https://github.com/tailscale/tailscale/issues/2322
Fixes https://github.com/tailscale/tailscale/issues/3460
Fixes https://github.com/tailscale/tailscale/issues/3828

Signed-off-by: Denton Gentry <dgentry@tailscale.com>
2 years ago
Elias Naur 078356613f android: fix persistent notification intent target
Signed-off-by: Elias Naur <mail@eliasnaur.com>
3 years ago
Elias Naur 10ded1bad2 cmd/tailscale,java: implement file sharing
Fixes tailscale/tailscale#1809

Signed-off-by: Elias Naur <mail@eliasnaur.com>
3 years ago
Brad Fitzpatrick b97cc703d8 Fix routing loop prevention, MagicDNS forwarding over Tailscale.
Fixes tailscale/tailscale#2102
Updates tailscale/tailscale#1809

Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
3 years ago
David Anderson 8daee9c431 com/tailscale/ipn: exclude the app from its own VPN.
This means that the Tailscale app's traffic will never use
the VPN that it sets up, which avoids routing loops in
scenarios like publishing a default route over Tailscale.

Signed-off-by: David Anderson <danderson@tailscale.com>
Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur 752d453642 java/com/tailscale/ipn: set underlying networks and metered status for the VPN
Updates tailscale/tailscale#453

Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur 271d40978e java/com/tailscale/ipn: explicitly allow IPv4 and IPv6 traffic
The VPNService.Builder object blocks traffic to IP families for which no
route, local address, nor DNS are defined. The Tailscale tunnel doesn't
cover all traffic, so both IP families should be kept open.

Updates tailscale/tailscale#453 (maybe fixes it)
Updates tailscale/tailscale#431 (another DNS problem)

Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago
Elias Naur 5109987e18 all: initial commit
Signed-off-by: Elias Naur <mail@eliasnaur.com>
4 years ago