Don't redirect dns to an iface without dns servers

bug:10115444
Change-Id: Ide42072bb3aae21f8e99c11c2de263e9a765b911
diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java
index 3f13f3a..56d5010 100644
--- a/services/java/com/android/server/ConnectivityService.java
+++ b/services/java/com/android/server/ConnectivityService.java
@@ -2794,7 +2794,7 @@
             }
             mNumDnsEntries = last;
         } catch (Exception e) {
-            if (DBG) loge("exception setting default dns interface: " + e);
+            loge("exception setting default dns interface: " + e);
         }
     }
 
@@ -3779,31 +3779,33 @@
             }
         }
 
-        public void addUserForwarding(String interfaze, int uid) {
+        public void addUserForwarding(String interfaze, int uid, boolean forwardDns) {
             int uidStart = uid * UserHandle.PER_USER_RANGE;
             int uidEnd = uidStart + UserHandle.PER_USER_RANGE - 1;
-            addUidForwarding(interfaze, uidStart, uidEnd);
+            addUidForwarding(interfaze, uidStart, uidEnd, forwardDns);
         }
 
-        public void clearUserForwarding(String interfaze, int uid) {
+        public void clearUserForwarding(String interfaze, int uid, boolean forwardDns) {
             int uidStart = uid * UserHandle.PER_USER_RANGE;
             int uidEnd = uidStart + UserHandle.PER_USER_RANGE - 1;
-            clearUidForwarding(interfaze, uidStart, uidEnd);
+            clearUidForwarding(interfaze, uidStart, uidEnd, forwardDns);
         }
 
-        public void addUidForwarding(String interfaze, int uidStart, int uidEnd) {
+        public void addUidForwarding(String interfaze, int uidStart, int uidEnd,
+                boolean forwardDns) {
             try {
                 mNetd.setUidRangeRoute(interfaze,uidStart, uidEnd);
-                mNetd.setDnsInterfaceForUidRange(interfaze, uidStart, uidEnd);
+                if (forwardDns) mNetd.setDnsInterfaceForUidRange(interfaze, uidStart, uidEnd);
             } catch (RemoteException e) {
             }
 
         }
 
-        public void clearUidForwarding(String interfaze, int uidStart, int uidEnd) {
+        public void clearUidForwarding(String interfaze, int uidStart, int uidEnd,
+                boolean forwardDns) {
             try {
                 mNetd.clearUidRangeRoute(interfaze, uidStart, uidEnd);
-                mNetd.clearDnsInterfaceForUidRange(uidStart, uidEnd);
+                if (forwardDns) mNetd.clearDnsInterfaceForUidRange(uidStart, uidEnd);
             } catch (RemoteException e) {
             }