summaryrefslogtreecommitdiff
authorzecke <zecke>2004-12-20 22:29:08 (UTC)
committer zecke <zecke>2004-12-20 22:29:08 (UTC)
commitfd530016abd98bb6164c1ac962de0ca11d82e407 (patch) (unidiff)
treeed352181c3c490ddf300665699a096a494028ef6
parent89b3fd61bdd13e62ff64bd7ab0b15c10a964b867 (diff)
downloadopie-fd530016abd98bb6164c1ac962de0ca11d82e407.zip
opie-fd530016abd98bb6164c1ac962de0ca11d82e407.tar.gz
opie-fd530016abd98bb6164c1ac962de0ca11d82e407.tar.bz2
Restore Changes:
Call ifup/ifdown INTERFACE instead of ifconfig as requested by Chris Larson
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/networksettings/interfaces/interface.cpp46
-rw-r--r--noncore/settings/networksettings/interfaces/interface.h1
2 files changed, 42 insertions, 5 deletions
diff --git a/noncore/settings/networksettings/interfaces/interface.cpp b/noncore/settings/networksettings/interfaces/interface.cpp
index 46f3e19..44c0264 100644
--- a/noncore/settings/networksettings/interfaces/interface.cpp
+++ b/noncore/settings/networksettings/interfaces/interface.cpp
@@ -7,5 +7,10 @@
7 7
8#include <opie2/odebug.h> 8#include <opie2/odebug.h>
9#include <opie2/oprocess.h>
10#include <opie2/owait.h>
9 11
12#include <qpe/global.h>
13
14#include <qapplication.h>
10#include <qdatetime.h> 15#include <qdatetime.h>
11#include <qfile.h> 16#include <qfile.h>
@@ -15,4 +20,6 @@
15 20
16#define IFCONFIG "/sbin/ifconfig" 21#define IFCONFIG "/sbin/ifconfig"
22#define IF_UP "/sbin/ifup"
23#define IF_DOWN "/sbin/ifdown"
17#define DHCP_INFO_DIR "/etc/dhcpc" 24#define DHCP_INFO_DIR "/etc/dhcpc"
18 25
@@ -67,4 +74,27 @@ void Interface::setModuleOwner(Module *owner){
67 74
68 75
76bool Interface::callProcess( const QStringList& names ) {
77 Opie::Ui::OWait *owait = new Opie::Ui::OWait();
78 Global::statusMessage( tr( "Restarting interface" ) );
79
80 owait->show();
81 qApp->processEvents();
82
83 Opie::Core::OProcess restart;
84 restart << names;
85 if ( !restart.start(Opie::Core::OProcess::Block,
86 Opie::Core::OProcess::NoCommunication ) ) {
87 owarn << "unable to spawn command" << names << oendl;
88 return false;
89 }
90 owait->hide();
91 delete owait;
92
93 if ( restart.normalExit() || restart.exitStatus() != 0 )
94 return false;
95
96 return true;
97}
98
69/** 99/**
70 * Try to start the interface. 100 * Try to start the interface.
@@ -77,7 +107,9 @@ void Interface::start(){
77 } 107 }
78 108
79 int ret = system(QString("%1 %2 up").arg(IFCONFIG).arg(this->name()).latin1()); 109 /* prepare command and call it */
80 // See if it was successful... 110 QStringList lst;
81 if(ret != 0){ 111 lst << IF_UP;
112 lst << name();
113 if ( !callProcess(lst) ) {
82 emit (updateMessage("Starting interface failed")); 114 emit (updateMessage("Starting interface failed"));
83 return; 115 return;
@@ -99,6 +131,10 @@ void Interface::stop(){
99 } 131 }
100 132
101 int ret = system(QString("%1 %2 down").arg(IFCONFIG).arg(this->name()).latin1()); 133 QStringList lst;
102 if(ret != 0){ 134 lst << IF_DOWN;
135 lst << name();
136
137 /* prepare command and call it */
138 if( !callProcess( lst ) ){
103 emit (updateMessage("Stopping interface failed")); 139 emit (updateMessage("Stopping interface failed"));
104 return; 140 return;
diff --git a/noncore/settings/networksettings/interfaces/interface.h b/noncore/settings/networksettings/interfaces/interface.h
index 83ab088..e9ab0c2 100644
--- a/noncore/settings/networksettings/interfaces/interface.h
+++ b/noncore/settings/networksettings/interfaces/interface.h
@@ -56,4 +56,5 @@ public:
56 56
57protected: 57protected:
58 bool callProcess( const QStringList& name );
58 // Interface information 59 // Interface information
59 QString hardwareName; 60 QString hardwareName;