VPNControl::VPNControl(QObject *parent) :
QObject(parent),
vpnProcess(NULL),
- vpnStatus(VPNSTATUS_INVALID)
+ vpnStatus(VPNSTATUS_INVALID),
+ server(""),
+ port(1174),
+ compressed(true),
+ useTLS(true),
+ tlsDirection(1)
{
}
printf ("Emitting status %d\n", newStatus);
}
}
+int VPNControl::getTlsDirection() const
+{
+ return tlsDirection;
+}
+
+void VPNControl::setTlsDirection(int value)
+{
+ printf ("TLS direction set to %d\n", value);
+ tlsDirection = value;
+ emit tlsDirectionChanged (value);
+}
+
+bool VPNControl::getUseTLS() const
+{
+ return useTLS;
+}
+
+void VPNControl::setUseTLS(bool value)
+{
+ printf ("Use TLS set to %d\n", value);
+ useTLS = value;
+ emit useTLSChanged(useTLS);
+}
+
+bool VPNControl::getCompressed() const
+{
+ return compressed;
+}
+
+void VPNControl::setCompressed(bool value)
+{
+ printf ("Use compression set to %d\n", value);
+ compressed = value;
+ emit compressedChanged(compressed);
+}
+
+unsigned int VPNControl::getPort() const
+{
+ return port;
+}
+
+void VPNControl::setPort(unsigned int value)
+{
+ printf ("Port set to %d\n", value);
+ port = value;
+ emit portChanged(port);
+}
+
+QString VPNControl::getServer() const
+{
+ return server;
+}
+
+void VPNControl::setServer(const QString &value)
+{
+ printf ("Server set to %s\n", value.toUtf8().constData());
+ server = value;
+ emit serverChanged(server);
+}
void VPNControl::vpnConnect() {
if (vpnProcess != NULL) {
printf ("Connect\n");
vpnProcess = new QProcess();
- //QString program = "/home/nemo/Documents/Development/Projects/Stooge/stooge";
QString program = "openvpn";
- QStringList arguments;
- arguments << "/home/nemo/Documents/Configure/OpenVPN/client.ovpn";
-
+ collectArguments ();
vpnProcess->setReadChannel(QProcess::StandardOutput);
connect(vpnProcess, SIGNAL(error(QProcess::ProcessError)), this, SLOT(readError(QProcess::ProcessError)));
connect(vpnProcess, SIGNAL(readyRead()), this, SLOT(readData()));
vpnProcess->start(program, arguments);
vpnProcess->closeWriteChannel();
setStatus(VPNSTATUS_INITIALISING);
+ arguments.clear();
+ }
+}
+
+void VPNControl::collectArguments () {
+ arguments.clear();
+
+ addArgument("config", "/home/nemo/Documents/Configure/OpenVPN/config.ovpn");
+ addArgument("remote", server);
+ addArgument("port", QString::number(port));
+ addOption("comp-lzo", compressed);
+ if (useTLS) {
+ addArgument("tls-auth", "/home/nemo/Documents/Configure/OpenVPN/ta.key");
+ addValue(QString::number(tlsDirection));
+ }
+ addArgument("ca", "/home/nemo/Documents/Configure/OpenVPN/ca.crt");
+ addArgument("cert", "/home/nemo/Documents/Configure/OpenVPN/Jolla.crt");
+ addArgument("key", "/home/nemo/Documents/Configure/OpenVPN/Jolla.key");
+}
+
+void VPNControl::addArgument (QString key, QString value) {
+ QString argument;
+
+ argument = "--" + key;
+ arguments.append(argument);
+ if (value != "") {
+ 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);
+}
+
void VPNControl::vpnDisconnect() {
if (vpnProcess != NULL) {
printf ("Disconnect\n");
// Disconnect
vpnDisconnect();
}
+
+void VPNControl::updateConfiguration()
+{
+ printf ("Update configuration\n");
+}