tailscale/net/dnsfallback/update-dns-fallbacks.go
James Tucker 45668afcc7
net/dnsfallback: update DNS fallback derpmap
Elide the geographic locations that were added recently, as they're not
useful in the context of this use case. Update based on the current
default DERP map.

Updates tailscale/corp#21949

Signed-off-by: James Tucker <james@tailscale.com>
2024-07-26 12:29:19 -07:00

48 lines
959 B
Go

// Copyright (c) Tailscale Inc & AUTHORS
// SPDX-License-Identifier: BSD-3-Clause
//go:build ignore
package main
import (
"encoding/json"
"fmt"
"log"
"net/http"
"os"
"tailscale.com/tailcfg"
)
func main() {
res, err := http.Get("https://login.tailscale.com/derpmap/default")
if err != nil {
log.Fatal(err)
}
if res.StatusCode != 200 {
res.Write(os.Stderr)
os.Exit(1)
}
dm := new(tailcfg.DERPMap)
if err := json.NewDecoder(res.Body).Decode(dm); err != nil {
log.Fatal(err)
}
for rid, r := range dm.Regions {
// Names and locations misleading to check into git,
// as this is a static snapshot and doesn't reflect
// the live DERP map.
r.RegionCode = fmt.Sprintf("r%d", rid)
r.RegionName = r.RegionCode
r.Latitude = 0
r.Longitude = 0
}
out, err := json.MarshalIndent(dm, "", "\t")
if err != nil {
log.Fatal(err)
}
if err := os.WriteFile("dns-fallback-servers.json", out, 0644); err != nil {
log.Fatal(err)
}
}