do not drop ingress dns replies with non bypassable vpn
See:
aosp-master packages/modules/DnsResolver/include/netd_resolv/resolv.h
119: #define TAG_SYSTEM_DNS 0xFFFFFF82
aosp-master frameworks/base/core/java/com/android/internal/util/TrafficStatsConstants.java
43: public static final int TAG_SYSTEM_DNS = 0xFFFFFF82;
aosp-master packages/modules/DnsResolver/resolv_private.h
171: if (int err = android::net::gResNetdCallbacks.tagSocket(sock, TAG_SYSTEM_DNS, uid, pid)) {
Test: via new tests on aosp master & via test build with carrier
Bug: 159994981
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I8765153c1d7b10970f48bd7e85780f24d2549190
diff --git a/server/main.cpp b/server/main.cpp
index 0a86b0a..4949ff6 100644
--- a/server/main.cpp
+++ b/server/main.cpp
@@ -83,6 +83,8 @@
}
int tagSocketCallback(int sockFd, uint32_t tag, uid_t uid, pid_t) {
+ // Workaround for secureVPN with VpnIsolation enabled, refer to b/159994981 for details.
+ if (tag == TAG_SYSTEM_DNS) uid = AID_DNS;
return gCtls->trafficCtrl.tagSocket(sockFd, tag, uid, geteuid());
}