summaryrefslogblamecommitdiffstats
path: root/src/fbgui/interfaceconfiguration.cpp
blob: d9d72df88a233f1d77263d05e62929610622fee6 (plain) (tree)
1
2
3
4
5
6
7
8
9



                                                     
  

                                                                                     
  
   


 

                                   






                                                           





















                                                                        
                                                                                                 

                                     
                                                                      



































                                                                                            
                                                                                                         


                         
                                                                                         


























































                                                 
/**
 * @class interfaceconfiguration
 *
 * @brief reads and stores a interface configuration.
 *
 * reads and stores a interface configuration.
 * the config file has already to exist. It is created by the cdhcpcd client process.
 *
 */



#include "interfaceconfiguration.h"

#include <log4cxx/logger.h>
#include "qlog4cxx.h"

using namespace log4cxx;
using namespace log4cxx::helpers;
LoggerPtr ndifLogger(Logger::getLogger("fbgui.nd.ifconf"));

interfaceconfiguration::interfaceconfiguration() {
	_tag = "[nd:InterfaceConfiguration]";
}

interfaceconfiguration::~interfaceconfiguration() {
	// TODO Auto-generated destructor stub
}

/**
 * This method reads the configuration values out of a file.
 *
 * This method reads the configuration values out of a file.
 * The file has to be created before by the customdhcpcd QProcess.
 * (Overwrites the old values if they are already present.)
 *
 * @param pathToConfig
 *   contains the path to the configuration file.
 */
bool interfaceconfiguration::readConfigOutOfFile(QString pathToConfig) {
	QFile file(pathToConfig);
	if (file.exists()) {
		if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
			LOG4CXX_DEBUG(ndifLogger, _tag << "couldn't open file:" << pathToConfig);
			return false;
		}
		LOG4CXX_DEBUG(ndifLogger, _tag << "read config file");
		while (!file.atEnd()) {
			QString line(file.readLine());
			QStringList splitedLine = line.split("=");
			QString name = splitedLine.first().trimmed();
			splitedLine.removeFirst();
			QString values = splitedLine.first().trimmed();
			values.remove(QChar('\''));

			if (name.compare("IPADDR") == 0) {
				this->ipAddress = values;
			} else if (name.compare("NETMASK") == 0) {
				this->netmask = values;
			} else if (name.compare("NETWORK") == 0) {
				this->network = values;
			} else if (name.compare("BROADCAST") == 0) {
				this->broadcast = values;
			} else if (name.compare("ROUTES") == 0) {
				this->routes = values;
			} else if (name.compare("GATEWAYS") == 0) {
				this->gateways = values;
				this->gateway = this->gateways.split(" ").first().trimmed();
			} else if (name.compare("HOSTNAME") == 0) {
				this->hostname = values;
			} else if (name.compare("DNSSEARCH") == 0) {
				this->dnssearch = values;
			} else if (name.compare("DNSSERVERS") == 0) {
				this->dnsservers = values;
			} else if (name.compare("DHCPSID") == 0) {
				this->dhcpsid = values;
			} else if (name.compare("INTERFACE") == 0) {
				this->interface = values;
			} else if (name.compare("CLIENTID") == 0) {
				this->clientid = values;
			} else if (name.compare("DHCPCHADDR") == 0) {
				this->dhcpchaddr = values;
			} else {
				LOG4CXX_DEBUG(ndifLogger, _tag << "read unknown name" << name << values);
			}
		}
	} else {
		LOG4CXX_DEBUG(ndifLogger, _tag << "file doesn't exist:" << pathToConfig);
		return false;
	}
	return true;
}

QString interfaceconfiguration::getBroadcast() {
	return broadcast;
}

QString interfaceconfiguration::getClientid() {
	return clientid;
}

QString interfaceconfiguration::getDhcpchaddr() {
	return dhcpchaddr;
}

QString interfaceconfiguration::getDhcpsid() {
	return dhcpsid;
}
QString interfaceconfiguration::getDnssearch() {
	return dnssearch;
}

QString interfaceconfiguration::getDnsservers() {
	return dnsservers;
}

QString interfaceconfiguration::getGateways() {
	return gateways;
}

QString interfaceconfiguration::getGateway() {
	return gateway;
}

QString interfaceconfiguration::getHostname() {
	return hostname;
}

QString interfaceconfiguration::getInterface() {
	return interface;
}

QString interfaceconfiguration::getIpAddress() {
	return ipAddress;
}

QString interfaceconfiguration::getNetmask() {
	return netmask;
}

QString interfaceconfiguration::getNetwork() {
	return network;
}

QString interfaceconfiguration::getRoutes() {
	return routes;
}