mirror of
https://github.com/tailscale/tailscale.git
synced 2025-12-24 00:18:20 -05:00
feature, ipn/ipnlocal: add, use feature.CanSystemdStatus for more DCE
When systemd notification support was omitted from the build, or on non-Linux systems, we were unnecessarily emitting code and generating garbage stringifying addresses upon transition to the Running state. Updates #12614 Change-Id: If713f47351c7922bb70e9da85bf92725b25954b9 Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
committed by
Brad Fitzpatrick
parent
e059382174
commit
e0e8731130
@@ -23,10 +23,17 @@
|
||||
// It does nothing on non-Linux systems or if the binary was built without
|
||||
// the sdnotify feature.
|
||||
func SystemdStatus(format string, args ...any) {
|
||||
if runtime.GOOS != "linux" || !buildfeatures.HasSDNotify {
|
||||
if !CanSystemdStatus { // mid-stack inlining DCE
|
||||
return
|
||||
}
|
||||
if f, ok := HookSystemdStatus.GetOk(); ok {
|
||||
f(format, args...)
|
||||
}
|
||||
}
|
||||
|
||||
// CanSystemdStatus reports whether the current build has systemd notifications
|
||||
// linked in.
|
||||
//
|
||||
// It's effectively the same as HookSystemdStatus.IsSet(), but a constant for
|
||||
// dead code elimination reasons.
|
||||
const CanSystemdStatus = runtime.GOOS == "linux" && buildfeatures.HasSDNotify
|
||||
|
||||
@@ -5629,12 +5629,14 @@ func (b *LocalBackend) enterStateLockedOnEntry(newState ipn.State, unlock unlock
|
||||
// Needed so that UpdateEndpoints can run
|
||||
b.e.RequestStatus()
|
||||
case ipn.Running:
|
||||
var addrStrs []string
|
||||
addrs := netMap.GetAddresses()
|
||||
for _, p := range addrs.All() {
|
||||
addrStrs = append(addrStrs, p.Addr().String())
|
||||
if feature.CanSystemdStatus {
|
||||
var addrStrs []string
|
||||
addrs := netMap.GetAddresses()
|
||||
for _, p := range addrs.All() {
|
||||
addrStrs = append(addrStrs, p.Addr().String())
|
||||
}
|
||||
feature.SystemdStatus("Connected; %s; %s", activeLogin, strings.Join(addrStrs, " "))
|
||||
}
|
||||
feature.SystemdStatus("Connected; %s; %s", activeLogin, strings.Join(addrStrs, " "))
|
||||
default:
|
||||
b.logf("[unexpected] unknown newState %#v", newState)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user