1 #include "vpncontrol.h"
4 VPNControl::VPNControl(QObject
*parent
) :
7 vpnStatus(VPNSTATUS_INVALID
),
16 void VPNControl::initialise()
18 setStatus(VPNSTATUS_UNINITIALISED
);
21 void VPNControl::setStatus(VPNSTATUS newStatus
)
23 if (vpnStatus
!= newStatus
) {
24 vpnStatus
= newStatus
;
25 emit
statusChanged(newStatus
);
26 printf ("Emitting status %d\n", newStatus
);
29 int VPNControl::getTlsDirection() const
34 void VPNControl::setTlsDirection(int value
)
36 printf ("TLS direction set to %d\n", value
);
38 emit
tlsDirectionChanged (value
);
41 bool VPNControl::getUseTLS() const
46 void VPNControl::setUseTLS(bool value
)
48 printf ("Use TLS set to %d\n", value
);
50 emit
useTLSChanged(useTLS
);
53 bool VPNControl::getCompressed() const
58 void VPNControl::setCompressed(bool value
)
60 printf ("Use compression set to %d\n", value
);
62 emit
compressedChanged(compressed
);
65 unsigned int VPNControl::getPort() const
70 void VPNControl::setPort(unsigned int value
)
72 printf ("Port set to %d\n", value
);
74 emit
portChanged(port
);
77 QString
VPNControl::getServer() const
82 void VPNControl::setServer(const QString
&value
)
84 printf ("Server set to %s\n", value
.toUtf8().constData());
86 emit
serverChanged(server
);
90 void VPNControl::vpnConnect() {
91 if (vpnProcess
!= NULL
) {
92 printf ("Process already running.\n");
97 vpnProcess
= new QProcess();
98 //QString program = "/home/nemo/Documents/Development/Projects/Stooge/stooge";
99 QString program
= "openvpn";
100 QStringList arguments
;
101 arguments
<< "/home/nemo/Documents/Configure/OpenVPN/client.ovpn";
103 vpnProcess
->setReadChannel(QProcess::StandardOutput
);
104 connect(vpnProcess
, SIGNAL(error(QProcess::ProcessError
)), this, SLOT(readError(QProcess::ProcessError
)));
105 connect(vpnProcess
, SIGNAL(readyRead()), this, SLOT(readData()));
106 connect(vpnProcess
, SIGNAL(started()), this, SLOT(started()));
107 connect(vpnProcess
, SIGNAL(finished(int)), this, SLOT(finished(int)));
109 vpnProcess
->start(program
, arguments
);
110 vpnProcess
->closeWriteChannel();
111 setStatus(VPNSTATUS_INITIALISING
);
115 void VPNControl::vpnDisconnect() {
116 if (vpnProcess
!= NULL
) {
117 printf ("Disconnect\n");
119 vpnProcess
->terminate();
120 setStatus(VPNSTATUS_DISCONNECTING
);
124 void VPNControl::readData() {
125 while (vpnProcess
->canReadLine()) {
126 QByteArray read
= vpnProcess
->readLine();
127 printf ("Output: %s", read
.data());
128 if (read
.endsWith("Initialization Sequence Completed\n")) {
129 printf ("We're connected!\n");
130 setStatus(VPNSTATUS_CONNECTED
);
135 void VPNControl::started() {
136 printf ("Started\n");
137 setStatus(VPNSTATUS_CONNECTING
);
140 void VPNControl::finished(int code
) {
141 printf ("Finished with code %d\n", code
);
142 if (vpnProcess
!= NULL
) {
146 setStatus(VPNSTATUS_UNINITIALISED
);
149 void VPNControl::readError(QProcess::ProcessError error
)
151 printf ("Error: %d\n", error
);
152 if (vpnProcess
!= NULL
) {
153 QByteArray dataOut
= vpnProcess
->readAllStandardOutput();
154 QByteArray errorOut
= vpnProcess
->readAllStandardError();
156 printf ("Output text: %s\n", dataOut
.data());
157 printf ("Error text: %s\n", errorOut
.data());
164 void VPNControl::updateConfiguration()
166 printf ("Update configuration\n");