blob: f101f51c92503ad665cbee38df458e333889f7ad [file] [log] [blame]
Ilya Moiseenko656d52d2013-10-25 14:19:10 -07001/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil -*- */
2/*
3 * @copyright See LICENCE for copyright and license information.
4 *
5 * @author Ilya Moiseenko <iliamo@ucla.edu>
6 */
7
8#include "network-manager.h"
9#include <QProcess>
10
11NetworkManager::NetworkManager()
12{
13 if (!QDBusConnection::systemBus().isConnected())
14 {
15 qDebug() << "Cannot connect to the D-Bus session bus.\n";
16 return;
17 }
18
Ilya Moiseenko393cbdc2013-10-29 00:45:40 -070019 autoconfigProcess = new QProcess();
20 connect(autoconfigProcess,SIGNAL(finished(int)),this,SLOT(autoconfigFinished()));
21 connect(autoconfigProcess, SIGNAL(error(QProcess::ProcessError)), this, SLOT(autoconfigFinished()));
22
Ilya Moiseenko656d52d2013-10-25 14:19:10 -070023 QDBusConnection::systemBus().connect("org.freedesktop.NetworkManager",
24 "/org/freedesktop/NetworkManager",
25 "org.freedesktop.NetworkManager",
26 "StateChanged", this, SLOT(stateChanged(uint)));
27}
28
29void NetworkManager::stateChanged(uint state)
30{
31 qDebug() << "State = " << state;
32
33 if(state == NM_STATE_CONNECTED_GLOBAL)
34 autoconfigDaemon();
35}
36
37void NetworkManager::autoconfigDaemon()
38{
Ilya Moiseenko393cbdc2013-10-29 00:45:40 -070039 if(IsAutoconfigRunning())
40 return;
41
42 qDebug() << "started running";
43 isAutoconfigRunning = true;
44 autoconfigProcess->start(NDND_AUTOCONFIG_COMMAND);
45}
46
47void NetworkManager::autoconfigFinished()
48{
49 qDebug() << "stoped running";
50 isAutoconfigRunning = false;
51}
52
53bool NetworkManager::IsAutoconfigRunning()
54{
55 return isAutoconfigRunning;
Ilya Moiseenko656d52d2013-10-25 14:19:10 -070056}
Alexander Afanasyeva822b572013-11-04 12:36:34 -080057
58#if WAF
59#include "network-manager.moc"
60#include "network-manager.cpp.moc"
61#endif