diff options
author | Toke Høiland-Jørgensen <toke@toke.dk> | 2021-05-10 19:49:43 +0200 |
---|---|---|
committer | Ondrej Zajicek (work) <santiago@crfreenet.org> | 2021-05-10 19:49:43 +0200 |
commit | b17adf073594974b05a60ddaaa6e36da4eac4831 (patch) | |
tree | c54df56f466b6cdcce6b6fd97524b74e62db261c | |
parent | 2a0af925b83f699d126cf0e733a49c75ffd86033 (diff) |
BSD: Propagate OS-level IFF_MULTICAST to internal IF_MULTICAST flag
The BSD code did not propagate the OS-level IFF_MULTICAST flag to the
Bird-internal IF_MULTICAST flag, which causes problems with Wireguard
interfaces on FreeBSD. The Linux sysdep code does propagate the flag
already, so just copy over the same check and flag update.
-rw-r--r-- | sysdep/bsd/krt-sock.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sysdep/bsd/krt-sock.c b/sysdep/bsd/krt-sock.c index ea0cc4d9..5c905bc9 100644 --- a/sysdep/bsd/krt-sock.c +++ b/sysdep/bsd/krt-sock.c @@ -665,6 +665,9 @@ krt_read_ifinfo(struct ks_msg *msg, int scan) else f.flags |= IF_MULTIACCESS; /* NBMA */ + if (fl & IFF_MULTICAST) + f.flags |= IF_MULTICAST; + iface = if_update(&f); if (!scan) |