mirror of
https://github.com/juanfont/headscale.git
synced 2024-12-21 07:27:34 +00:00
f368ed01ed
* 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())
|
|
}
|