|
|
|
|
@ -35,6 +35,7 @@ import ( |
|
|
|
|
var ( |
|
|
|
|
derpMapURL = flag.String("derp-map", "https://login.tailscale.com/derpmap/default", "URL to DERP map (https:// or file://)") |
|
|
|
|
listen = flag.String("listen", ":8030", "HTTP listen address") |
|
|
|
|
probeOnce = flag.Bool("once", false, "probe once and print results, then exit; ignores the listen flag") |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
// certReissueAfter is the time after which we expect all certs to be
|
|
|
|
|
@ -63,6 +64,20 @@ func main() { |
|
|
|
|
defer cancel() |
|
|
|
|
_, _ = getDERPMap(ctx) |
|
|
|
|
|
|
|
|
|
if *probeOnce { |
|
|
|
|
log.Printf("Starting probe (may take up to 1m)") |
|
|
|
|
probe() |
|
|
|
|
log.Printf("Probe results:") |
|
|
|
|
st := getOverallStatus() |
|
|
|
|
for _, s := range st.good { |
|
|
|
|
log.Printf("good: %s", s) |
|
|
|
|
} |
|
|
|
|
for _, s := range st.bad { |
|
|
|
|
log.Printf("bad: %s", s) |
|
|
|
|
} |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
go probeLoop() |
|
|
|
|
go slackLoop() |
|
|
|
|
log.Fatal(http.ListenAndServe(*listen, http.HandlerFunc(serve))) |
|
|
|
|
|