diff options
| -rw-r--r-- | core/java/android/os/INetworkManagementService.aidl | 5 | ||||
| -rw-r--r-- | services/core/java/com/android/server/NetworkManagementService.java | 10 |
2 files changed, 15 insertions, 0 deletions
diff --git a/core/java/android/os/INetworkManagementService.aidl b/core/java/android/os/INetworkManagementService.aidl index d6ee8e0c9937..6d4a302420ad 100644 --- a/core/java/android/os/INetworkManagementService.aidl +++ b/core/java/android/os/INetworkManagementService.aidl @@ -312,6 +312,11 @@ interface INetworkManagementService */ void setDnsServersForNetwork(int netId, in String[] servers, String domains); + /** + * Flush the DNS cache associated with the specified network. + */ + void flushNetworkDnsCache(int netId); + void setFirewallEnabled(boolean enabled); boolean isFirewallEnabled(); void setFirewallInterfaceRule(String iface, boolean allow); diff --git a/services/core/java/com/android/server/NetworkManagementService.java b/services/core/java/com/android/server/NetworkManagementService.java index 362a74502aaf..f9b65b8ca4b8 100644 --- a/services/core/java/com/android/server/NetworkManagementService.java +++ b/services/core/java/com/android/server/NetworkManagementService.java @@ -1748,6 +1748,16 @@ public class NetworkManagementService extends INetworkManagementService.Stub } @Override + public void flushNetworkDnsCache(int netId) { + mContext.enforceCallingOrSelfPermission(CONNECTIVITY_INTERNAL, TAG); + try { + mConnector.execute("resolver", "flushnet", netId); + } catch (NativeDaemonConnectorException e) { + throw e.rethrowAsParcelableException(); + } + } + + @Override public void setFirewallEnabled(boolean enabled) { enforceSystemUid(); try { |