+void VPNControl::collectArguments () {
+ arguments.clear();
+
+ addArgumentNonempty("config", configFile);
+ addOption("client", true);
+ addOption("persist-key", true);
+ addOption("persist-tun", true);
+ addOption("nobind", true);
+ addArgument("resolv-retry", "infinite");
+ addArgument("dev", "tun");
+ addArgument("verb", "3");
+ addArgument("proto", "udp");
+ addArgument("user", "nemo");
+ addArgument("group", "nemo");
+ addArgumentNonempty("remote", server);
+ addArgumentNonempty("port", QString::number(port));
+ addOption("comp-lzo", compressed);
+ if ((useTLS) && (!tlsKeyFile.isEmpty())) {
+ addArgument("tls-auth", tlsKeyFile);
+ addValue(QString::number(tlsDirection));
+ }
+ addArgumentNonempty("ca", caCertFile);
+ addArgumentNonempty("cert", clientCertFile);
+ addArgumentNonempty("key", clientKeyFile);
+}
+
+void VPNControl::addArgument (QString key, QString value) {
+ QString argument;
+
+ argument = "--" + key;
+ arguments.append(argument);
+ if (!value.isEmpty()) {
+ arguments.append(value);
+ }
+}
+
+void VPNControl::addArgumentNonempty (QString key, QString value) {
+ QString argument;
+
+ if (!value.isEmpty()) {
+ argument = "--" + key;
+ arguments.append(argument);
+ arguments.append(value);
+ }
+}
+
+void VPNControl::addArgument (QString key) {
+ QString argument;
+
+ argument = "--" + key;
+ arguments.append(argument);
+}
+
+void VPNControl::addOption (QString key, bool add) {
+ if (add) {
+ addArgument (key);
+ }
+}
+
+void VPNControl::addValue (QString key) {
+ arguments.append(key);
+}
+