derp/derpserver: split off derp.Server out of derp into its own package
This exports a number of things from the derp (generic + client) package to be used by the new derpserver package, as now used by cmd/derper. And then enough other misc changes to lock in that cmd/tailscaled can be configured to not bring in tailscale.com/client/local. (The webclient in particular, even when disabled, was bringing it in, so that's now fixed) Fixes #17257 Change-Id: I88b6c7958643fb54f386dd900bddf73d2d4d96d5 Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
committed by
Brad Fitzpatrick
parent
df747f1c1b
commit
21dc5f4e21
@@ -34,8 +34,7 @@ import (
|
||||
|
||||
"go4.org/mem"
|
||||
"tailscale.com/client/local"
|
||||
"tailscale.com/derp"
|
||||
"tailscale.com/derp/derphttp"
|
||||
"tailscale.com/derp/derpserver"
|
||||
"tailscale.com/ipn"
|
||||
"tailscale.com/ipn/ipnlocal"
|
||||
"tailscale.com/ipn/ipnstate"
|
||||
@@ -297,14 +296,14 @@ func exe() string {
|
||||
func RunDERPAndSTUN(t testing.TB, logf logger.Logf, ipAddress string) (derpMap *tailcfg.DERPMap) {
|
||||
t.Helper()
|
||||
|
||||
d := derp.NewServer(key.NewNode(), logf)
|
||||
d := derpserver.NewServer(key.NewNode(), logf)
|
||||
|
||||
ln, err := net.Listen("tcp", net.JoinHostPort(ipAddress, "0"))
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
httpsrv := httptest.NewUnstartedServer(derphttp.Handler(d))
|
||||
httpsrv := httptest.NewUnstartedServer(derpserver.Handler(d))
|
||||
httpsrv.Listener.Close()
|
||||
httpsrv.Listener = ln
|
||||
httpsrv.Config.ErrorLog = logger.StdLogger(logf)
|
||||
|
||||
@@ -51,8 +51,7 @@ import (
|
||||
"gvisor.dev/gvisor/pkg/tcpip/transport/tcp"
|
||||
"gvisor.dev/gvisor/pkg/waiter"
|
||||
"tailscale.com/client/local"
|
||||
"tailscale.com/derp"
|
||||
"tailscale.com/derp/derphttp"
|
||||
"tailscale.com/derp/derpserver"
|
||||
"tailscale.com/net/netutil"
|
||||
"tailscale.com/net/netx"
|
||||
"tailscale.com/net/stun"
|
||||
@@ -601,7 +600,7 @@ func (n *node) String() string {
|
||||
}
|
||||
|
||||
type derpServer struct {
|
||||
srv *derp.Server
|
||||
srv *derpserver.Server
|
||||
handler http.Handler
|
||||
tlsConfig *tls.Config
|
||||
}
|
||||
@@ -612,12 +611,12 @@ func newDERPServer() *derpServer {
|
||||
ts.Close()
|
||||
|
||||
ds := &derpServer{
|
||||
srv: derp.NewServer(key.NewNode(), logger.Discard),
|
||||
srv: derpserver.NewServer(key.NewNode(), logger.Discard),
|
||||
tlsConfig: ts.TLS, // self-signed; test client configure to not check
|
||||
}
|
||||
var mux http.ServeMux
|
||||
mux.Handle("/derp", derphttp.Handler(ds.srv))
|
||||
mux.HandleFunc("/generate_204", derphttp.ServeNoContent)
|
||||
mux.Handle("/derp", derpserver.Handler(ds.srv))
|
||||
mux.HandleFunc("/generate_204", derpserver.ServeNoContent)
|
||||
|
||||
ds.handler = &mux
|
||||
return ds
|
||||
|
||||
Reference in New Issue
Block a user