diff options
author | Ante Culo <cante@google.com> | 2023-03-03 19:10:28 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2023-03-03 19:10:28 +0000 |
commit | 58d7aa03a765ce01058adfd6b3bcafbc20d0e552 (patch) | |
tree | 1a749f4f21c4e4721b28a4a935fb5f879120c048 | |
parent | e992580e78820db1d891e9754e3ec25fec1c8d06 (diff) | |
parent | 9aa4389656255d7bcde519984df71aa590891631 (diff) | |
download | mdnsresponder-58d7aa03a765ce01058adfd6b3bcafbc20d0e552.tar.gz |
Merge "Fix UWB start/stop ranging causing mDNS drop" am: e1787d392f am: 3b23452722 am: 62c6662cc2 am: 9aa4389656
Original change: https://android-review.googlesource.com/c/platform/external/mdnsresponder/+/2463529
Change-Id: I045d699ed8a9c082a7119fe4665a11cec44501af
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | mDNSPosix/mDNSPosix.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c index 28f4e06..fe899a6 100644 --- a/mDNSPosix/mDNSPosix.c +++ b/mDNSPosix/mDNSPosix.c @@ -55,6 +55,7 @@ #if USES_NETLINK #include <asm/types.h> +#include <linux/if_arp.h> #include <linux/netlink.h> #include <linux/rtnetlink.h> #else // USES_NETLINK @@ -1144,9 +1145,18 @@ mDNSlocal mDNSBool ProcessRoutingNotification(int sd) #endif // Process the NetLink message - if (pNLMsg->nlmsg_type == RTM_GETLINK || pNLMsg->nlmsg_type == RTM_NEWLINK || - pNLMsg->nlmsg_type == RTM_DELADDR || pNLMsg->nlmsg_type == RTM_NEWADDR) + if (pNLMsg->nlmsg_type == RTM_GETLINK || pNLMsg->nlmsg_type == RTM_DELADDR || + pNLMsg->nlmsg_type == RTM_NEWADDR) + { result = mDNStrue; + } + else if (pNLMsg->nlmsg_type == RTM_NEWLINK) + { + // Fix for UWB start/stop causing mdns drop. See b/265207453 + struct ifinfomsg *pIfInfo = (struct ifinfomsg*) NLMSG_DATA(pNLMsg); + if (pIfInfo->ifi_family != AF_UNSPEC || pIfInfo->ifi_type != ARPHRD_IEEE802154) + result = mDNStrue; + } // Advance pNLMsg to the next message in the buffer if ((pNLMsg->nlmsg_flags & NLM_F_MULTI) != 0 && pNLMsg->nlmsg_type != NLMSG_DONE) |