nexus: OpenVPN: Instead of creating / using a configfile, use the new
dynamic service argument support so we don't need one :)
Signed-off-by: San Mehat <san@google.com>
nexus: fix property max
diff --git a/nexus/OpenVpnController.cpp b/nexus/OpenVpnController.cpp
index d326ad5..411a0c7 100644
--- a/nexus/OpenVpnController.cpp
+++ b/nexus/OpenVpnController.cpp
@@ -26,6 +26,7 @@
#include "OpenVpnController.h"
#define DAEMON_PROP_NAME "vpn.openvpn.status"
+
#define DAEMON_CONFIG_FILE "/data/misc/openvpn/openvpn.conf"
OpenVpnController::OpenVpnController() :
@@ -46,13 +47,16 @@
}
int OpenVpnController::enable() {
-
- if (validateConfig()) {
- LOGE("Error validating configuration file");
+ char svc[PROPERTY_VALUE_MAX];
+ char tmp[64];
+
+ if (!getProperty("vpn.gateway", tmp, sizeof(tmp))) {
+ LOGE("Error reading property 'vpn.gateway' (%s)", strerror(errno));
return -1;
}
+ snprintf(svc, sizeof(svc), "openvpn:--remote %s 1194", tmp);
- if (mServiceManager->start("openvpn"))
+ if (mServiceManager->start(svc))
return -1;
return 0;
@@ -64,15 +68,3 @@
return -1;
return 0;
}
-
-int OpenVpnController::validateConfig() {
- unlink(DAEMON_CONFIG_FILE);
-
- FILE *fp = fopen(DAEMON_CONFIG_FILE, "w");
- if (!fp)
- return -1;
-
- fprintf(fp, "remote %s 1194\n", inet_ntoa(getVpnGateway()));
- fclose(fp);
- return 0;
-}
diff --git a/nexus/OpenVpnController.h b/nexus/OpenVpnController.h
index 7bcc098..b321029 100644
--- a/nexus/OpenVpnController.h
+++ b/nexus/OpenVpnController.h
@@ -33,11 +33,6 @@
int stop();
int enable();
int disable();
-
-protected:
-
-private:
- int validateConfig();
};
#endif