db5e269463
client/tailscale/apitype: move local API types to new apitype package
...
They were scattered/duplicated in misc places before.
It can't be in the client package itself for circular dep reasons.
This new package is basically tailcfg but for localhost
communications, instead of to control.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-13 08:13:46 -07:00
1b9d8771dc
ipn/ipnlocal,wgengine/router,cmd/tailscale: add flag to allow local lan access when routing traffic via an exit node.
...
For #1527
Signed-off-by: Maisem Ali <maisem@tailscale.com >
2021-04-12 17:29:01 -07:00
854d5d36a1
net/dns: return error from NewOSManager, use it to initialize NM.
...
Signed-off-by: David Anderson <danderson@tailscale.com >
2021-04-12 15:51:37 -07:00
4d142ebe06
derp: handle net.ErrClosed in TestSendFreeze
...
Signed-off-by: Maisem Ali <maisem@tailscale.com >
2021-04-12 15:23:36 -07:00
8e75c8504c
ipn/ipnlocal: in direct file mode, don't readdir
...
And don't even allow attempts at Open/Delete.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-12 15:12:47 -07:00
9972c02b60
cmd/tailscale/cli: don't let up change prefs based on implicit flag values
...
This changes the behavior of "tailscale up".
Previously "tailscale up" always did a new Start and reset all the settings.
Now "tailscale up" with no flags just brings the world [back] up.
(The opposite of "tailscale down").
But with flags, "tailscale up" now only is allowed to change
preferences if they're explicitly named in the flags. Otherwise it's
an error. Or you need to use --reset to explicitly nuke everything.
RELNOTE=tailscale up change
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-12 14:39:47 -07:00
9aa33b43e6
net/dns: support split and unsplit DNS in NetworkManager.
...
Signed-off-by: David Anderson <danderson@tailscale.com >
2021-04-12 14:34:08 -07:00
f5742b0647
ipn/ipnlocal: add LocalBackend.SetDirectFileRoot
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-12 14:29:45 -07:00
64c80129f1
types/netmap: add some docs/warning to NetworkMap
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-12 12:49:25 -07:00
ccb322db04
tailcfg, control/controlclient: make nil MapResponse.DNSConfig mean unchanged (mapver15)
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-12 12:46:32 -07:00
a3113a793a
ipn: add hostname to Prefs.Pretty output
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-12 10:45:33 -07:00
4c3f7c06fc
ipn/ipnlocal: be consistent in not logging when no notify registered
...
Some paths already didn't. And in the future I hope to shut all the
notify funcs down end-to-end when nothing is connected (as in the
common case in tailscaled). Then we can save some JSON encoding work.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-12 10:38:51 -07:00
7c0e58c537
ipn/ipnlocal: remove redundant notify nil check
...
send does it.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-12 10:38:51 -07:00
d9ee9a0d3f
ipn: set BackendServer's notify earlier; don't require Start
...
We've been slowly making Start less special and making IPN a
multi-connection "watch" bus of changes, but this Start specialness
had remained.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-12 10:38:51 -07:00
8e4d1e3f2c
ipn: include err in Notify decode fatal path
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-12 10:38:51 -07:00
d5d70ae9ea
wgengine/monitor: reduce Linux log spam on down
...
Fixes #1689
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-12 10:38:51 -07:00
c0befee188
portlist: use windows OpenCurrentProcessToken, not GetCurrentProcessToken
...
The latter only works on Windows 8+.
Also add a TODO to get do this all more efficiently.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-12 09:23:52 -07:00
e619296ece
portlist: filter out all of 127.0.0.0/8, not just 127.0.0.1/32
...
Per user private bug report.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-12 09:17:39 -07:00
f325aa7e38
portlist: exclude services bound to IPv6 loopback address
...
Fixes #1683
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-12 09:07:16 -07:00
87eb8384f5
net/dns: fix up NetworkManager configurator a bit.
...
Clear LLMNR and mdns flags, update reasoning for our settings,
and set our override priority harder than before when we want
to be primary resolver.
Signed-off-by: David Anderson <danderson@tailscale.com >
2021-04-11 23:19:50 -07:00
303805a389
ipn/localapi: require write access to PATCH prefs
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-11 21:31:20 -07:00
3d81e6260b
net/dns: set resolved DefaultRoute setting according to split-dns mode.
...
Signed-off-by: David Anderson <danderson@tailscale.com >
2021-04-11 20:53:28 -07:00
cca230cc23
net/dns: fix staticcheck errors.
...
Signed-off-by: David Anderson <danderson@tailscale.com >
2021-04-11 20:53:28 -07:00
79109f4965
ipn/ipnlocal: use PATCH for EditPrefs, not POST
...
Addendum to earlier 00d641d9fc
.
Reserve POST for SetPrefs in the future.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-11 20:49:07 -07:00
4b47393e0c
net/dns: pacify staticcheck for now
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-11 20:43:15 -07:00
a7340c2015
net/dns: support split DNS in systemd-resolved.
...
Signed-off-by: David Anderson <danderson@tailscale.com >
2021-04-11 18:14:23 -07:00
00d641d9fc
ipn/localapi: move EditPrefs to localapi
...
Follow-up/revision to recent 53cfff109b
which
added EditPrefs.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-11 16:11:43 -07:00
84430cdfa1
net/dns: improve NetworkManager detection, using more DBus.
...
Signed-off-by: David Anderson <danderson@tailscale.com >
2021-04-11 15:22:06 -07:00
9a48bac8ad
net/dns: rename resolvconf.go to debian_resolvconf.go.
...
Signed-off-by: David Anderson <danderson@tailscale.com >
2021-04-10 23:31:14 -07:00
9831f1b183
net/dns: also include 'tail' and 'base' files when fixing up resolv.conf.
...
Signed-off-by: David Anderson <danderson@tailscale.com >
2021-04-10 23:01:11 -07:00
e43afe9140
net/dns: implement prior config reading for debian resolvconf.
...
Signed-off-by: David Anderson <danderson@tailscale.com >
2021-04-10 22:37:13 -07:00
143e5dd087
net/dns: rename script variable.
...
Debian resolvconf is not legacy, it's alive and well,
just historically before the other implementations.
Signed-off-by: David Anderson <danderson@tailscale.com >
2021-04-10 21:28:27 -07:00
55b39fa945
net/dns: add documentation to openresolv's config fetch.
...
Signed-off-by: David Anderson <danderson@tailscale.com >
2021-04-10 20:21:05 -07:00
61b361bac0
net/dns: teach the openresolv manager to read DNS config.
...
Signed-off-by: David Anderson <danderson@tailscale.com >
2021-04-10 19:37:11 -07:00
19eca34f47
wgengine/router: fix FreeBSD configuration failure on the v6 /48.
...
On FreeBSD, we add the interface IP as a /48 to work around a kernel
bug, so we mustn't then try to add a /48 route to the Tailscale ULA,
since that will fail as a dupe.
Signed-off-by: David Anderson <danderson@tailscale.com >
2021-04-10 19:36:26 -07:00
58760f7b82
net/dns: split resolvconfManager into a debian and an openresolv manager.
...
Signed-off-by: David Anderson <danderson@tailscale.com >
2021-04-10 18:55:05 -07:00
5480189313
net/dns: implement a DNS override workaround for legacy resolvconf.
...
Signed-off-by: David Anderson <danderson@tailscale.com >
2021-04-10 17:58:13 -07:00
1a371b93be
util/dnsname: add FQDN type, use throughout codebase.
...
Signed-off-by: David Anderson <danderson@tailscale.com >
2021-04-10 17:58:13 -07:00
7a1813fd24
Added 2 fuzzers
...
Signed-off-by: AdamKorcz <adam@adalogics.com >
2021-04-10 11:40:10 -07:00
5e90037f1a
api.md: clarify response behaviour for ACL POST endpoint
...
Signed-off-by: Daniel Chung <daniel@tailscale.com >
2021-04-10 11:38:12 -07:00
a64b57e2fb
control/controlclient: create tls client config with server hostname instead of serverURL.Host
...
Signed-off-by: Simon Kirillov <svkirillov3@gmail.com >
2021-04-10 11:20:10 -07:00
958782c737
cmd/{tailscale,tailscaled}: use netstack for subnet routing on Synology
...
Updates #707
Fixes #451
Fixes tailscale/tailscale-synology#52 (just make it work by default)
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-09 18:44:33 -07:00
3b451509dd
cmd/tailscale/cli: make advertise-{routes,exit-node} available unconditionally
...
It was only Linux and BSDs before, but now with netstack mode, it also works on
Windows and darwin. It's not worth limiting it to certain platforms.
Tailscaled itself can complain/fail if it doesn't like the settings
for the mode/OS it's operating under.
Updates #707
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-09 18:37:24 -07:00
83402e2753
cmd/tailscale/cli: show nicer status output when logged out
...
Also nicer output when running "down".
Fixes #1680
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-09 18:25:22 -07:00
5c5acadb2a
portlist: unexport SameInodes method
...
Signed-off-by: Brad Fitzpatrick <brad@danga.com >
2021-04-09 15:16:36 -07:00
3167e55ddf
ipn/{ipnlocal,localapi}, cmd/tailscale: add logout command
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-09 13:26:35 -07:00
11127666b2
ipn/ipnlocal: fix deadlock from 227f73284
...
Sigh.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-09 13:23:34 -07:00
227f73284f
ipn/ipnlocal: eagerly announce peerapi service(s) on change
...
We were previously only doing it as a side effect of the port poller,
which doesn't run on e.g. iOS.
Updates tailscale/corp#1559
2021-04-09 12:10:52 -07:00
fe23506471
ipn/ipnlocal: avoid unneeded initPeerAPIListener work if no changes
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-09 11:13:46 -07:00
20e7646b8d
ipn/ipnlocal: always set Notify.FilesWaiting, set IncomingFiles non-nil when empty
2021-04-09 07:59:36 -07:00