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 d05e6dc09e util/syspolicy/policyclient: add policyclient.Client interface, start plumbing
This is step 2 of ~4, breaking up #14720 into reviewable chunks, with
the aim to make syspolicy be a build-time configurable feature.

Step 1 was #16984.

In this second step, the util/syspolicy/policyclient package is added
with the policyclient.Client interface.  This is the interface that's
always present (regardless of build tags), and is what code around the
tree uses to ask syspolicy/MDM questions.

There are two implementations of policyclient.Client for now:

1) NoPolicyClient, which only returns default values.
2) the unexported, temporary 'globalSyspolicy', which is implemented
   in terms of the global functions we wish to later eliminate.

This then starts to plumb around the policyclient.Client to most callers.

Future changes will plumb it more. When the last of the global func
callers are gone, then we can unexport the global functions and make a
proper policyclient.Client type and constructor in the syspolicy
package, removing the globalSyspolicy impl out of tsd.

The final change will sprinkle build tags in a few more places and
lock it in with dependency tests to make sure the dependencies don't
later creep back in.

Updates #16998
Updates #12614

Change-Id: Ib2c93d15c15c1f2b981464099177cd492d50391c
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
3 months ago
..
testdata ipn/ipnlocal: fix the path for writing cert files (#7203) 3 years ago
autoupdate.go clientupdate: return true for CanAutoUpdate for macsys (#12746) 1 year ago
autoupdate_disabled.go ipn/ipnlocal: periodically run auto-updates when "offline" (#12118) 2 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
bus.go ipn/local: add the suggested exit node to the ipn bus (#16748) 3 months ago
bus_test.go ipn/ipnlocal: add IPN Bus NotifyRateLimit watch bit NotifyRateLimit 1 year ago
c2n.go util/syspolicy/policyclient: add policyclient.Client interface, start plumbing 3 months 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: include previous cert in new ACME orders (#15595) 8 months ago
cert_js.go ipn/ipnlocal: add c2n method to check on TLS cert fetch status 2 years ago
cert_test.go ipn/ipnlocal, envknob: make it possible to configure the cert client to act in read-only mode (#15250) 9 months ago
dnsconfig_test.go ipn,net,tsnet,wgengine: make an eventbus mandatory where it is used (#16594) 4 months ago
drive.go drive,ipn/ipnlocal: calculate peer taildrive URLs on-demand 5 months ago
expiry.go all: add Node.HomeDERP int, phase out "127.3.3.40:$region" hack [capver 111] 11 months ago
expiry_test.go cmd/viewer,types/views,various: avoid allocations in pointer field getters whenever possible 11 months ago
extension_host.go ipn/ipnlocal: make GetExt work earlier, before extension init 7 months ago
extension_host_test.go ipn/ipnlocal: fix missing defer in testExtension.Shutdown 5 months ago
local.go util/syspolicy/policyclient: add policyclient.Client interface, start plumbing 3 months ago
local_test.go util/syspolicy/*: move syspolicy keys to new const leaf "pkey" package 3 months ago
loglines_test.go net/netmon: publish events to event bus 8 months ago
network-lock.go ipn/ipnlocal: make pricing restriction message for Tailnet Lock clearer 6 months ago
network-lock_test.go ipn,net,tsnet,wgengine: make an eventbus mandatory where it is used (#16594) 4 months ago
node_backend.go types/dnstype, ipn/ipnlocal: allow other DNS resolvers with exit nodes 4 months ago
node_backend_test.go ipn/ipnlocal,wgengine/magicsock: use eventbus for node & filter updates (#16271) 6 months ago
peerapi.go ipn/ipnlocal: add some verbose logging to taildrive peerapi handler 6 months ago
peerapi_h2c.go all: update copyright and license headers 3 years ago
peerapi_macios_ext.go net/netmon, add: add netmon.State type alias of interfaces.State 2 years ago
peerapi_test.go ipn,net,tsnet,wgengine: make an eventbus mandatory where it is used (#16594) 4 months ago
prefs_metrics.go health, ipn/ipnlocal: add metrics for various client events (#15828) 7 months ago
profiles.go ipn/ipnlocal: replace the LockedOnEntry pattern with conventional lock/unlock discipline (#16925) 3 months ago
profiles_notwindows.go ipn/ipnlocal: refactor and cleanup profileManager 1 year ago
profiles_test.go feature,ipn/ipnlocal: add profileManager.StateChangeHook 7 months ago
profiles_windows.go ipn/ipnlocal: refactor and cleanup profileManager 1 year ago
serve.go cmd/tailscale/cli: revert key for web config for services to FQDN (#16627) 4 months ago
serve_test.go ipn/ipnlocal,wgengine{/magicsock}: replace SetNetworkMap with eventbus (#16299) 6 months ago
ssh.go all: remove non-applicable "linux" deps on Android 7 months ago
ssh_stub.go all: remove non-applicable "linux" deps on Android 7 months ago
ssh_test.go ipn/ipnlocal: plumb health.Tracker into profileManager constructor 2 years ago
state_test.go cmd/tailscale/cli,ipn/ipnlocal: restrict logout when AlwaysOn mode is enabled 5 months ago
web_client.go ipn/ipnlocal: add localNodeContext with netmap-related fields and methods 7 months ago
web_client_stub.go all: use new LocalAPI client package location 10 months ago