ASR_BASE
Change-Id: Icf3719cc0afe3eeb3edc7fa80a2eb5199ca9dda1
diff --git a/external/subpack/libs/avahi/patches/100-p2p-no-iff_multicast-required.patch b/external/subpack/libs/avahi/patches/100-p2p-no-iff_multicast-required.patch
new file mode 100644
index 0000000..11a0dc7
--- /dev/null
+++ b/external/subpack/libs/avahi/patches/100-p2p-no-iff_multicast-required.patch
@@ -0,0 +1,45 @@
+commit 2b6bccca5d9d8ab7f11219a639707b325910a0b1
+Author: Philip Prindeville <philipp@redfish-solutions.com>
+Date: Thu Sep 17 00:27:55 2020 +0000
+
+ Logic for p2p on tunnels incorrectly requires IFF_MULTICAST (#305)
+
+ Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>
+
+--- 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 */