/** * @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" 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)) { qDebug() << _tag << "couldn't open file:" << pathToConfig; return false; } qDebug() << _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 { qDebug() << _tag << "read unknown name" << name << values; } } } else { qDebug() << _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; }