/** * @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 #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; }