From 98ce99273f24f74c34d39e887b9f16b6e1a36ffc Mon Sep 17 00:00:00 2001 From: David Ahern Date: Wed, 19 Dec 2018 13:11:15 -0800 Subject: [PATCH] mroute: fix up family handling Only ipv4 and ipv6 have multicast routing. Set family accordingly and just return for other cases. Signed-off-by: David Ahern --- ip/ipmroute.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/ip/ipmroute.c b/ip/ipmroute.c index de7a035f..b8f0bc49 100644 --- a/ip/ipmroute.c +++ b/ip/ipmroute.c @@ -223,18 +223,20 @@ void ipmroute_reset_filter(int ifindex) static int mroute_list(int argc, char **argv) { char *id = NULL; - int family; + int family = preferred_family; ipmroute_reset_filter(0); - if (preferred_family == AF_UNSPEC) - family = AF_INET; - else - family = AF_INET6; - if (family == AF_INET) { + if (family == AF_INET || family == AF_UNSPEC) { + family = RTNL_FAMILY_IPMR; filter.af = RTNL_FAMILY_IPMR; filter.tb = RT_TABLE_DEFAULT; /* for backward compatibility */ - } else + } else if (family == AF_INET6) { + family = RTNL_FAMILY_IP6MR; filter.af = RTNL_FAMILY_IP6MR; + } else { + /* family does not have multicast routing */ + return 0; + } filter.msrc.family = filter.mdst.family = family;