mirror of
				https://github.com/juanfont/headscale.git
				synced 2025-10-31 08:01:34 +01:00 
			
		
		
		
	* replace old suite approved routes test with table driven Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com> * add test to reproduce issue Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com> * add integration test for 2068 Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com> --------- Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
		
			
				
	
	
		
			32 lines
		
	
	
		
			758 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			758 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| package util
 | |
| 
 | |
| import (
 | |
| 	"cmp"
 | |
| 	"context"
 | |
| 	"net"
 | |
| 	"net/netip"
 | |
| )
 | |
| 
 | |
| func GrpcSocketDialer(ctx context.Context, addr string) (net.Conn, error) {
 | |
| 	var d net.Dialer
 | |
| 
 | |
| 	return d.DialContext(ctx, "unix", addr)
 | |
| }
 | |
| 
 | |
| 
 | |
| // TODO(kradalby): Remove after go 1.24, will be in stdlib.
 | |
| // Compare returns an integer comparing two prefixes.
 | |
| // The result will be 0 if p == p2, -1 if p < p2, and +1 if p > p2.
 | |
| // Prefixes sort first by validity (invalid before valid), then
 | |
| // address family (IPv4 before IPv6), then prefix length, then
 | |
| // address.
 | |
| func ComparePrefix(p, p2 netip.Prefix) int {
 | |
| 	if c := cmp.Compare(p.Addr().BitLen(), p2.Addr().BitLen()); c != 0 {
 | |
| 		return c
 | |
| 	}
 | |
| 	if c := cmp.Compare(p.Bits(), p2.Bits()); c != 0 {
 | |
| 		return c
 | |
| 	}
 | |
| 	return p.Addr().Compare(p2.Addr())
 | |
| }
 |