author | kergoth <kergoth> | 2003-04-15 00:40:18 (UTC) |
---|---|---|
committer | kergoth <kergoth> | 2003-04-15 00:40:18 (UTC) |
commit | 414e71d6189ffdeb07dcca8225ecf69331d0023c (patch) (side-by-side diff) | |
tree | 7f24b2508735537171aa308c20d499b696c0151a | |
parent | 54c3c91b776f277fdcf2e78621a28e98cc55ab5b (diff) | |
download | opie-414e71d6189ffdeb07dcca8225ecf69331d0023c.zip opie-414e71d6189ffdeb07dcca8225ecf69331d0023c.tar.gz opie-414e71d6189ffdeb07dcca8225ecf69331d0023c.tar.bz2 |
1) When selecting dhcp, remove the static options, since we're no longer
removing all options.
2) Restart the network interface when saveChanges() is called.
3) Use OWait and a status message to give feedback to the user during
the interface restart.
-rw-r--r-- | noncore/settings/networksettings/interfaces/interfacesetupimp.cpp | 57 |
1 files changed, 52 insertions, 5 deletions
diff --git a/noncore/settings/networksettings/interfaces/interfacesetupimp.cpp b/noncore/settings/networksettings/interfaces/interfacesetupimp.cpp index fc65c5f..8d78828 100644 --- a/noncore/settings/networksettings/interfaces/interfacesetupimp.cpp +++ b/noncore/settings/networksettings/interfaces/interfacesetupimp.cpp @@ -11,2 +11,10 @@ +#include <opie/oprocess.h> + +#ifdef QWS +#include <opie/owait.h> +#include <qpe/global.h> +#include <qapplication.h> +#endif + #define DNSSCRIPT "changedns" @@ -36,5 +44,37 @@ InterfaceSetupImp::~InterfaceSetupImp(){ bool InterfaceSetupImp::saveChanges(){ + bool error; + QString iface = interfaces->getInterfaceName(error); if(!saveSettings()) return false; + + qWarning("restarting interface %s\n", iface.latin1()); interfaces->write(); + + QString ifup; + ifup += "ifdown "; + ifup += iface; + ifup += "; ifup "; + ifup += iface; + ifup += ";"; + + OProcess restart; + restart << "sh"; + restart << "-c"; + restart << ifup; + + OWait *owait = new OWait(); + Global::statusMessage( tr( "Restarting interface" ) ); + + owait->show(); + qApp->processEvents(); + + if (!restart.start(OProcess::Block, OProcess::NoCommunication) ) { + qWarning("unstable to spawn ifdown/ifup"); + } + + owait->hide(); + delete owait; + + interface->refresh(); + return true; @@ -62,8 +102,11 @@ bool InterfaceSetupImp::saveSettings(){ } - //interfaces.removeAllInterfaceOptions(); - // DHCP - if(dhcpCheckBox->isChecked()) + if(dhcpCheckBox->isChecked()) { interfaces->setInterfaceMethod(INTERFACES_METHOD_DHCP); - else{ + interfaces->removeInterfaceOption("address"); + interfaces->removeInterfaceOption("netmask"); + interfaces->removeInterfaceOption("gateway"); + interfaces->removeInterfaceOption("up "DNSSCRIPT" -a "); + interfaces->removeInterfaceOption("down "DNSSCRIPT" -r "); + } else{ interfaces->setInterfaceMethod("static"); @@ -98,3 +141,3 @@ void InterfaceSetupImp::setProfile(const QString &profile){ */ - + QString newInterfaceName = interface->getInterfaceName(); @@ -145,2 +188,6 @@ void InterfaceSetupImp::setProfile(const QString &profile){ gatewayEdit->setText(interfaces->getInterfaceOption("gateway", error)); + + qWarning("InterfaceSetupImp::setProfile(%s)\n", profile.latin1()); + qWarning("InterfaceSetupImp::setProfile: iface is %s\n", interfaces->getInterfaceName(error).latin1()); + } |