Brad Fitzpatrick and Brad Fitzpatrick
e42ec4efba
derp/derphttp: use SOCKS/etc proxies for derphttp dials
...
Updates #227
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2020-05-12 14:38:15 -07:00
Brad Fitzpatrick
64f6104e63
portlist: reduce log spam/scariness for portlist in mac sandbox
...
Fixes tailscale/corp#235
2020-05-11 16:13:29 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
8eda667aa1
types/logger: simplify mutex locking in rate-limited logger
...
Updates #365
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2020-05-11 08:44:10 -07:00
Brad Fitzpatrick
8a3e77fc43
ipn, wgengine/filter: remove exported type aliases
2020-05-11 07:19:17 -07:00
Brad Fitzpatrick
529e2cb31a
ipn: add AllowVersionSkew bool to Notify & Message
...
For "tailscale status" on macOS (from separately downloaded
cmd/tailscale binary against App Store IPNExtension).
(This isn't all of it, but I've had this sitting around uncommitted.)
2020-05-09 13:51:48 -07:00
Brad Fitzpatrick
44b07aa708
netcheck: STUN less aggressively to known distant servers
...
If Australia's far away and not going to be used, it's still going to
be far away a minute later. No need to send backup
just-in-case-UDP-gets-lost STUN packets to the known far away
destinations. Those are the ones most likely to trigger retries due to
delay anyway (in random 50-250ms, currently). But we'll keep sending 1
packet to them, just in case our airplane landed.
Likewise, be less aggressive with IPv6. The main point is just to see
whether IPv6 works. No need to send up to 10 packets every round. Max
two is enough (except for the first round). This does mean our STUN
traffic graphs for IPv4-vs-IPv6 will change shape. Oh well. It was a
weird eyeball metric for IPv6 connectivity anyway and we have better
metrics.
We can tweak this policy over time. It's factored out and has tests
now.
2020-05-04 23:37:01 -07:00
Brad Fitzpatrick
828aa6dcb0
stunner: add Stunner.MaxTries option
2020-05-04 23:37:01 -07:00
Brad Fitzpatrick
495796fff1
derp/derpmap: add World.ForeachServer, check STUN server validity earlier
2020-05-04 23:37:01 -07:00
Brad Fitzpatrick
3b546dc29a
portlist: make two error paths have unique messages
...
For debugging #339
2020-05-04 07:45:15 -07:00
Brad Fitzpatrick
fefd7e10dc
types/structs: add structs.Incomparable annotation, use it where applicable
...
Shotizam before and output queries:
sqlite> select sum(size) from bin where func like 'type..%';
129067
=>
120216
2020-05-03 14:05:32 -07:00
Brad Fitzpatrick
e1526b796e
ipn: don't listen on the unspecified address in test
...
To avoid the Mac firewall dialog of (test) death.
See https://github.com/tailscale/go/commit/4521a59f30cb4272f85bc05a38785624cad3e942
which I added to help debug this.
2020-04-28 19:20:02 -07:00
Brad Fitzpatrick
f4c7eb8c44
ipn: revert part of 18017f7630
...
In retrospect I don't trust it and I'm afraid might've caused some Mac flakiness.
I'd like more tests here before I work on this.
Updates #288
2020-04-28 14:04:45 -07:00
Brad Fitzpatrick
18017f7630
ipn, wgengine/magicsock: be more idle when in Stopped state with no peers
...
(Previously as #288 , but with some more.)
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2020-04-28 13:41:29 -07:00
Brad Fitzpatrick
a464439658
control/controlclient: fix build break caused by overzealous gitting
2020-04-27 08:18:35 -07:00
Brad Fitzpatrick
2244cca5ff
net/tlsdial: update package doc to say it's now somewhat useless
2020-04-27 08:17:18 -07:00
Brad Fitzpatrick
58e83d8f66
tempfork/x509: moved to tailscale/go's crypto/x509 instead
2020-04-27 08:14:54 -07:00
Brad Fitzpatrick
172d72a060
Revert "net/tlsdial: add memory-optimized TLS cert verification path for iOS"
...
This reverts commit 6fcbd4c4d4 .
Decided to put it in tailscale/go's crypto/x509 instead.
2020-04-27 08:13:37 -07:00
Brad Fitzpatrick
5d67365cc9
logtail: add PrivateID.IsZero method
2020-04-27 07:33:23 -07:00
Brad Fitzpatrick
9497921f52
logpolicy: also set up TLS dialing (for iOS) for log uploads
...
This was the last of the three places that do TLS from clients (logs,
control, derp). With this, iOS should be able to use the
memory-efficient x509 root CertPool.
2020-04-26 08:31:14 -07:00
Brad Fitzpatrick
c726c1eec9
logtail: add const DefaultHost with default server name
2020-04-26 08:31:07 -07:00
Brad Fitzpatrick
1a0f6fea58
go.mod, go.sum: bump wireguard-go, tidy
2020-04-26 08:06:06 -07:00
Brad Fitzpatrick
95a658e1e3
control/controlclient: also rename HTTPC in the tests
2020-04-26 07:51:54 -07:00
Brad Fitzpatrick
eb6de2bd88
control/controlclient: restore Options.HTTPC as Options.HTTPTestClient
...
I removed the HTTPC field in b6fa5a69be but it was apparently still
used in [oss-skipped] tests.
Restore it, but name it so it's more obvious that it's only for
tests. (It currently is, and I'd like to keep it like that for now.)
2020-04-26 07:48:26 -07:00
Brad Fitzpatrick
6fcbd4c4d4
net/tlsdial: add memory-optimized TLS cert verification path for iOS
...
Behind a build tag for now.
2020-04-25 13:55:51 -07:00
Brad Fitzpatrick
b6fa5a69be
net/tlsdial: add package for TLS dials, and make DERP & controlclient use it
...
This will do the iOS-optimized cert checking in a following change.
2020-04-25 13:24:53 -07:00
Brad Fitzpatrick
d427fc023e
tempfork/x509: remove the bundle tag in our fork
...
We want to be able to omit from only one (not both)
2020-04-25 10:00:10 -07:00
Brad Fitzpatrick
28c632c97b
tempfork/x509: store certs for iOS compressed in binary, parse lazily
2020-04-25 08:54:01 -07:00
Brad Fitzpatrick
bfc1261ab6
crypto/x509: keep smaller root cert representation in memory until needed
...
(from patchset 1, c12c890c64dd6372b3893af1e6f5ab11802c9e81, of
https://go-review.googlesource.com/c/go/+/230025/1 , with merges fixes
due to parent commit's differents from its ps1..ps3)
Instead of parsing the PEM files and then storing the *Certificate
values forever, still parse them to see if they're valid and pick out
some fields, but then only store the decoded pem.Block.Bytes until
that cert is first needed.
Saves about 500K of memory on my (Debian stable) machine after doing a
tls.Dial or calling x509.SystemCertPool.
A more aggressive version of this is still possible: we can not keep
the pem.Block.Bytes in memory either, and re-read them from disk when
necessary. But dealing with files disappearing and even large
multi-cert PEM files changing (with offsets sliding around) made this
conservative version attractive. It doesn't change the
slurp-roots-on-startup semantics. It just does so with less memory
retained.
Change-Id: I3aea333f4749ae3b0026042ec3ff7ac015c72204
2020-04-24 21:27:48 -07:00
Brad Fitzpatrick
f5993f2440
crypto/x509: add support for CertPool to load certs lazily
...
(from patchset 1, 7cdc3c3e7427c9ef69e19224d6036c09c5ea1723, of
https://go-review.googlesource.com/c/go/+/229917/1 )
This will allow building CertPools that consume less memory. (Most
certs are never accessed. Different users/programs access different
ones, but not many.)
This CL only adds the new internal mechanism (and uses it for the
old AddCert) but does not modify any existing root pool behavior.
(That is, the default Unix roots are still all slurped into memory as
of this CL)
Change-Id: Ib3a42e4050627b5e34413c595d8ced839c7bfa14
2020-04-24 21:27:48 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
6b232b5a79
Disable staticcheck for tempfork packages.
2020-04-24 20:46:06 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
0a50ecbad3
control/controlclient: add missing vlog, for consistency with other sites
2020-04-21 15:36:46 -07:00
Brad Fitzpatrick and Dave Anderson
b8594dc937
control/controlclient: fix deadlock in timeout+keepalive race
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2020-04-21 15:22:58 -07:00
Brad Fitzpatrick
268d331cb5
wgengine/magicsock: prune key.Public-keyed on peer removals
...
Fixes #215
2020-04-18 08:48:01 -07:00
Brad Fitzpatrick
00d053e25a
wgengine/magicsock: fix slow memory leak as peer endpoints move around
...
Updates #215
2020-04-18 08:28:10 -07:00
Brad Fitzpatrick
7fc97c5493
wgengine/magicsock: use netaddr more
...
In prep for deleting from the ever-growing maps.
2020-04-17 15:15:42 -07:00
Brad Fitzpatrick
6fb30ff543
wgengine/magicsock: start using inet.af/netaddr a bit
2020-04-17 13:51:52 -07:00
Brad Fitzpatrick
adf74c75ed
wgengine: also diagnose not-yet-rebooted system updates on Arch
2020-04-13 09:22:08 -07:00
Brad Fitzpatrick
3464114b88
logtail: add ParsePublicID that doesn't allocate
2020-04-13 08:54:35 -07:00
Brad Fitzpatrick
780deb9996
go.mod, go.sum: update go4.org/mem to its new home in its own module
...
Cleans up our go.sum, not that it really matters.
2020-04-11 14:00:48 -07:00
Brad Fitzpatrick
614eec174f
derp/derphttp: avoid endless reconnect race on failure
...
Originally from @stablebits (Dmitry Adamushko) in:
https://github.com/tailscale/tailscale/pull/264
2020-04-11 13:37:20 -07:00
Brad Fitzpatrick
347a926ac4
control/controlclient: add opt-in netmap verbose debugging env var
2020-04-11 09:22:33 -07:00
Brad Fitzpatrick
45f2b53aca
all: remove unnecessary trailing newlines in format patterns for consistency
...
And document on logger.Logf that it's unnecessary.
2020-04-11 08:35:34 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
a7e7c7b548
wgengine/magicsock: close derp connections on rebind
...
Fixes #276
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2020-04-10 20:43:00 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
614261d00d
wgengine/magicsock: reset AddrSet states on Rebind
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2020-04-10 20:27:35 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
c0697e1feb
net/interfaces: add IsExpensive and up state to State
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2020-04-10 20:25:12 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
a55c4217db
wgengine: diagnose why CreateTUN might've failed for users
...
Fixes #273
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2020-04-10 20:16:27 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
3a3b64301e
wgengine: quiet some engine reconfig logging, make more consistent
...
Updates #282
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2020-04-10 13:53:01 -07:00
Brad Fitzpatrick
39ae80a2e7
version: bump date
2020-04-10 08:23:36 -07:00
Brad Fitzpatrick
1ec27dbb5b
wgengine: remove an allocation in reconfig
...
Minor.
2020-04-10 08:22:13 -07:00
Brad Fitzpatrick
b24029717b
ipn: outdent some code in if that's statically always true
2020-04-10 07:52:30 -07:00
Brad Fitzpatrick
fe149979e6
logpolicy: include Go version in version log
2020-04-09 14:46:19 -07:00
Brad Fitzpatrick
73249f8032
netcheck: aggregate spammy logging onto one concise line
2020-04-09 13:14:38 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
922d9546bf
wgengine: don't allocate so much in userspaceEngine.getStatus
...
It was one of the top garbage producers on my phone.
It's slated to be deleted and replaced anyway, but this helps in the
meantime.
The go.sum changes look scary, but the new dep only adds 240 bytes to
the binary. The go.sum noise is just cmd/go being aggressive in
including a lot of stuff (which is being fixed in Go 1.15, for what I
understand). And I ran a go mod tidy, which added some too. (I had to
write a custom wrapper around go mod tidy because this mod tidy
normally breaks on tailscale.io/control being missing but referenced
in tests)
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2020-04-09 12:49:17 -07:00
Brad Fitzpatrick
0f64d7f9cc
wgengine: remove a tiny allocation
...
Drop in the bucket compared to the larger issues, but noticed it
when looking at pprof.
2020-04-07 22:23:40 -07:00
Brad Fitzpatrick
ec0cd60fc3
portlist: fail earlier, more nicely on iOS
2020-04-06 20:11:24 -07:00
Brad Fitzpatrick
71d6738333
tstime: change an Errorf+return to Fatalf in subtest
...
Forgot to git add this during review. Fail.
2020-04-06 08:20:15 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
febdac0499
tstime: write Parse3339 parse that doesn't use time.Parse
...
It doesn't allocate and it's half the time of time.Parse (which
allocates), and 2/3rds the time of time.ParseInLocation (which
doesn't).
Go with a UTC time:
BenchmarkGoParse3339/Z-8 2200995 534 ns/op 0 B/op 0 allocs/op
BenchmarkGoParse3339/Z-8 2254816 554 ns/op 0 B/op 0 allocs/op
BenchmarkGoParse3339/Z-8 2159504 522 ns/op 0 B/op 0 allocs/op
Go allocates with a "-08:00" suffix instead of ending in "Z":
BenchmarkGoParse3339/TZ-8 1276491 884 ns/op 144 B/op 3 allocs/op
BenchmarkGoParse3339/TZ-8 1355858 942 ns/op 144 B/op 3 allocs/op
BenchmarkGoParse3339/TZ-8 1385484 911 ns/op 144 B/op 3 allocs/op
Go doesn't allocate if you use time.ParseInLocation, but then you need
to parse the string to find the location anyway, so might as well go
all the way (below).
BenchmarkGoParse3339InLocation-8 1912254 597 ns/op 0 B/op 0 allocs/op
BenchmarkGoParse3339InLocation-8 1980043 612 ns/op 0 B/op 0 allocs/op
BenchmarkGoParse3339InLocation-8 1891366 612 ns/op 0 B/op 0 allocs/op
Parsing RFC3339 ourselves, UTC:
BenchmarkParse3339/Z-8 3889220 307 ns/op 0 B/op 0 allocs/op
BenchmarkParse3339/Z-8 3718500 309 ns/op 0 B/op 0 allocs/op
BenchmarkParse3339/Z-8 3621231 303 ns/op 0 B/op 0 allocs/op
Parsing RFC3339 ourselves, with timezone (w/ *time.Location fetched
from sync.Map)
BenchmarkParse3339/TZ-8 3019612 418 ns/op 0 B/op 0 allocs/op
BenchmarkParse3339/TZ-8 2921618 401 ns/op 0 B/op 0 allocs/op
BenchmarkParse3339/TZ-8 3031671 408 ns/op 0 B/op 0 allocs/op
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2020-04-06 08:19:17 -07:00
Brad Fitzpatrick
02948d2c86
Dockerfile: add some usage docs, bump to Go 1.14
2020-04-06 07:57:47 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
d503dee6f1
tstime: add new package for time utilities, starting with Parse3339
...
Go's time.Parse always allocates a FixedZone for time strings not in
UTC (ending in "Z"). This avoids that allocation, at the cost of
adding a cache.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2020-04-05 20:05:49 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
996bf9cae7
logtail: don't send a User-Agent
...
Just useless bytes on the wire. Especially with HTTP/1.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2020-04-05 13:16:56 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
7bf436ba30
tsweb: add some Benchmarks
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2020-04-05 13:16:36 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
64334143a1
tsweb: rename Handler to ReturnHandler
...
The name's been bugging me for a long time.
I liked neither the overlap between tsweb.Handler and http.Handler,
nor the name "ServeHTTPErr" which sounds like it's an error being
returned, like it's an error handler and not sometimes a happy path.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2020-04-05 13:16:36 -07:00
Brad Fitzpatrick
bdc55d7091
logtail: add ParsePrivateID
2020-04-05 09:15:15 -07:00
Brad Fitzpatrick
50aeb5b9ad
wgengine: unexport some windows funcs
2020-04-05 08:23:53 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
e71a7c7a2c
logtail: read to EOF on chunked response
...
We'll be fixing the server so this won't trigger in practice,
but it demos the connection reuse problem.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2020-04-04 16:12:15 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
fcb6a34f4b
logtail: reduce allocations encoding text
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2020-04-04 16:12:02 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
2863e49db9
tsweb: don't flush, treat no-op Handler as 200, like Go
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2020-04-04 16:11:53 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
3b4b17d239
logpolicy: log on dials, add knob to force HTTP/1 for log uploads
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2020-04-04 14:46:41 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
8ca796d144
ipn, ipn/policy: filter portlist to a short list of "interesting" ports
...
Adds new package ipn/policy to be shared between node client & control server.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2020-04-01 10:03:44 -07:00
Brad Fitzpatrick
c6aa5b639f
tailcfg: clarify Hostinfo.OS doc
2020-04-01 09:27:35 -07:00
Brad Fitzpatrick
4524dcf51e
version: move runtime.OS to tailscale OS mapping func to version
...
So other code can use this without duplicating the policy.
2020-04-01 08:50:56 -07:00
Brad Fitzpatrick
1df3c8d02a
derp, netcheck: make tests listen on localhost only
...
avoid macOS firewall pop-ups
2020-03-30 11:29:08 -07:00
Brad Fitzpatrick
5362e952e1
safesocket: gofmt
...
Was developed on a random machine without my normal environment.
2020-03-30 11:23:18 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
a4ef345737
cmd/tailscale: add status subcommand
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2020-03-27 20:34:36 -07:00
Brad Fitzpatrick
810c1e9704
types/key: make Public implement TextMarshaler, TextUnmarshaler
...
So it can be a map key with encoding/json
2020-03-27 13:03:35 -07:00
Brad Fitzpatrick
f51f18b42b
ipn: move FakeBackend to a test-only file
2020-03-27 13:02:33 -07:00
Brad Fitzpatrick
8ebee05fbd
cmd/tailscale: remove unnecessary logpolicy/logtail logging
2020-03-27 08:27:36 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
8b3f6be008
control/controlclient: flip IPv6 to be on by default
...
The DEBUG_INCLUDE_IPV6 environment variable is now an opt-out.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2020-03-26 22:02:56 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
322499473e
cmd/tailscaled, wgengine, ipn: add /debug/ipn handler with world state
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2020-03-26 14:26:24 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
7fb8d873ac
logpolicy: don't log timestamp when running under systemd
...
It'll do it anyway.
Makes journalctl -fu cleaner.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2020-03-25 21:03:06 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
2d48f92a82
wgengine/magicsock: re-stun every [20,27] sec, not 28
...
28 is cutting it close, and we think jitter will help some spikes
we're seeing.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2020-03-25 14:25:33 -07:00
Brad Fitzpatrick
2c7ddd0828
go.mod, go.sum: tidy
2020-03-25 14:05:33 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
577f321c38
wgengine/magicsock: revise derp fallback logic
...
Revision to earlier 6284454ae5
Don't be sticky if we have no peers.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2020-03-25 13:09:18 -07:00
Brad Fitzpatrick
2e420ad8b6
wgengine, wgengine/filter: minor doc, style, performance, locking changes
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2020-03-25 08:41:01 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
6284454ae5
wgengine/magicsock: if UDP blocked, pick DERP where most peers are
...
Updates #207
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2020-03-25 08:00:44 -07:00
Brad Fitzpatrick
d321190578
wgengine/magicsock: stringify [IPv6]:port normally in AddrSet.String
2020-03-24 13:40:43 -07:00
Brad Fitzpatrick
3c3ea8bc8a
wgengine/magicsock: finish IPv6 transport support
...
DEBUG_INCLUDE_IPV6=1 is still required, but works now.
Updates #18 (fixes it, once env var gate is removed)
2020-03-24 10:56:22 -07:00
Brad Fitzpatrick
82ed7e527e
wgengine/magicsock: remove log allocation
...
This was the whole point but I goofed at the last line.
2020-03-24 08:14:47 -07:00
Brad Fitzpatrick
8454bbbda5
wgengine/magicsock: more logging improvements
...
* remove endpoint discovery noise when results unchanged
* consistently spell derp nodes as "derp-N"
* replace "127.3.3.40:" with "derp-" in CreateEndpoint log output
* stop early DERP setup before SetPrivateKey is called;
it just generates log nosie
* fix stringification of peer ShortStrings (it had an old %x on it,
rendering it garbage)
* describe why derp routes are changing, with one of:
shared home, their home, our home, alt
2020-03-24 08:12:55 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
64aff0db7b
control/controlclient: add TODO to delete the UAPI method
2020-03-24 07:25:14 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
7740cbd8d9
ipn: call SetNetInfoCallback later, in Start
...
It was being called back into ultimately from magicsock before there
was a control client.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2020-03-23 22:19:40 -07:00
Brad Fitzpatrick
680311b3df
wgengine/magicsock: fix few remaining logs without package prefix
2020-03-23 22:11:49 -07:00
Brad Fitzpatrick
c473927558
wgengine/magicsock: clean up, add, improve DERP logs
2020-03-23 21:57:58 -07:00
Brad Fitzpatrick
e749377a56
derp/derphttp: remove a redundant log message
2020-03-23 21:23:36 -07:00
Brad Fitzpatrick
1d3f45f9be
derp/derphttp: ignore PeerGoneMessage in test
2020-03-23 14:13:49 -07:00
Brad Fitzpatrick
ea9310403d
wgengine/magicsock: re-STUN on DERP connection death
...
Fixes #201
2020-03-23 13:19:33 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
1ab5b31c4b
derp, magicsock: send new "peer gone" frames when previous sender disconnects
...
Updates #150 (not yet enabled by default in magicsock)
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2020-03-22 21:00:47 -07:00
Brad Fitzpatrick
b6f77cc48d
wgengine/magicsock: return early, outdent in derpWriteChanOfAddr
2020-03-22 14:08:59 -07:00
Brad Fitzpatrick
8c4cef60f8
derp: wait for send goroutine to finish before returning from run
...
I saw a test flake due to the sender goroutine logging (ultimately to
t.Logf) after the server was closed.
This makes sure the all goroutines are cleaned up before Server.Close
returns.
2020-03-22 13:10:07 -07:00
Brad Fitzpatrick
521ad7b0fc
derp: only flush writes to clients when we're out of things to write
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2020-03-22 08:01:25 -07:00