summaryrefslogtreecommitdiffstats
path: root/LogReceiver/networkdiscovery.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'LogReceiver/networkdiscovery.cpp')
-rw-r--r--LogReceiver/networkdiscovery.cpp87
1 files changed, 47 insertions, 40 deletions
diff --git a/LogReceiver/networkdiscovery.cpp b/LogReceiver/networkdiscovery.cpp
index 1677573..a526a6f 100644
--- a/LogReceiver/networkdiscovery.cpp
+++ b/LogReceiver/networkdiscovery.cpp
@@ -4,7 +4,7 @@
NetworkDiscovery::NetworkDiscovery(QObject *parent) {
- server = new QLocalServer(this);
+ _server = new QLocalServer(this);
}
NetworkDiscovery::~NetworkDiscovery() {
@@ -17,12 +17,22 @@ void NetworkDiscovery::initAndRun(QString serverIp, bool userChoice,QString serv
_serverIp = serverIp;
_userChoice = userChoice;
_blocked = false;
+ _pathToDhcpcdExe = pathToExe;
+ _numberOfProcesses = 0;
if (serverPath != DEFAULT_QTSOCKETADDRESS) {
- dhcpcdArguments.append("-q");
- dhcpcdArguments.append(serverPath);
+ _dhcpcdArguments.append("-q");
+ _dhcpcdArguments.append(serverPath);
}
- if (!server->listen(serverPath)) {
+ /* delete the file at serverPath. this is necessary since in case the application crashes, the file still
+ * exists which leads to an error.
+ */
+
+ if(QFile::exists(serverPath)) {
+ QFile::remove(serverPath);
+ }
+
+ if (!_server->listen(serverPath)) {
/*
QMessageBox::critical(this, tr("NetworkDiscovery"), tr(
"Unable to start the server: %1.") .arg(server->errorString()));
@@ -31,17 +41,17 @@ void NetworkDiscovery::initAndRun(QString serverIp, bool userChoice,QString serv
// emit signal to the gui that a critial error occoured
QString errorInfo("Unable to start server: ");
qDebug() << "--- \t [NetworkDiscovery::initAndRun] " + errorInfo
- << server->errorString();
+ << _server->errorString();
emit
- abortBoot(errorInfo + server->errorString());
+ abortBoot(errorInfo + _server->errorString());
return;
}
- connect(server, SIGNAL(newConnection()), this, SLOT(handleNewConnection()));
+ connect(_server, SIGNAL(newConnection()), this, SLOT(handleNewConnection()));
+
- pathToDhcpcdExe = pathToExe;
// check if the path to the customdhcpcd file is correct
- QFileInfo fInfo(pathToDhcpcdExe);
+ QFileInfo fInfo(_pathToDhcpcdExe);
if (!fInfo.exists()) {
qDebug()
<< "could not find customdhcpcd exe. Please check the path to this file.";
@@ -52,10 +62,10 @@ void NetworkDiscovery::initAndRun(QString serverIp, bool userChoice,QString serv
if (args != NULL && !args->isEmpty()) {
qDebug() << "--- \t [NetworkDiscovery::initAndRun] added additional args";
- dhcpcdArguments.append(*args);
+ _dhcpcdArguments.append(*args);
}
- numberOfProcesses = 0;
+
// start the main work:
@@ -67,8 +77,7 @@ void NetworkDiscovery::initAndRun(QString serverIp, bool userChoice,QString serv
//dhcpcdArguments.append("-d");
- QString ifName("eth0");
- numberOfProcesses = list.size();
+ _numberOfProcesses = list.size();
runDHCPCD(list);
} else {
qDebug() << "list is empty. Have not found usable interface.";
@@ -79,24 +88,23 @@ void NetworkDiscovery::initAndRun(QString serverIp, bool userChoice,QString serv
}
int NetworkDiscovery::replaceDefaultRoute(QString &ifName, QString &gateway, int af, int mss) {
- networkManager.replaceDefaultRoute(ifName, gateway, mss, AF_INET);
+ _networkManager.replaceDefaultRoute(ifName, gateway, mss, AF_INET);
}
int NetworkDiscovery::ip4_replaceDefaultRoute(QString ifName, QString gateway, int mss) {
- networkManager.replaceDefaultRoute(ifName, gateway, mss, AF_INET);
+ _networkManager.replaceDefaultRoute(ifName, gateway, mss, AF_INET);
}
int NetworkDiscovery::ip4_setManualConfiguration(QVariantMap result) {
QList<QString> dns;
dns.append(result["dns"].toString());
- networkManager.ip4_setManualConfiguration(result["ifname"].toString(),
+ _networkManager.ip4_setManualConfiguration(result["ifname"].toString(),
result["ipaddr"].toString(),
result["netmask"].toString(),
result["broadcast"].toString(),
result["gateway"].toString(),
0,
AF_INET,
- true,
"/etc/",
dns);
@@ -108,14 +116,13 @@ int NetworkDiscovery::ip4_setManualConfiguration(QVariantMap result) {
if(ifc != NULL) {
dns.clear();
dns = ifc->getDnsservers().trimmed().split(" ");
- networkManager.ip4_setManualConfiguration(result["ifname"].toString(),
+ _networkManager.ip4_setManualConfiguration(result["ifname"].toString(),
ifc->getIpAddress(),
ifc->getNetmask(),
ifc->getBroadcast(),
ifc->getGateway(),
0,
AF_INET,
- true,
"/etc/",
dns);
}
@@ -145,7 +152,7 @@ QList<QString> NetworkDiscovery::getListOfNetworkInterfaces() {
continue;
}
if(!(nI.flags() & QNetworkInterface::IsUp)) {
- networkManager.bringInterfaceUpDown(nI.humanReadableName(), true);
+ _networkManager.bringInterfaceUP(nI.humanReadableName());
}
if (!checkCarrierState(nI.humanReadableName())) {
continue;
@@ -222,18 +229,18 @@ void NetworkDiscovery::runDHCPCD(QList<QString> &interfaces) {
void NetworkDiscovery::runDHCPCD(QString interface) {
emit updateStatusLabel(interface, "start DHCP");
- dhcpcdArguments.append(interface);
+ _dhcpcdArguments.append(interface);
QProcess * p = new QProcess(this);
- qDebug() << dhcpcdArguments;
+ qDebug() << _dhcpcdArguments;
- clientProcessToIfNameMap.insert(p, interface);
- qDebug() << clientProcessToIfNameMap;
- p->start(pathToDhcpcdExe, dhcpcdArguments);
+ _clientProcessToIfNameMap.insert(p, interface);
+ qDebug() << _clientProcessToIfNameMap;
+ p->start(_pathToDhcpcdExe, _dhcpcdArguments);
connect(p, SIGNAL(started()), this, SLOT(handleProcessStarted()));
connect(p, SIGNAL(finished(int, QProcess::ExitStatus)), this,
SLOT(handleProcessFinished(int, QProcess::ExitStatus)));
- dhcpcdArguments.removeLast();
+ _dhcpcdArguments.removeLast();
}
bool NetworkDiscovery::checkConnectivity(QString ifName) {
@@ -247,7 +254,7 @@ bool NetworkDiscovery::checkConnectivity(QString ifName) {
_ifcMap.insert(ifName, ifConf);
// replace default route
- qDebug() << networkManager.replaceDefaultRoute(ifName,
+ qDebug() << _networkManager.replaceDefaultRoute(ifName,
ifConf->getGateway(), 0, AF_INET);
if (checkConnectivityViaTcp(_serverIp)) {
@@ -289,11 +296,11 @@ void NetworkDiscovery::handleNewConnection() {
qDebug() << "New Connection arrived";
/*QLocalSocket **/
- client = server ->nextPendingConnection();
- clients.insert(client, client);
- connect(client, SIGNAL(disconnected()), this,
+ _client = _server ->nextPendingConnection();
+ _clients.insert(_client, _client);
+ connect(_client, SIGNAL(disconnected()), this,
SLOT(handleClientDisconnect()));
- connect(client, SIGNAL(readyRead()), this, SLOT(handleNewInput()));
+ connect(_client, SIGNAL(readyRead()), this, SLOT(handleNewInput()));
}
/**
@@ -302,7 +309,7 @@ void NetworkDiscovery::handleNewConnection() {
void NetworkDiscovery::handleClientDisconnect() {
QLocalSocket* socket = qobject_cast<QLocalSocket *> (QObject::sender());
- QLocalSocket * client = clients.value(socket);
+ QLocalSocket * client = _clients.value(socket);
qDebug() << "disconnect client";
handleNewInput(client);
@@ -336,7 +343,7 @@ void NetworkDiscovery::handleNewInput(QLocalSocket * client) {
void NetworkDiscovery::handleNewInput() {
QLocalSocket* socket = qobject_cast<QLocalSocket *> (QObject::sender());
- QLocalSocket * client = clients.value(socket);
+ QLocalSocket * client = _clients.value(socket);
QString data(client->read(DHCP_MESSAGE_SIZE));
client->write("ACK", ACK_SIZE);
client->waitForBytesWritten();
@@ -380,9 +387,9 @@ void NetworkDiscovery::handleNewInputLine(QLocalSocket * client, QString data) {
int sst = s_subState.trimmed().toInt();
//qDebug() << logMsg;
- if (ifNameToClient.size() < numberOfProcesses && !ifNameToClient.contains(
+ if (_ifNameToClient.size() < _numberOfProcesses && !_ifNameToClient.contains(
interface)) {
- ifNameToClient.insert(interface, client);
+ _ifNameToClient.insert(interface, client);
}
switch (st) {
@@ -505,7 +512,7 @@ void NetworkDiscovery::handleProcessFinished(int exitCode,
QProcess::ExitStatus exitStatus) {
QProcess* p = qobject_cast<QProcess *> (QObject::sender());
- QString ifName = clientProcessToIfNameMap.value(p, "ifName");
+ QString ifName = _clientProcessToIfNameMap.value(p, "ifName");
if (!_blocked) { //_blocked becomes true, if _userChoice is false and we found a usable interface
if (ifName.compare("ifName") == 0) {
qDebug()
@@ -524,12 +531,12 @@ void NetworkDiscovery::handleProcessFinished(int exitCode,
}
}
if (!_blocked) { //_blocked becomes true, if _userChoice is false and we found a usable interface
- QLocalSocket *client = ifNameToClient.value(ifName, 0);
+ QLocalSocket *client = _ifNameToClient.value(ifName, 0);
if (client != 0) {
handleNewInput(client);
}
- numberOfProcesses = numberOfProcesses - 1;
- if (numberOfProcesses <= 0 && _userChoice) {
+ _numberOfProcesses = _numberOfProcesses - 1;
+ if (_numberOfProcesses <= 0 && _userChoice) {
emit allProcessesFinished();
}
}
@@ -546,7 +553,7 @@ void NetworkDiscovery::handleProcessFinished(int exitCode,
*/
void NetworkDiscovery::handleProcessStarted() {
QProcess* p = qobject_cast<QProcess *> (QObject::sender());
- QString ifName = clientProcessToIfNameMap.value(p, "ifName");
+ QString ifName = _clientProcessToIfNameMap.value(p, "ifName");
qDebug() << "process started for interface:" << ifName;
}