mirror of
https://github.com/juanfont/headscale.git
synced 2026-09-18 14:32:01 +09:00
types: remove dead types, constants, and methods
This commit is contained in:
@@ -9,12 +9,8 @@ import (
|
|||||||
"google.golang.org/protobuf/types/known/timestamppb"
|
"google.golang.org/protobuf/types/known/timestamppb"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
// NewAPIKeyPrefixLength is the length of the prefix for new API keys.
|
||||||
// NewAPIKeyPrefixLength is the length of the prefix for new API keys.
|
const NewAPIKeyPrefixLength = 12
|
||||||
NewAPIKeyPrefixLength = 12
|
|
||||||
// LegacyAPIKeyPrefixLength is the length of the prefix for legacy API keys.
|
|
||||||
LegacyAPIKeyPrefixLength = 7
|
|
||||||
)
|
|
||||||
|
|
||||||
// APIKey describes the datamodel for API keys used to remotely authenticate with
|
// APIKey describes the datamodel for API keys used to remotely authenticate with
|
||||||
// headscale.
|
// headscale.
|
||||||
|
|||||||
@@ -12,7 +12,6 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/juanfont/headscale/hscontrol/util"
|
"github.com/juanfont/headscale/hscontrol/util"
|
||||||
"tailscale.com/tailcfg"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@@ -28,139 +27,6 @@ var (
|
|||||||
ErrInvalidAuthIDPrefix = errors.New("auth ID has invalid prefix")
|
ErrInvalidAuthIDPrefix = errors.New("auth ID has invalid prefix")
|
||||||
)
|
)
|
||||||
|
|
||||||
type StateUpdateType int
|
|
||||||
|
|
||||||
func (su StateUpdateType) String() string {
|
|
||||||
switch su {
|
|
||||||
case StateFullUpdate:
|
|
||||||
return "StateFullUpdate"
|
|
||||||
case StatePeerChanged:
|
|
||||||
return "StatePeerChanged"
|
|
||||||
case StatePeerChangedPatch:
|
|
||||||
return "StatePeerChangedPatch"
|
|
||||||
case StatePeerRemoved:
|
|
||||||
return "StatePeerRemoved"
|
|
||||||
case StateSelfUpdate:
|
|
||||||
return "StateSelfUpdate"
|
|
||||||
case StateDERPUpdated:
|
|
||||||
return "StateDERPUpdated"
|
|
||||||
}
|
|
||||||
|
|
||||||
return "unknown state update type"
|
|
||||||
}
|
|
||||||
|
|
||||||
const (
|
|
||||||
StateFullUpdate StateUpdateType = iota
|
|
||||||
// StatePeerChanged is used for updates that needs
|
|
||||||
// to be calculated with all peers and all policy rules.
|
|
||||||
// This would typically be things that include tags, routes
|
|
||||||
// and similar.
|
|
||||||
StatePeerChanged
|
|
||||||
StatePeerChangedPatch
|
|
||||||
StatePeerRemoved
|
|
||||||
// StateSelfUpdate is used to indicate that the node
|
|
||||||
// has changed in control, and the client needs to be
|
|
||||||
// informed.
|
|
||||||
// The updated node is inside the ChangeNodes field
|
|
||||||
// which should have a length of one.
|
|
||||||
StateSelfUpdate
|
|
||||||
StateDERPUpdated
|
|
||||||
)
|
|
||||||
|
|
||||||
// StateUpdate is an internal message containing information about
|
|
||||||
// a state change that has happened to the network.
|
|
||||||
// If type is [StateFullUpdate], all fields are ignored.
|
|
||||||
type StateUpdate struct {
|
|
||||||
// The type of update
|
|
||||||
Type StateUpdateType
|
|
||||||
|
|
||||||
// ChangeNodes must be set when Type is StatePeerAdded
|
|
||||||
// and [StatePeerChanged] and contains the full node
|
|
||||||
// object for added nodes.
|
|
||||||
ChangeNodes []NodeID
|
|
||||||
|
|
||||||
// ChangePatches must be set when Type is [StatePeerChangedPatch]
|
|
||||||
// and contains a populated [tailcfg.PeerChange] object.
|
|
||||||
ChangePatches []*tailcfg.PeerChange
|
|
||||||
|
|
||||||
// Removed must be set when Type is [StatePeerRemoved] and
|
|
||||||
// contain a list of the nodes that has been removed from
|
|
||||||
// the network.
|
|
||||||
Removed []NodeID
|
|
||||||
|
|
||||||
// DERPMap must be set when Type is [StateDERPUpdated] and
|
|
||||||
// contain the new DERP Map.
|
|
||||||
DERPMap *tailcfg.DERPMap
|
|
||||||
|
|
||||||
// Additional message for tracking origin or what being
|
|
||||||
// updated, useful for ambiguous updates like [StatePeerChanged].
|
|
||||||
Message string
|
|
||||||
}
|
|
||||||
|
|
||||||
// Empty reports if there are any updates in the [StateUpdate].
|
|
||||||
func (su *StateUpdate) Empty() bool {
|
|
||||||
switch su.Type {
|
|
||||||
case StatePeerChanged:
|
|
||||||
return len(su.ChangeNodes) == 0
|
|
||||||
case StatePeerChangedPatch:
|
|
||||||
return len(su.ChangePatches) == 0
|
|
||||||
case StatePeerRemoved:
|
|
||||||
return len(su.Removed) == 0
|
|
||||||
case StateFullUpdate, StateSelfUpdate, StateDERPUpdated:
|
|
||||||
// These update types don't have associated data to check,
|
|
||||||
// so they are never considered empty.
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
func UpdateFull() StateUpdate {
|
|
||||||
return StateUpdate{
|
|
||||||
Type: StateFullUpdate,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func UpdateSelf(nodeID NodeID) StateUpdate {
|
|
||||||
return StateUpdate{
|
|
||||||
Type: StateSelfUpdate,
|
|
||||||
ChangeNodes: []NodeID{nodeID},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func UpdatePeerChanged(nodeIDs ...NodeID) StateUpdate {
|
|
||||||
return StateUpdate{
|
|
||||||
Type: StatePeerChanged,
|
|
||||||
ChangeNodes: nodeIDs,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func UpdatePeerPatch(changes ...*tailcfg.PeerChange) StateUpdate {
|
|
||||||
return StateUpdate{
|
|
||||||
Type: StatePeerChangedPatch,
|
|
||||||
ChangePatches: changes,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func UpdatePeerRemoved(nodeIDs ...NodeID) StateUpdate {
|
|
||||||
return StateUpdate{
|
|
||||||
Type: StatePeerRemoved,
|
|
||||||
Removed: nodeIDs,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func UpdateExpire(nodeID NodeID, expiry time.Time) StateUpdate {
|
|
||||||
return StateUpdate{
|
|
||||||
Type: StatePeerChangedPatch,
|
|
||||||
ChangePatches: []*tailcfg.PeerChange{
|
|
||||||
{
|
|
||||||
NodeID: nodeID.NodeID(),
|
|
||||||
KeyExpiry: &expiry,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const (
|
const (
|
||||||
authIDPrefix = "hskey-authreq-"
|
authIDPrefix = "hskey-authreq-"
|
||||||
authIDRandomLength = 24
|
authIDRandomLength = 24
|
||||||
|
|||||||
@@ -1354,26 +1354,6 @@ type deprecator struct {
|
|||||||
fatals set.Set[string]
|
fatals set.Set[string]
|
||||||
}
|
}
|
||||||
|
|
||||||
// warnWithAlias will register an alias between the newKey and the oldKey,
|
|
||||||
// and log a deprecation warning if the oldKey is set.
|
|
||||||
//
|
|
||||||
//nolint:unused
|
|
||||||
func (d *deprecator) warnWithAlias(newKey, oldKey string) {
|
|
||||||
// NOTE: RegisterAlias is called with NEW KEY -> OLD KEY
|
|
||||||
viper.RegisterAlias(newKey, oldKey)
|
|
||||||
|
|
||||||
if viper.IsSet(oldKey) {
|
|
||||||
d.warns.Add(
|
|
||||||
fmt.Sprintf(
|
|
||||||
"The %q configuration key is deprecated. Please use %q instead. %q will be removed in the future.",
|
|
||||||
oldKey,
|
|
||||||
newKey,
|
|
||||||
oldKey,
|
|
||||||
),
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// fatal deprecates and adds an entry to the fatal list of options if the oldKey is set.
|
// fatal deprecates and adds an entry to the fatal list of options if the oldKey is set.
|
||||||
func (d *deprecator) fatal(oldKey string) {
|
func (d *deprecator) fatal(oldKey string) {
|
||||||
if viper.IsSet(oldKey) {
|
if viper.IsSet(oldKey) {
|
||||||
@@ -1450,20 +1430,6 @@ func (d *deprecator) warnNoAlias(newKey, oldKey string) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// warn deprecates and adds an entry to the warn list of options if the oldKey is set.
|
|
||||||
//
|
|
||||||
//nolint:unused
|
|
||||||
func (d *deprecator) warn(oldKey string) {
|
|
||||||
if viper.IsSet(oldKey) {
|
|
||||||
d.warns.Add(
|
|
||||||
fmt.Sprintf(
|
|
||||||
"The %q configuration key is deprecated and has been removed. Please see the changelog for more details.",
|
|
||||||
oldKey,
|
|
||||||
),
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (d *deprecator) String() string {
|
func (d *deprecator) String() string {
|
||||||
var b strings.Builder
|
var b strings.Builder
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,5 @@ const (
|
|||||||
JSONLogFormat = "json"
|
JSONLogFormat = "json"
|
||||||
TextLogFormat = "text"
|
TextLogFormat = "text"
|
||||||
|
|
||||||
KeepAliveInterval = 60 * time.Second
|
|
||||||
MaxHostnameLength = 255
|
MaxHostnameLength = 255
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -78,10 +78,6 @@ type (
|
|||||||
NodeIDs []NodeID
|
NodeIDs []NodeID
|
||||||
)
|
)
|
||||||
|
|
||||||
func (n NodeIDs) Len() int { return len(n) }
|
|
||||||
func (n NodeIDs) Less(i, j int) bool { return n[i] < n[j] }
|
|
||||||
func (n NodeIDs) Swap(i, j int) { n[i], n[j] = n[j], n[i] }
|
|
||||||
|
|
||||||
func (id NodeID) StableID() tailcfg.StableNodeID {
|
func (id NodeID) StableID() tailcfg.StableNodeID {
|
||||||
return tailcfg.StableNodeID(strconv.FormatUint(uint64(id), util.Base10))
|
return tailcfg.StableNodeID(strconv.FormatUint(uint64(id), util.Base10))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,6 +26,3 @@ type Route struct {
|
|||||||
// when the server is up.
|
// when the server is up.
|
||||||
IsPrimary bool
|
IsPrimary bool
|
||||||
}
|
}
|
||||||
|
|
||||||
// Deprecated: Approval of routes is denormalised onto the relevant node.
|
|
||||||
type Routes []Route
|
|
||||||
|
|||||||
@@ -50,7 +50,6 @@ var GetVersionInfo = sync.OnceValue(func() *VersionInfo {
|
|||||||
OS: runtime.GOOS,
|
OS: runtime.GOOS,
|
||||||
Arch: runtime.GOARCH,
|
Arch: runtime.GOARCH,
|
||||||
},
|
},
|
||||||
Dirty: false,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
buildInfo, ok := buildInfo()
|
buildInfo, ok := buildInfo()
|
||||||
|
|||||||
Reference in New Issue
Block a user