summaryrefslogtreecommitdiff
path: root/sysdep/linux
diff options
context:
space:
mode:
authorOndrej Zajicek <santiago@crfreenet.org>2015-03-31 23:59:40 +0200
committerOndrej Zajicek <santiago@crfreenet.org>2015-03-31 23:59:40 +0200
commit16a3254c4cb592e7cfa3aea744e9fd58665d6367 (patch)
treec949d6bf453379a2cbd9db70a4a6e60518ef7210 /sysdep/linux
parent2eadd36fa004d705a4003892d1639485eeaf8486 (diff)
Understand IFF_MULTICAST flag on ifaces in Linux
Unfortunately, some interfaces support multicast but do not have this flag set, so we use it only as a positive hint. Thanks to Clint Armstrong for noticing the problem.
Diffstat (limited to 'sysdep/linux')
-rw-r--r--sysdep/linux/netlink.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sysdep/linux/netlink.c b/sysdep/linux/netlink.c
index 860c8601..48dd8bab 100644
--- a/sysdep/linux/netlink.c
+++ b/sysdep/linux/netlink.c
@@ -436,6 +436,9 @@ nl_parse_link(struct nlmsghdr *h, int scan)
else
f.flags |= IF_MULTIACCESS; /* NBMA */
+ if (fl & IFF_MULTICAST)
+ f.flags |= IF_MULTICAST;
+
ifi = if_update(&f);
if (!scan)