mirror of
https://github.com/tailscale/tailscale.git
synced 2025-02-20 11:58:39 +00:00
net/tsaddr: simplify TailscaleServiceIP
netaddr allocated at the time this was written. No longer. name old time/op new time/op delta TailscaleServiceAddr-4 5.46ns ± 4% 1.83ns ± 3% -66.52% (p=0.008 n=5+5) A bunch of the others can probably be simplified too, but this was the only one with just an IP and not an IPPrefix. Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
parent
f21982f854
commit
ca455ac84b
@ -41,12 +41,9 @@ var (
|
|||||||
// TailscaleServiceIP returns the listen address of services
|
// TailscaleServiceIP returns the listen address of services
|
||||||
// provided by Tailscale itself such as the MagicDNS proxy.
|
// provided by Tailscale itself such as the MagicDNS proxy.
|
||||||
func TailscaleServiceIP() netaddr.IP {
|
func TailscaleServiceIP() netaddr.IP {
|
||||||
serviceIP.Do(func() { mustIP(&serviceIP.v, "100.100.100.100") })
|
return netaddr.IPv4(100, 100, 100, 100) // "100.100.100.100" for those grepping
|
||||||
return serviceIP.v
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var serviceIP onceIP
|
|
||||||
|
|
||||||
// IsTailscaleIP reports whether ip is an IP address in a range that
|
// IsTailscaleIP reports whether ip is an IP address in a range that
|
||||||
// Tailscale assigns from.
|
// Tailscale assigns from.
|
||||||
func IsTailscaleIP(ip netaddr.IP) bool {
|
func IsTailscaleIP(ip netaddr.IP) bool {
|
||||||
@ -126,19 +123,6 @@ type oncePrefix struct {
|
|||||||
v netaddr.IPPrefix
|
v netaddr.IPPrefix
|
||||||
}
|
}
|
||||||
|
|
||||||
func mustIP(v *netaddr.IP, ip string) {
|
|
||||||
var err error
|
|
||||||
*v, err = netaddr.ParseIP(ip)
|
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
type onceIP struct {
|
|
||||||
sync.Once
|
|
||||||
v netaddr.IP
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewContainsIPFunc returns a func that reports whether ip is in addrs.
|
// NewContainsIPFunc returns a func that reports whether ip is in addrs.
|
||||||
//
|
//
|
||||||
// It's optimized for the cases of addrs being empty and addrs
|
// It's optimized for the cases of addrs being empty and addrs
|
||||||
|
@ -93,3 +93,11 @@ func TestNewContainsIPFunc(t *testing.T) {
|
|||||||
t.Fatal("bad")
|
t.Fatal("bad")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var sinkIP netaddr.IP
|
||||||
|
|
||||||
|
func BenchmarkTailscaleServiceAddr(b *testing.B) {
|
||||||
|
for i := 0; i < b.N; i++ {
|
||||||
|
sinkIP = TailscaleServiceIP()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user