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
Brad Fitzpatrick 3f5c560fd4 ipn/ipnlocal: drop h2c package, use net/http's support
In Dec 2021 in d3d503d997 I had grand plans to make exit node DNS
cheaper by using HTTP/2 over PeerAPI, at least on some platforms. I
only did server-side support though and never made it to the client.

In the ~4 years since, some things have happened:

* Go 1.24 got support for http.Protocols (https://pkg.go.dev/net/http#Protocols)
  and doing UnencryptedHTTP2 ("HTTP2 with prior knowledge")
* The old h2c upgrade mechanism was deprecated; see https://github.com/golang/go/issues/63565
  and https://github.com/golang/go/issues/67816
* Go plans to deprecate x/net/http2 and move everything to the standard library.

So this drops our use of the x/net/http2/h2c package and instead
enables h2c (on all platforms now) using the standard library.

This does mean we lose the deprecated h2c Upgrade support, but that's
fine.

If/when we do the h2c client support for ExitDNS, we'll have to probe
the peer to see whether it supports it. Or have it reply with a header
saying that future requests can us h2c. (It's tempting to use capver,
but maybe people will disable that support anyway, so we should
discover it at runtime instead.)

Also do the same in the sessionrecording package.

Updates #17305

Change-Id: If323f5ef32486effb18ed836888aa05c0efb701e
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2 months ago
..
auditlog ipn/ipnext: remove some interface indirection to add hooks 7 months ago
conffile ipn/conffile: don't depend on hujson on iOS/Android 1 year ago
desktop util/syspolicy: finish plumbing policyclient, add feature/syspolicy, move global impl 3 months ago
ipnauth ipn/ipnauth: don't crash on OpenBSD trying to log username of unknown peer 2 months ago
ipnext feature/portlist: pull portlist service porting into extension, use eventbus 2 months ago
ipnlocal ipn/ipnlocal: drop h2c package, use net/http's support 2 months ago
ipnserver feature/sdnotify: move util/systemd to a modular feature 2 months ago
ipnstate cmd/tailscale, ipn/ipnstate, wgengine/magicsock: update ping output for peer relay (#16515) 5 months ago
lapitest various: allow tailscaled shutdown via LocalAPI 2 months ago
localapi feature/featuretags: add option to turn off DNS 2 months ago
policy ipn,tailconfig: clean up unreleased and removed app connector service 2 years ago
store ipn/store, feature/condregister: move AWS + Kube store registration to condregister 2 months ago
backend.go ipn: fix the string representation of an empty ipn.Notify 3 months ago
backend_test.go ipn: fix the string representation of an empty ipn.Notify 3 months ago
conf.go ipn: ensure that conffile is source of truth for advertised services. (#15361) 9 months ago
doc.go ipn: generate LoginProfileView and use it instead of *LoginProfile where appropriate 10 months ago
ipn_clone.go cmd/tailscale/cli,ipn,ipn/ipnlocal: add AutoExitNode preference for automatic exit node selection 5 months ago
ipn_test.go all: do not depend on the testing package 2 years ago
ipn_view.go util/linuxfw, feature/buildfeatures: add ts_omit_iptables to make IPTables optional 2 months ago
prefs.go util/linuxfw, feature/buildfeatures: add ts_omit_iptables to make IPTables optional 2 months ago
prefs_test.go ipn: warn about self as the exit node if backend is running (#17018) 3 months ago
serve.go cmd/tailscale/cli: revert key for web config for services to FQDN (#16627) 4 months ago
serve_test.go cmd/tailscale/cli: Add service flag to serve command (#16191) 5 months ago
store.go tailcfg: report StateEncrypted in Hostinfo (#16434) 5 months ago
store_test.go ipn/store: automatically migrate between plaintext and encrypted state (#16318) 5 months ago