commit 2b6bccca5d9d8ab7f11219a639707b325910a0b1 Author: Philip Prindeville Date: Thu Sep 17 00:27:55 2020 +0000 Logic for p2p on tunnels incorrectly requires IFF_MULTICAST (#305) Signed-off-by: Philip Prindeville --- a/avahi-core/iface-linux.c +++ b/avahi-core/iface-linux.c @@ -105,8 +105,8 @@ static void netlink_callback(AvahiNetlin (ifinfomsg->ifi_flags & IFF_UP) && (!m->server->config.use_iff_running || (ifinfomsg->ifi_flags & IFF_RUNNING)) && ((ifinfomsg->ifi_flags & IFF_LOOPBACK) || - (ifinfomsg->ifi_flags & IFF_MULTICAST)) && - (m->server->config.allow_point_to_point || !(ifinfomsg->ifi_flags & IFF_POINTOPOINT)); + (ifinfomsg->ifi_flags & IFF_MULTICAST) || + ((ifinfomsg->ifi_flags & IFF_POINTOPOINT) && m->server->config.allow_point_to_point)); /* Handle interface attributes */ l = NLMSG_PAYLOAD(n, sizeof(struct ifinfomsg)); --- a/avahi-core/iface-pfroute.c +++ b/avahi-core/iface-pfroute.c @@ -81,8 +81,8 @@ static void rtm_info(struct rt_msghdr *r (ifm->ifm_flags & IFF_UP) && (!m->server->config.use_iff_running || (ifm->ifm_flags & IFF_RUNNING)) && ((ifm->ifm_flags & IFF_LOOPBACK) || - (ifm->ifm_flags & IFF_MULTICAST)) && - (m->server->config.allow_point_to_point || !(ifm->ifm_flags & IFF_POINTOPOINT)); + (ifm->ifm_flags & IFF_MULTICAST) || + ((ifm->ifm_flags & IFF_POINTOPOINT) && m->server->config.allow_point_to_point)); avahi_free(hw->name); hw->name = avahi_strndup(sdl->sdl_data, sdl->sdl_nlen); @@ -428,8 +428,8 @@ static void if_add_interface(struct lifr (flags & IFF_UP) && (!m->server->config.use_iff_running || (flags & IFF_RUNNING)) && ((flags & IFF_LOOPBACK) || - (flags & IFF_MULTICAST)) && - (m->server->config.allow_point_to_point || !(flags & IFF_POINTOPOINT)); + (flags & IFF_MULTICAST) || + ((flags & IFF_POINTOPOINT) && m->server->config.allow_point_to_point)); hw->name = avahi_strdup(lifreq->lifr_name); hw->mtu = mtu; /* TODO get mac address */