From: Stephen Hemminger Date: Wed, 15 Aug 2018 21:29:42 +0000 (-0700) Subject: ipmonitor: decode DELNETCONF message X-Git-Tag: v4.19.0~69^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e09d21f6752a02d1bec19d109e93b8e759627079;p=thirdparty%2Fiproute2.git ipmonitor: decode DELNETCONF message When device is deleted DELNETCONF is sent, but ipmonitor was unable to decode it. Signed-off-by: Stephen Hemminger --- diff --git a/ip/ipmonitor.c b/ip/ipmonitor.c index 5552d98ee..a93b62cd6 100644 --- a/ip/ipmonitor.c +++ b/ip/ipmonitor.c @@ -133,6 +133,7 @@ static int accept_msg(const struct sockaddr_nl *who, return 0; case RTM_NEWNETCONF: + case RTM_DELNETCONF: print_headers(fp, "[NETCONF]", ctrl); print_netconf(who, ctrl, n, arg); return 0; diff --git a/ip/ipnetconf.c b/ip/ipnetconf.c index 03f98ace9..04c4d6080 100644 --- a/ip/ipnetconf.c +++ b/ip/ipnetconf.c @@ -66,8 +66,10 @@ int print_netconf(const struct sockaddr_nl *who, struct rtnl_ctrl_data *ctrl, if (n->nlmsg_type == NLMSG_ERROR) return -1; - if (n->nlmsg_type != RTM_NEWNETCONF) { - fprintf(stderr, "Not RTM_NEWNETCONF: %08x %08x %08x\n", + + if (n->nlmsg_type != RTM_NEWNETCONF && + n->nlmsg_type != RTM_DELNETCONF) { + fprintf(stderr, "Not a netconf message: %08x %08x %08x\n", n->nlmsg_len, n->nlmsg_type, n->nlmsg_flags); return -1; @@ -91,6 +93,9 @@ int print_netconf(const struct sockaddr_nl *who, struct rtnl_ctrl_data *ctrl, return 0; open_json_object(NULL); + if (n->nlmsg_type == RTM_DELNETCONF) + print_bool(PRINT_ANY, "deleted", "Deleted ", true); + print_string(PRINT_ANY, "family", "%s ", family_name(ncm->ncm_family));