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>
pull/2012/head
Brad Fitzpatrick 4 years ago
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…
Cancel
Save