cmd/hello: use safesocket client to connect

This commit is contained in:
Brad Fitzpatrick 2021-01-29 13:49:17 -08:00
parent 006a224f50
commit 60e189f699
2 changed files with 9 additions and 6 deletions

View File

@ -18,6 +18,7 @@
"net/url"
"strings"
"tailscale.com/safesocket"
"tailscale.com/tailcfg"
)
@ -102,15 +103,12 @@ func root(w http.ResponseWriter, r *http.Request) {
})
}
// tsSockClient does HTTP requests to the local tailscaled by dialing
// its Unix socket or whatever type of connection is required on the local
// system.
// TODO(bradfitz): do the macOS dial-the-sandbox dance like cmd/tailscale does.
// tsSockClient does HTTP requests to the local Tailscale daemon.
// The hostname in the HTTP request is ignored.
var tsSockClient = &http.Client{
Transport: &http.Transport{
DialContext: func(ctx context.Context, network, addr string) (net.Conn, error) {
var d net.Dialer
return d.DialContext(ctx, "unix", "/var/run/tailscale/tailscaled.sock")
return safesocket.ConnectDefault()
},
},
}

View File

@ -27,6 +27,11 @@ func ConnCloseWrite(c net.Conn) error {
return c.(closeable).CloseWrite()
}
// ConnectDefault connects to the local Tailscale daemon.
func ConnectDefault() (net.Conn, error) {
return Connect("/var/run/tailscale/tailscaled.sock", 41112)
}
// Connect connects to either path (on Unix) or the provided localhost port (on Windows).
func Connect(path string, port uint16) (net.Conn, error) {
return connect(path, port)