Move NativeDaemonConnector to varargs.

Perform uniform argument escaping inside NativeDaemonConnector, using
varargs to separate boundaries.  Also move to parsed NativeDaemonEvent
instances instead of raw Strings.

Bug: 5472606
Change-Id: I1270733e2b2eeb2f6b810240df82ab24d38ebf40
diff --git a/services/java/com/android/server/NetworkManagementService.java b/services/java/com/android/server/NetworkManagementService.java
index 9d808e1..e97f719 100644
--- a/services/java/com/android/server/NetworkManagementService.java
+++ b/services/java/com/android/server/NetworkManagementService.java
@@ -442,27 +442,17 @@
     @Override
     public void setInterfaceDown(String iface) {
         mContext.enforceCallingOrSelfPermission(CHANGE_NETWORK_STATE, TAG);
-        try {
-            InterfaceConfiguration ifcg = getInterfaceConfig(iface);
-            ifcg.interfaceFlags = ifcg.interfaceFlags.replace("up", "down");
-            setInterfaceConfig(iface, ifcg);
-        } catch (NativeDaemonConnectorException e) {
-            throw new IllegalStateException(
-                    "Unable to communicate with native daemon for interface down - " + e);
-        }
+        final InterfaceConfiguration ifcg = getInterfaceConfig(iface);
+        ifcg.interfaceFlags = ifcg.interfaceFlags.replace("up", "down");
+        setInterfaceConfig(iface, ifcg);
     }
 
     @Override
     public void setInterfaceUp(String iface) {
         mContext.enforceCallingOrSelfPermission(CHANGE_NETWORK_STATE, TAG);
-        try {
-            InterfaceConfiguration ifcg = getInterfaceConfig(iface);
-            ifcg.interfaceFlags = ifcg.interfaceFlags.replace("down", "up");
-            setInterfaceConfig(iface, ifcg);
-        } catch (NativeDaemonConnectorException e) {
-            throw new IllegalStateException(
-                    "Unable to communicate with native daemon for interface up - " + e);
-        }
+        final InterfaceConfiguration ifcg = getInterfaceConfig(iface);
+        ifcg.interfaceFlags = ifcg.interfaceFlags.replace("down", "up");
+        setInterfaceConfig(iface, ifcg);
     }
 
     @Override
@@ -733,7 +723,11 @@
     @Override
     public void setIpForwardingEnabled(boolean enable) {
         mContext.enforceCallingOrSelfPermission(CHANGE_NETWORK_STATE, TAG);
-        mConnector.doCommand(String.format("ipfwd %sable", (enable ? "en" : "dis")));
+        try {
+            mConnector.doCommand(String.format("ipfwd %sable", (enable ? "en" : "dis")));
+        } catch (NativeDaemonConnectorException e) {
+            e.rethrowAsParcelableException();
+        }
     }
 
     @Override
@@ -875,7 +869,11 @@
             }
         }
 
-        mConnector.doCommand(cmd);
+        try {
+            mConnector.doCommand(cmd);
+        } catch (NativeDaemonConnectorException e) {
+            e.rethrowAsParcelableException();
+        }
     }
 
     @Override