tsnet/examples/tshello: update example for LocalClient method (#5966)

Before this would silently fail if this program was running on a machine
that was not already running Tailscale. This patch changes the WhoIs
call to use the tsnet.Server LocalClient instead of the global tailscale
LocalClient.

Signed-off-by: Xe <xe@tailscale.com>

Change-Id: Ieb830fbce81292acc4c3b4d1b675aa10766a18dc
Signed-off-by: Xe <xe@tailscale.com>
(cherry picked from commit 86c5bddce2)
net-audit-log/1.32
Xe Iaso 2022-10-17 13:43:46 -04:00 committed by Brad Fitzpatrick
parent d982963e0b
commit 613d624bea
1 changed files with 8 additions and 1 deletions

View File

@ -29,13 +29,20 @@ func main() {
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }
defer ln.Close()
lc, err := s.LocalClient()
if err != nil {
log.Fatal(err)
}
if *addr == ":443" { if *addr == ":443" {
ln = tls.NewListener(ln, &tls.Config{ ln = tls.NewListener(ln, &tls.Config{
GetCertificate: tailscale.GetCertificate, GetCertificate: tailscale.GetCertificate,
}) })
} }
log.Fatal(http.Serve(ln, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { log.Fatal(http.Serve(ln, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
who, err := tailscale.WhoIs(r.Context(), r.RemoteAddr) who, err := lc.WhoIs(r.Context(), r.RemoteAddr)
if err != nil { if err != nil {
http.Error(w, err.Error(), 500) http.Error(w, err.Error(), 500)
return return