mirror of https://github.com/tailscale/tailscale/
tsnet: add HTTP client method to tsnet.Server (#6669)
This allows tsnet services to make requests to other services in the tailnet with the tsnet service identity instead of the identity of the host machine. This also enables tsnet services to make requests to other tailnet services without having to have the host machine join the tailnet. Signed-off-by: Xe Iaso <xe@tailscale.com> Signed-off-by: Xe Iaso <xe@tailscale.com>pull/6682/head
parent
2d271f3bd1
commit
d1a5757639
@ -0,0 +1,45 @@
|
|||||||
|
// Copyright (c) 2021 Tailscale Inc & AUTHORS All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
// The tshello server demonstrates how to use Tailscale as a library.
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"flag"
|
||||||
|
"fmt"
|
||||||
|
"log"
|
||||||
|
"os"
|
||||||
|
"path/filepath"
|
||||||
|
|
||||||
|
"tailscale.com/tsnet"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
flag.Usage = func() {
|
||||||
|
fmt.Fprintf(os.Stderr, "Usage: %s <url in tailnet>\n", filepath.Base(os.Args[0]))
|
||||||
|
os.Exit(2)
|
||||||
|
}
|
||||||
|
flag.Parse()
|
||||||
|
|
||||||
|
if flag.NArg() != 1 {
|
||||||
|
flag.Usage()
|
||||||
|
}
|
||||||
|
tailnetURL := flag.Arg(0)
|
||||||
|
|
||||||
|
s := new(tsnet.Server)
|
||||||
|
defer s.Close()
|
||||||
|
|
||||||
|
if err := s.Start(); err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
cli := s.HTTPClient()
|
||||||
|
|
||||||
|
resp, err := cli.Get(tailnetURL)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
resp.Write(os.Stdout)
|
||||||
|
}
|
Loading…
Reference in New Issue