You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tailscale/ipn/ipnlocal
Brad Fitzpatrick aa084a29c6 ipn/ipnlocal: name the unlockOnce type, plumb more, add Unlock method
This names the func() that Once-unlocked LocalBackend.mu. It does so
both for docs and because it can then have a method: Unlock, for the
few points that need to explicitly unlock early (the cause of all this
mess). This makes those ugly points easy to find, and also can then
make them stricter, panicking if the mutex is already unlocked. So a
normal call to the func just once-releases the mutex, returning false
if it's already done, but the Unlock method is the strict one.

Then this uses it more, so most the b.mu.Unlock calls remaining are
simple cases and usually defers.

Updates #11649

Change-Id: Ia070db66c54a55e59d2f76fdc26316abf0dd4627
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2 years ago
..
testdata ipn/ipnlocal: fix the path for writing cert files (#7203) 3 years ago
breaktcp_darwin.go cmd/tailscale: add debug commands to break connections 2 years ago
breaktcp_linux.go cmd/tailscale: add debug commands to break connections 2 years ago
c2n.go ipn/ipnlocal: add c2n /debug/pprof/allocs endpoint 2 years ago
c2n_pprof.go ipn/ipnlocal: add c2n /debug/pprof/allocs endpoint 2 years ago
c2n_test.go util/cmpx: delete now that we're using Go 1.22 2 years ago
cert.go ipn/ipnlocal: remove ancient transition mechanism for https certs 2 years ago
cert_js.go ipn/ipnlocal: add c2n method to check on TLS cert fetch status 2 years ago
cert_test.go all: use Go 1.21 slices, maps instead of x/exp/{slices,maps} 2 years ago
dnsconfig_test.go util/cmpx: delete now that we're using Go 1.22 2 years ago
drive.go drive: move normalizeShareName into pkg drive and make func public (#11638) 2 years ago
expiry.go ssh/tailssh: use control server time instead of local time 2 years ago
expiry_test.go types/netmap, all: make NetworkMap.SelfNode a tailcfg.NodeView 2 years ago
local.go ipn/ipnlocal: name the unlockOnce type, plumb more, add Unlock method 2 years ago
local_test.go drive: move normalizeShareName into pkg drive and make func public (#11638) 2 years ago
loglines_test.go tsd: add package with System type to unify subsystem init, discovery 3 years ago
network-lock.go all: remove LenIter, use Go 1.22 range-over-int instead 2 years ago
network-lock_test.go ipn/ipnlocal,cmd/tailscale: persist tailnet name in user profile 2 years ago
peerapi.go tailscale: switch tailfs to drive syntax for api and logs (#11625) 2 years ago
peerapi_h2c.go all: update copyright and license headers 3 years ago
peerapi_macios_ext.go all: update copyright and license headers 3 years ago
peerapi_test.go all: deprecate Node.Capabilities (more), remove PeerChange.Capabilities [capver 89] 2 years ago
profiles.go util/cmpx: remove code that's in the stdlib now 2 years ago
profiles_notwindows.go ipn/ipnlocal: fix profile duplication 2 years ago
profiles_test.go ipn/ipnlocal,cmd/tailscale: persist tailnet name in user profile 2 years ago
profiles_windows.go ipn/ipnlocal: better enforce system policies 2 years ago
serve.go tailscale: update tailfs functions and vars to use drive naming (#11597) 2 years ago
serve_test.go ipn/ipnlocal: q-encode (RFC 2047) Tailscale serve header values 2 years ago
ssh.go ipnlocal: log failure to get ssh host keys 2 years ago
ssh_stub.go ipnlocal: log failure to get ssh host keys 2 years ago
ssh_test.go ipn/ipnlocal: drop not required StateKey parameter 3 years ago
state_test.go ipn/ipnlocal: validate domain of PopBrowserURL on default control URL (#11394) 2 years ago
taildrop.go ipn/localapi: add support for multipart POST to file-put 2 years ago
web_client.go all: remove LenIter, use Go 1.22 range-over-int instead 2 years ago
web_client_stub.go ipn/ipnlocal: add mutex to webClient struct 2 years ago