From 43bc86588e43c7d2287dbc275569b2aad91838dd Mon Sep 17 00:00:00 2001 From: Brad Fitzpatrick Date: Wed, 5 Aug 2020 20:44:05 -0700 Subject: [PATCH] wgengine/monitor: log RTM_DELROUTE details, fix format strings Updates #643 --- wgengine/monitor/monitor_linux.go | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/wgengine/monitor/monitor_linux.go b/wgengine/monitor/monitor_linux.go index b60919367..651affc39 100644 --- a/wgengine/monitor/monitor_linux.go +++ b/wgengine/monitor/monitor_linux.go @@ -79,7 +79,7 @@ func (c *nlConn) Receive() (message, error) { case unix.RTM_NEWADDR, unix.RTM_DELADDR: var rmsg rtnetlink.AddressMessage if err := rmsg.UnmarshalBinary(msg.Data); err != nil { - c.logf("failed to parse type 0x%x: %v", msg.Header.Type, err) + c.logf("failed to parse type %v: %v", msg.Header.Type, err) return unspecifiedMessage{}, nil } return &newAddrMessage{ @@ -99,8 +99,18 @@ func (c *nlConn) Receive() (message, error) { Dst: netaddrIP(rmsg.Attributes.Dst), Gateway: netaddrIP(rmsg.Attributes.Gateway), }, nil + case unix.RTM_DELROUTE: + var rmsg rtnetlink.RouteMessage + if err := rmsg.UnmarshalBinary(msg.Data); err != nil { + c.logf("RTM_DELROUTE: failed to parse: %v", err) + return unspecifiedMessage{}, nil + } + // Just log it for now, but don't bubble it up. + // (Debugging https://github.com/tailscale/tailscale/issues/643) + c.logf("RTM_DELROUTE: %+v", rmsg) + return unspecifiedMessage{}, nil default: - c.logf("unhandled netlink msg type 0x%x: %+v, %q", msg.Header.Type, msg.Header, msg.Data) + c.logf("unhandled netlink msg type %+v, %q", msg.Header, msg.Data) return unspecifiedMessage{}, nil } }