summaryrefslogblamecommitdiffstats
path: root/src/fbgui/interfaceconfiguration.cpp
blob: 37dd3f9202475c9e722a05cfbb16c74bd604b4e0 (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() {
}

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, "Couldn't open file:" << pathToConfig);
			return false;
		}
		LOG4CXX_DEBUG(ndifLogger, "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, "read unknown name" << name << values);
			}
		}
	} else {
		LOG4CXX_DEBUG(ndifLogger, "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;
}