mirror of
				https://github.com/juanfont/headscale.git
				synced 2025-10-28 10:51:44 +01:00 
			
		
		
		
	Change to a go generics set implementation, no more casting 🎉
This commit is contained in:
		
							parent
							
								
									fc502e1e79
								
							
						
					
					
						commit
						59a1a85a2b
					
				
							
								
								
									
										12
									
								
								dns.go
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								dns.go
									
									
									
									
									
								
							| @ -4,7 +4,7 @@ import ( | ||||
| 	"fmt" | ||||
| 	"strings" | ||||
| 
 | ||||
| 	"github.com/fatih/set" | ||||
| 	mapset "github.com/deckarep/golang-set/v2" | ||||
| 	"inet.af/netaddr" | ||||
| 	"tailscale.com/tailcfg" | ||||
| 	"tailscale.com/util/dnsname" | ||||
| @ -170,18 +170,12 @@ func getMapResponseDNSConfig( | ||||
| 			), | ||||
| 		) | ||||
| 
 | ||||
| 		namespaceSet := set.New(set.ThreadSafe) | ||||
| 		namespaceSet := mapset.NewSet[Namespace]() | ||||
| 		namespaceSet.Add(machine.Namespace) | ||||
| 		for _, p := range peers { | ||||
| 			namespaceSet.Add(p.Namespace) | ||||
| 		} | ||||
| 		for _, ns := range namespaceSet.List() { | ||||
| 			namespace, ok := ns.(Namespace) | ||||
| 			if !ok { | ||||
| 				dnsConfig = dnsConfigOrig | ||||
| 
 | ||||
| 				continue | ||||
| 			} | ||||
| 		for _, namespace := range namespaceSet.ToSlice() { | ||||
| 			dnsRoute := fmt.Sprintf("%v.%v", namespace.Name, baseDomain) | ||||
| 			dnsConfig.Routes[dnsRoute] = nil | ||||
| 		} | ||||
|  | ||||
| @ -63,7 +63,7 @@ | ||||
| 
 | ||||
|               # When updating go.mod or go.sum, a new sha will need to be calculated, | ||||
|               # update this if you have a mismatch after doing a change to thos files. | ||||
|               vendorSha256 = "sha256-hZXNbbPy1XcCd3t2jBRMcvrMnCDcUpROK+NZYCXx6XY="; | ||||
|               vendorSha256 = "sha256-1yFvqQvsJLmjQn2RLDjwvyiZVDXv0dg/V+UUDvwk6Hg="; | ||||
| 
 | ||||
|               ldflags = [ "-s" "-w" "-X github.com/juanfont/headscale/cmd/headscale/cli.Version=v${version}" ]; | ||||
|             }; | ||||
|  | ||||
							
								
								
									
										2
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								go.mod
									
									
									
									
									
								
							| @ -6,8 +6,8 @@ require ( | ||||
| 	github.com/AlecAivazis/survey/v2 v2.3.4 | ||||
| 	github.com/ccding/go-stun/stun v0.0.0-20200514191101-4dc67bcdb029 | ||||
| 	github.com/coreos/go-oidc/v3 v3.1.0 | ||||
| 	github.com/deckarep/golang-set/v2 v2.1.0 | ||||
| 	github.com/efekarakus/termcolor v1.0.1 | ||||
| 	github.com/fatih/set v0.2.1 | ||||
| 	github.com/gin-gonic/gin v1.7.7 | ||||
| 	github.com/glebarez/sqlite v1.4.3 | ||||
| 	github.com/gofrs/uuid v4.2.0+incompatible | ||||
|  | ||||
							
								
								
									
										4
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								go.sum
									
									
									
									
									
								
							| @ -121,6 +121,8 @@ github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2 | ||||
| github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | ||||
| github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= | ||||
| github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | ||||
| github.com/deckarep/golang-set/v2 v2.1.0 h1:g47V4Or+DUdzbs8FxCCmgb6VYd+ptPAngjM6dtGktsI= | ||||
| github.com/deckarep/golang-set/v2 v2.1.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= | ||||
| github.com/docker/cli v20.10.11+incompatible h1:tXU1ezXcruZQRrMP8RN2z9N91h+6egZTS1gsPsKantc= | ||||
| github.com/docker/cli v20.10.11+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= | ||||
| github.com/docker/docker v20.10.7+incompatible h1:Z6O9Nhsjv+ayUEeI1IojKbYcsGdgYSNqxe1s2MYzUhQ= | ||||
| @ -141,8 +143,6 @@ github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.m | ||||
| github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= | ||||
| github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= | ||||
| github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= | ||||
| github.com/fatih/set v0.2.1 h1:nn2CaJyknWE/6txyUDGwysr3G5QC6xWB/PtVjPBbeaA= | ||||
| github.com/fatih/set v0.2.1/go.mod h1:+RKtMCH+favT2+3YecHGxcc0b4KyVWA1QWWJUs4E0CI= | ||||
| github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= | ||||
| github.com/frankban/quicktest v1.14.0 h1:+cqqvzZV87b4adx/5ayVOaYZ2CrvM4ejQvUdBzPPUss= | ||||
| github.com/frankban/quicktest v1.14.0/go.mod h1:NeW+ay9A/U67EYXNFA1nPE8e/tnQv/09mUdL/ijj8og= | ||||
|  | ||||
							
								
								
									
										13
									
								
								machine.go
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								machine.go
									
									
									
									
									
								
							| @ -9,7 +9,7 @@ import ( | ||||
| 	"strings" | ||||
| 	"time" | ||||
| 
 | ||||
| 	"github.com/fatih/set" | ||||
| 	mapset "github.com/deckarep/golang-set/v2" | ||||
| 	v1 "github.com/juanfont/headscale/gen/go/headscale/v1" | ||||
| 	"github.com/rs/zerolog/log" | ||||
| 	"google.golang.org/protobuf/types/known/timestamppb" | ||||
| @ -469,17 +469,10 @@ func (h *Headscale) isOutdated(machine *Machine) bool { | ||||
| 		return true | ||||
| 	} | ||||
| 
 | ||||
| 	namespaceSet := set.New(set.ThreadSafe) | ||||
| 	namespaceSet := mapset.NewSet[string]() | ||||
| 	namespaceSet.Add(machine.Namespace.Name) | ||||
| 
 | ||||
| 	namespaces := make([]string, namespaceSet.Size()) | ||||
| 	for index, namespace := range namespaceSet.List() { | ||||
| 		if name, ok := namespace.(string); ok { | ||||
| 			namespaces[index] = name | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	lastChange := h.getLastStateChange(namespaces...) | ||||
| 	lastChange := h.getLastStateChange(namespaceSet.ToSlice()...) | ||||
| 	lastUpdate := machine.CreatedAt | ||||
| 	if machine.LastSuccessfulUpdate != nil { | ||||
| 		lastUpdate = *machine.LastSuccessfulUpdate | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user