diff options
Diffstat (limited to 'services/java/com/android/server/NetworkManagementService.java')
-rw-r--r-- | services/java/com/android/server/NetworkManagementService.java | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/services/java/com/android/server/NetworkManagementService.java b/services/java/com/android/server/NetworkManagementService.java index 0a54593..de8a44b 100644 --- a/services/java/com/android/server/NetworkManagementService.java +++ b/services/java/com/android/server/NetworkManagementService.java @@ -1468,6 +1468,32 @@ public class NetworkManagementService extends INetworkManagementService.Stub } @Override + public void setDnsIfaceForPid(String iface, int pid) throws IllegalStateException { + mContext.enforceCallingOrSelfPermission(CONNECTIVITY_INTERNAL, TAG); + try { + String cmd = "resolver setifaceforpid " + iface + " " + pid; + + mConnector.execute(cmd); + } catch (NativeDaemonConnectorException e) { + throw new IllegalStateException( + "Error communicating with native deamon to set interface for pid" + iface, e); + } + } + + @Override + public void clearDnsIfaceForPid(int pid) throws IllegalStateException { + mContext.enforceCallingOrSelfPermission(CONNECTIVITY_INTERNAL, TAG); + try { + String cmd = "resolver clearifaceforpid " + pid; + + mConnector.execute(cmd); + } catch (NativeDaemonConnectorException e) { + throw new IllegalStateException( + "Error communicating with native deamon to clear interface for pid " + pid, e); + } + } + + /** {@inheritDoc} */ public void monitor() { if (mConnector != null) { mConnector.monitor(); |