|
|
@ -26,6 +26,7 @@ import (
|
|
|
|
"strings"
|
|
|
|
"strings"
|
|
|
|
|
|
|
|
|
|
|
|
"github.com/peterbourgon/ff/v3/ffcli"
|
|
|
|
"github.com/peterbourgon/ff/v3/ffcli"
|
|
|
|
|
|
|
|
"tailscale.com/envknob"
|
|
|
|
"tailscale.com/ipn"
|
|
|
|
"tailscale.com/ipn"
|
|
|
|
"tailscale.com/ipn/ipnstate"
|
|
|
|
"tailscale.com/ipn/ipnstate"
|
|
|
|
"tailscale.com/tailcfg"
|
|
|
|
"tailscale.com/tailcfg"
|
|
|
@ -59,6 +60,7 @@ type tmplData struct {
|
|
|
|
AdvertiseRoutes string
|
|
|
|
AdvertiseRoutes string
|
|
|
|
LicensesURL string
|
|
|
|
LicensesURL string
|
|
|
|
TUNMode bool
|
|
|
|
TUNMode bool
|
|
|
|
|
|
|
|
IsSynology bool
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
var webCmd = &ffcli.Command{
|
|
|
|
var webCmd = &ffcli.Command{
|
|
|
@ -410,6 +412,7 @@ func webHandler(w http.ResponseWriter, r *http.Request) {
|
|
|
|
DeviceName: deviceName,
|
|
|
|
DeviceName: deviceName,
|
|
|
|
LicensesURL: licensesURL(),
|
|
|
|
LicensesURL: licensesURL(),
|
|
|
|
TUNMode: st.TUN,
|
|
|
|
TUNMode: st.TUN,
|
|
|
|
|
|
|
|
IsSynology: distro.Get() == distro.Synology || envknob.Bool("TS_FAKE_SYNOLOGY"),
|
|
|
|
}
|
|
|
|
}
|
|
|
|
exitNodeRouteV4 := netip.MustParsePrefix("0.0.0.0/0")
|
|
|
|
exitNodeRouteV4 := netip.MustParsePrefix("0.0.0.0/0")
|
|
|
|
exitNodeRouteV6 := netip.MustParsePrefix("::/0")
|
|
|
|
exitNodeRouteV6 := netip.MustParsePrefix("::/0")
|
|
|
|