Diffstat (limited to 'noncore/net/networksetup/interfaces.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/net/networksetup/interfaces.cpp | 42 |
1 files changed, 41 insertions, 1 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 | */ | ||
174 | bool 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,14 +427,28 @@ 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)){ |
430 | uint point = line.find(option); | ||
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){ | ||
404 | if(found == true){ | 444 | if(found == true){ |
405 | qDebug(QString("Interfaces: Found multiple stanza's for search: %1 %2").arg(stanza).arg(option).latin1()); | 445 | qDebug(QString("Interfaces: Found multiple stanza's for search: %1 %2").arg(stanza).arg(option).latin1()); |
406 | } | 446 | } |
407 | qDebug("Found"); | ||
408 | found = true; | 447 | found = true; |
409 | iterator = it; | 448 | iterator = it; |
410 | } | 449 | } |
411 | } | 450 | } |
451 | } | ||
412 | return found; | 452 | return found; |
413 | } | 453 | } |
414 | 454 | ||