summaryrefslogtreecommitdiff
path: root/noncore/net/networksetup/interfaces.cpp
Unidiff
Diffstat (limited to 'noncore/net/networksetup/interfaces.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/networksetup/interfaces.cpp50
1 files changed, 45 insertions, 5 deletions
diff --git a/noncore/net/networksetup/interfaces.cpp b/noncore/net/networksetup/interfaces.cpp
index eef42df..0927258 100644
--- a/noncore/net/networksetup/interfaces.cpp
+++ b/noncore/net/networksetup/interfaces.cpp
@@ -167,6 +167,32 @@ bool Interfaces::addInterface(QString interface, QString family, QString method)
167} 167}
168 168
169/** 169/**
170 * Copies interface with name interface to name newInterface
171 * @param newInterface name of the new interface.
172 * @return bool true if successfull
173 */
174bool Interfaces::copyInterface(QString interface, QString newInterface){
175 if(!setInterface(interface)) return false;
176
177 QStringList::Iterator it = currentIface;
178 it++;
179
180 bool error;
181 addInterface(newInterface, getInterfaceFamily(error), getInterfaceMethod(error));
182 if(!setInterface(newInterface)) return false;
183 QStringList::Iterator newIface = currentIface;
184 newIface++;
185
186 for ( it; it != interfaces.end(); ++it ){
187 if(((*it).contains(IFACE) || (*it).contains(MAPPING) || (*it).contains(AUTO)))
188 break;
189 newIface = interfaces.insert(newIface, *it);
190 }
191
192 return true;
193}
194
195/**
170 * Remove the currently selected interface and all of its options. 196 * Remove the currently selected interface and all of its options.
171 * @return bool if successfull or not. 197 * @return bool if successfull or not.
172 */ 198 */
@@ -401,12 +427,26 @@ bool Interfaces::setStanza(QString stanza, QString option, QStringList::Iterator
401 for ( QStringList::Iterator it = interfaces.begin(); it != interfaces.end(); ++it ) { 427 for ( QStringList::Iterator it = interfaces.begin(); it != interfaces.end(); ++it ) {
402 QString line = (*it).simplifyWhiteSpace(); 428 QString line = (*it).simplifyWhiteSpace();
403 if(line.contains(stanza) && line.contains(option)){ 429 if(line.contains(stanza) && line.contains(option)){
404 if(found == true){ 430 uint point = line.find(option);
405 qDebug(QString("Interfaces: Found multiple stanza's for search: %1 %2").arg(stanza).arg(option).latin1()); 431 bool valid = true;
432 if(point > 0){
433 // There are more chars in the line. check +1
434 if(line.at(point-1) != ' ')
435 valid = false;
436 }
437 point += option.length();
438 if(point < line.length()-1){
439 // There are more chars in the line. check -1
440 if(line.at(point) != ' ')
441 valid = false;
442 }
443 if(valid){
444 if(found == true){
445 qDebug(QString("Interfaces: Found multiple stanza's for search: %1 %2").arg(stanza).arg(option).latin1());
446 }
447 found = true;
448 iterator = it;
406 } 449 }
407 qDebug("Found");
408 found = true;
409 iterator = it;
410 } 450 }
411 } 451 }
412 return found; 452 return found;