mirror of
https://github.com/juanfont/headscale.git
synced 2026-09-18 22:34:54 +09:00
policy, mapper, capver, hscontrol: remove dead code
This commit is contained in:
@@ -3,7 +3,6 @@ package capver
|
|||||||
//go:generate go run ../../tools/capver/main.go
|
//go:generate go run ../../tools/capver/main.go
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"slices"
|
|
||||||
"sort"
|
"sort"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
@@ -32,13 +31,6 @@ func tailscaleVersSorted() []string {
|
|||||||
return vers
|
return vers
|
||||||
}
|
}
|
||||||
|
|
||||||
func capVersSorted() []tailcfg.CapabilityVersion {
|
|
||||||
capVers := xmaps.Keys(capVerToTailscaleVer)
|
|
||||||
slices.Sort(capVers)
|
|
||||||
|
|
||||||
return capVers
|
|
||||||
}
|
|
||||||
|
|
||||||
// TailscaleVersion returns the Tailscale version for the given [tailcfg.CapabilityVersion].
|
// TailscaleVersion returns the Tailscale version for the given [tailcfg.CapabilityVersion].
|
||||||
func TailscaleVersion(ver tailcfg.CapabilityVersion) string {
|
func TailscaleVersion(ver tailcfg.CapabilityVersion) string {
|
||||||
return capVerToTailscaleVer[ver]
|
return capVerToTailscaleVer[ver]
|
||||||
@@ -66,21 +58,6 @@ func CapabilityVersion(ver string) tailcfg.CapabilityVersion {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
// TailscaleLatest returns the n latest Tailscale versions.
|
|
||||||
func TailscaleLatest(n int) []string {
|
|
||||||
if n <= 0 {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
tsSorted := tailscaleVersSorted()
|
|
||||||
|
|
||||||
if n > len(tsSorted) {
|
|
||||||
return tsSorted
|
|
||||||
}
|
|
||||||
|
|
||||||
return tsSorted[len(tsSorted)-n:]
|
|
||||||
}
|
|
||||||
|
|
||||||
// TailscaleLatestMajorMinor returns the n latest Tailscale versions (e.g. 1.80).
|
// TailscaleLatestMajorMinor returns the n latest Tailscale versions (e.g. 1.80).
|
||||||
func TailscaleLatestMajorMinor(n int, stripV bool) []string {
|
func TailscaleLatestMajorMinor(n int, stripV bool) []string {
|
||||||
if n <= 0 {
|
if n <= 0 {
|
||||||
@@ -107,18 +84,3 @@ func TailscaleLatestMajorMinor(n int, stripV bool) []string {
|
|||||||
|
|
||||||
return majorSl[len(majorSl)-n:]
|
return majorSl[len(majorSl)-n:]
|
||||||
}
|
}
|
||||||
|
|
||||||
// CapVerLatest returns the n latest [tailcfg.CapabilityVersion] values.
|
|
||||||
func CapVerLatest(n int) []tailcfg.CapabilityVersion {
|
|
||||||
if n <= 0 {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
s := capVersSorted()
|
|
||||||
|
|
||||||
if n > len(s) {
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
return s[len(s)-n:]
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -51,12 +51,6 @@ type mapper struct {
|
|||||||
created time.Time
|
created time.Time
|
||||||
}
|
}
|
||||||
|
|
||||||
//nolint:unused
|
|
||||||
type patch struct {
|
|
||||||
timestamp time.Time
|
|
||||||
change *tailcfg.PeerChange
|
|
||||||
}
|
|
||||||
|
|
||||||
func newMapper(
|
func newMapper(
|
||||||
cfg *types.Config,
|
cfg *types.Config,
|
||||||
state *state.State,
|
state *state.State,
|
||||||
|
|||||||
@@ -0,0 +1,38 @@
|
|||||||
|
package matcher
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/juanfont/headscale/hscontrol/util"
|
||||||
|
"go4.org/netipx"
|
||||||
|
)
|
||||||
|
|
||||||
|
// MatchFromStrings builds a [Match] from raw source and destination
|
||||||
|
// strings. Unparseable entries are silently dropped (fail-open): the
|
||||||
|
// resulting [Match] is narrower than the input described, but never
|
||||||
|
// wider. Callers that need strict validation should pre-validate
|
||||||
|
// their inputs via [util.ParseIPSet].
|
||||||
|
func MatchFromStrings(sources, destinations []string) Match {
|
||||||
|
srcs := new(netipx.IPSetBuilder)
|
||||||
|
dests := new(netipx.IPSetBuilder)
|
||||||
|
|
||||||
|
for _, srcIP := range sources {
|
||||||
|
set, _ := util.ParseIPSet(srcIP, nil)
|
||||||
|
|
||||||
|
srcs.AddSet(set)
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, dest := range destinations {
|
||||||
|
set, _ := util.ParseIPSet(dest, nil)
|
||||||
|
|
||||||
|
dests.AddSet(set)
|
||||||
|
}
|
||||||
|
|
||||||
|
srcsSet, _ := srcs.IPSet()
|
||||||
|
destsSet, _ := dests.IPSet()
|
||||||
|
|
||||||
|
match := Match{
|
||||||
|
srcs: srcsSet,
|
||||||
|
dests: destsSet,
|
||||||
|
}
|
||||||
|
|
||||||
|
return match
|
||||||
|
}
|
||||||
@@ -80,38 +80,6 @@ func MatchFromFilterRule(rule tailcfg.FilterRule) Match {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// MatchFromStrings builds a [Match] from raw source and destination
|
|
||||||
// strings. Unparseable entries are silently dropped (fail-open): the
|
|
||||||
// resulting [Match] is narrower than the input described, but never
|
|
||||||
// wider. Callers that need strict validation should pre-validate
|
|
||||||
// their inputs via [util.ParseIPSet].
|
|
||||||
func MatchFromStrings(sources, destinations []string) Match {
|
|
||||||
srcs := new(netipx.IPSetBuilder)
|
|
||||||
dests := new(netipx.IPSetBuilder)
|
|
||||||
|
|
||||||
for _, srcIP := range sources {
|
|
||||||
set, _ := util.ParseIPSet(srcIP, nil)
|
|
||||||
|
|
||||||
srcs.AddSet(set)
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, dest := range destinations {
|
|
||||||
set, _ := util.ParseIPSet(dest, nil)
|
|
||||||
|
|
||||||
dests.AddSet(set)
|
|
||||||
}
|
|
||||||
|
|
||||||
srcsSet, _ := srcs.IPSet()
|
|
||||||
destsSet, _ := dests.IPSet()
|
|
||||||
|
|
||||||
match := Match{
|
|
||||||
srcs: srcsSet,
|
|
||||||
dests: destsSet,
|
|
||||||
}
|
|
||||||
|
|
||||||
return match
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *Match) SrcsContainsIPs(ips ...netip.Addr) bool {
|
func (m *Match) SrcsContainsIPs(ips ...netip.Addr) bool {
|
||||||
return slices.ContainsFunc(ips, m.srcs.Contains)
|
return slices.ContainsFunc(ips, m.srcs.Contains)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1747,44 +1747,6 @@ func (p *Protocol) String() string {
|
|||||||
return string(*p)
|
return string(*p)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Description returns the human-readable description of the [Protocol].
|
|
||||||
func (p *Protocol) Description() string {
|
|
||||||
switch *p {
|
|
||||||
case ProtocolNameICMP:
|
|
||||||
return "Internet Control Message Protocol"
|
|
||||||
case ProtocolNameIGMP:
|
|
||||||
return "Internet Group Management Protocol"
|
|
||||||
case ProtocolNameIPv4:
|
|
||||||
return "IPv4 encapsulation"
|
|
||||||
case ProtocolNameTCP:
|
|
||||||
return "Transmission Control Protocol"
|
|
||||||
case ProtocolNameEGP:
|
|
||||||
return "Exterior Gateway Protocol"
|
|
||||||
case ProtocolNameIGP:
|
|
||||||
return "Interior Gateway Protocol"
|
|
||||||
case ProtocolNameUDP:
|
|
||||||
return "User Datagram Protocol"
|
|
||||||
case ProtocolNameGRE:
|
|
||||||
return "Generic Routing Encapsulation"
|
|
||||||
case ProtocolNameESP:
|
|
||||||
return "Encapsulating Security Payload"
|
|
||||||
case ProtocolNameAH:
|
|
||||||
return "Authentication Header"
|
|
||||||
case ProtocolNameIPv6ICMP:
|
|
||||||
return "Internet Control Message Protocol for IPv6"
|
|
||||||
case ProtocolNameSCTP:
|
|
||||||
return "Stream Control Transmission Protocol"
|
|
||||||
case ProtocolNameFC:
|
|
||||||
return "Fibre Channel"
|
|
||||||
case ProtocolNameIPInIP:
|
|
||||||
return "IP-in-IP Encapsulation"
|
|
||||||
case ProtocolNameWildcard:
|
|
||||||
return "Wildcard (not supported - use specific protocol)"
|
|
||||||
default:
|
|
||||||
return "Unknown Protocol"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// toIANAProtocolNumbers converts a [Protocol] to its IANA protocol numbers.
|
// toIANAProtocolNumbers converts a [Protocol] to its IANA protocol numbers.
|
||||||
// Since validation happens during [Protocol.UnmarshalJSON], this method should not fail for valid [Protocol] values.
|
// Since validation happens during [Protocol.UnmarshalJSON], this method should not fail for valid [Protocol] values.
|
||||||
func (p *Protocol) toIANAProtocolNumbers() []int {
|
func (p *Protocol) toIANAProtocolNumbers() []int {
|
||||||
|
|||||||
@@ -38,9 +38,6 @@ func runTailSQLService(ctx context.Context, logf logger.Logf, stateDir, dbPath s
|
|||||||
Hostname: opts.Hostname,
|
Hostname: opts.Hostname,
|
||||||
Logf: logger.Discard,
|
Logf: logger.Discard,
|
||||||
}
|
}
|
||||||
// if *doDebugLog {
|
|
||||||
// tsNode.Logf = logf
|
|
||||||
// }
|
|
||||||
defer tsNode.Close()
|
defer tsNode.Close()
|
||||||
|
|
||||||
logf("Starting tailscale (hostname=%q)", opts.Hostname)
|
logf("Starting tailscale (hostname=%q)", opts.Hostname)
|
||||||
@@ -87,7 +84,6 @@ func runTailSQLService(ctx context.Context, logf logger.Logf, stateDir, dbPath s
|
|||||||
http.Redirect(w, r, target, http.StatusPermanentRedirect) //nolint:gosec // G710: target prefixed by trusted base URL
|
http.Redirect(w, r, target, http.StatusPermanentRedirect) //nolint:gosec // G710: target prefixed by trusted base URL
|
||||||
}))
|
}))
|
||||||
}()
|
}()
|
||||||
// log.Printf("Redirecting HTTP to HTTPS at %q", base)
|
|
||||||
|
|
||||||
// For the real service, start a separate listener.
|
// For the real service, start a separate listener.
|
||||||
// Note: Replaces the port 80 listener.
|
// Note: Replaces the port 80 listener.
|
||||||
|
|||||||
Reference in New Issue
Block a user