net/dns: ignore UnknownMethod error in SetLinkDefaultRoute for resolved manager

Signed-off-by: Maxim Merzhanov <maksimmerzh@gmail.com>
This commit is contained in:
Maxim Merzhanov 2021-10-19 17:02:35 +03:00 committed by Dave Anderson
parent e25afc6656
commit 9f954628e5

View File

@ -176,7 +176,13 @@ func (m *resolvedManager) SetDNS(config OSConfig) error {
}
if call := m.resolved.CallWithContext(ctx, "org.freedesktop.resolve1.Manager.SetLinkDefaultRoute", 0, m.ifidx, len(config.MatchDomains) == 0); call.Err != nil {
return fmt.Errorf("setLinkDefaultRoute: %w", call.Err)
if dbusErr, ok := call.Err.(dbus.Error); ok && dbusErr.Name == dbus.ErrMsgUnknownMethod.Name {
// on some older systems like Kubuntu 18.04.6 with systemd 237 method SetLinkDefaultRoute is absent,
// but otherwise it's working good
m.logf("[v1] failed to set SetLinkDefaultRoute: %v", call.Err)
} else {
return fmt.Errorf("setLinkDefaultRoute: %w", call.Err)
}
}
// Some best-effort setting of things, but resolved should do the