summaryrefslogtreecommitdiff
path: root/noncore/applets/wirelessapplet/networkinfo.cpp
authormickeyl <mickeyl>2002-08-14 23:55:37 (UTC)
committer mickeyl <mickeyl>2002-08-14 23:55:37 (UTC)
commitf4fb50020242275a11f4b185ff843517e0862f9b (patch) (unidiff)
tree92a0fb73206a86faea9604edcc7666b968512389 /noncore/applets/wirelessapplet/networkinfo.cpp
parent8951b45cfd2c0063e66d947346535f1af319d2a9 (diff)
downloadopie-f4fb50020242275a11f4b185ff843517e0862f9b.zip
opie-f4fb50020242275a11f4b185ff843517e0862f9b.tar.gz
opie-f4fb50020242275a11f4b185ff843517e0862f9b.tar.bz2
Fixed damn bug causing wirelessapplet to hang Opie if /proc/net/wireless is not found (i.e. SHARP ROM or Desktop PC)
Diffstat (limited to 'noncore/applets/wirelessapplet/networkinfo.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/applets/wirelessapplet/networkinfo.cpp28
1 files changed, 16 insertions, 12 deletions
diff --git a/noncore/applets/wirelessapplet/networkinfo.cpp b/noncore/applets/wirelessapplet/networkinfo.cpp
index dc5c3be..22d7d83 100644
--- a/noncore/applets/wirelessapplet/networkinfo.cpp
+++ b/noncore/applets/wirelessapplet/networkinfo.cpp
@@ -169,18 +169,20 @@ void MWirelessNetworkInterface::updateStatistics()
169 // gather link quality from /proc/net/wireless 169 // gather link quality from /proc/net/wireless
170 170
171 char c; 171 char c;
172 QString status; 172 QString status;
173 QString name; 173 QString name;
174 QFile wfile( PROCNETWIRELESS ); 174 QFile wfile( PROCNETWIRELESS );
175 wfile.open( IO_ReadOnly ); 175 bool hasFile = wfile.open( IO_ReadOnly );
176 QTextStream wstream( &wfile ); 176 QTextStream wstream( &wfile );
177 wstream.readLine(); // skip the first two lines 177 if ( hasFile )
178 wstream.readLine(); // because they only contain headers 178 {
179 179 wstream.readLine(); // skip the first two lines
180 if ( wstream.atEnd() ) 180 wstream.readLine(); // because they only contain headers
181 }
182 if ( ( !hasFile ) || ( wstream.atEnd() ) )
181 { 183 {
182 qDebug( "WIFIAPPLET: D'oh! Someone removed the card..." ); 184 qDebug( "WIFIAPPLET: D'oh! Someone removed the card..." );
183 quality = -1; 185 quality = -1;
184 signal = IW_LOWER; 186 signal = IW_LOWER;
185 noise = IW_LOWER; 187 noise = IW_LOWER;
186 return; 188 return;
@@ -199,34 +201,34 @@ void MWirelessNetworkInterface::updateStatistics()
199//--------------------------------------------------------------------------- 201//---------------------------------------------------------------------------
200// class Network 202// class Network
201// 203//
202 204
203MNetwork::MNetwork() 205MNetwork::MNetwork()
204{ 206{
205 qDebug( "MNetwork::MNetwork()" ); 207 //qDebug( "MNetwork::MNetwork()" );
206 procfile = "/proc/net/dev"; 208 procfile = PROCNETDEV;
207} 209}
208 210
209MNetwork::~MNetwork() 211MNetwork::~MNetwork()
210{ 212{
211 qDebug( "MNetwork::~MNetwork()" ); 213 //qDebug( "MNetwork::~MNetwork()" );
212} 214}
213 215
214//--------------------------------------------------------------------------- 216//---------------------------------------------------------------------------
215// class WirelessNetwork 217// class WirelessNetwork
216// 218//
217 219
218MWirelessNetwork::MWirelessNetwork() 220MWirelessNetwork::MWirelessNetwork()
219{ 221{
220 qDebug( "MWirelessNetwork::MWirelessNetwork()" ); 222 //qDebug( "MWirelessNetwork::MWirelessNetwork()" );
221 procfile = "/proc/net/wireless"; 223 procfile = PROCNETWIRELESS;
222} 224}
223 225
224MWirelessNetwork::~MWirelessNetwork() 226MWirelessNetwork::~MWirelessNetwork()
225{ 227{
226 qDebug( "MWirelessNetwork::~MWirelessNetwork()" ); 228 //qDebug( "MWirelessNetwork::~MWirelessNetwork()" );
227} 229}
228 230
229MNetworkInterface* MWirelessNetwork::createInterface( const char* n ) const 231MNetworkInterface* MWirelessNetwork::createInterface( const char* n ) const
230{ 232{
231 return new MWirelessNetworkInterface( n ); 233 return new MWirelessNetworkInterface( n );
232} 234}
@@ -244,13 +246,15 @@ MNetworkInterface* MNetwork::getFirstInterface()
244 246
245void MNetwork::enumerateInterfaces() 247void MNetwork::enumerateInterfaces()
246{ 248{
247 interfaces.clear(); 249 interfaces.clear();
248 QString str; 250 QString str;
249 QFile f( procfile ); 251 QFile f( procfile );
250 f.open( IO_ReadOnly ); 252 bool hasFile = f.open( IO_ReadOnly );
253 if ( !hasFile )
254 return;
251 QTextStream s( &f ); 255 QTextStream s( &f );
252 s.readLine(); 256 s.readLine();
253 s.readLine(); 257 s.readLine();
254 while ( !s.atEnd() ) 258 while ( !s.atEnd() )
255 { 259 {
256 s >> str; 260 s >> str;