cmd/tailscale: fail if tailscaled closes the IPN connection

I was going to write a test for this using the tstest/integration test
stuff, but the testcontrol implementation isn't quite there yet (it
always registers nodes and doesn't provide AuthURLs). So, manually
tested for now.

Fixes #1843

Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
Brad Fitzpatrick
2021-05-04 07:49:29 -07:00
parent 68fb51b833
commit 962bf74875
3 changed files with 18 additions and 7 deletions
+4 -1
View File
@@ -80,7 +80,8 @@ func runPing(ctx context.Context, args []string) error {
prc <- pr
}
})
go pump(ctx, bc, c)
pumpErr := make(chan error, 1)
go func() { pumpErr <- pump(ctx, bc, c) }()
hostOrIP := args[0]
ip, err := tailscaleIPFromArg(ctx, hostOrIP)
@@ -101,6 +102,8 @@ func runPing(ctx context.Context, args []string) error {
select {
case <-timer.C:
fmt.Printf("timeout waiting for ping reply\n")
case err := <-pumpErr:
return err
case pr := <-prc:
timer.Stop()
if pr.Err != "" {