author | kergoth <kergoth> | 2002-10-19 20:58:09 (UTC) |
---|---|---|
committer | kergoth <kergoth> | 2002-10-19 20:58:09 (UTC) |
commit | d7449e1e0070a068c5e83366cb75b64142b71b89 (patch) (side-by-side diff) | |
tree | 0049f8b29e274c2b973ac74ce8f8a93b8bc38a77 | |
parent | 8c9e2e893540c0a405637f10ac2f656df69991a7 (diff) | |
download | opie-d7449e1e0070a068c5e83366cb75b64142b71b89.zip opie-d7449e1e0070a068c5e83366cb75b64142b71b89.tar.gz opie-d7449e1e0070a068c5e83366cb75b64142b71b89.tar.bz2 |
Cleaned up Config handling a bit.
-rw-r--r-- | noncore/net/networksetup/wlan/wlanimp.cpp | 83 | ||||
-rw-r--r-- | noncore/net/networksetup/wlan/wlanimp.h | 10 | ||||
-rw-r--r-- | noncore/net/networksetup/wlan/wlanmodule.cpp | 3 | ||||
-rw-r--r-- | noncore/settings/networksettings/wlan/wlanimp.cpp | 83 | ||||
-rw-r--r-- | noncore/settings/networksettings/wlan/wlanimp.h | 10 | ||||
-rw-r--r-- | noncore/settings/networksettings/wlan/wlanmodule.cpp | 3 |
6 files changed, 96 insertions, 96 deletions
diff --git a/noncore/net/networksetup/wlan/wlanimp.cpp b/noncore/net/networksetup/wlan/wlanimp.cpp index 517604f..3b0e0b7 100644 --- a/noncore/net/networksetup/wlan/wlanimp.cpp +++ b/noncore/net/networksetup/wlan/wlanimp.cpp @@ -1,234 +1,235 @@ #include "wlanimp.h" /* Config class */ #include <qpe/config.h> /* Global namespace */ #include <qpe/global.h> /* system() */ #include <stdlib.h> #include <qfile.h> #include <qdir.h> #include <qtextstream.h> #include <qmessagebox.h> #include <qlineedit.h> #include <qspinbox.h> #include <qradiobutton.h> #include <qcheckbox.h> #include <qregexp.h> -WLANImp::WLANImp( Config &cfg, QWidget* parent, const char* name):WLAN(parent, name),config(cfg){ +WLANImp::WLANImp( QWidget* parent, const char* name):WLAN(parent, name){ + config = new Config("wireless"); readConfig(); } void WLANImp::readConfig() { qWarning( "WLANImp::readConfig() called." ); - config.setGroup( "Properties" ); - QString ssid = config.readEntry( "SSID", "any" ); + config->setGroup( "Properties" ); + QString ssid = config->readEntry( "SSID", "any" ); if( ssid == "any" || ssid == "ANY" ){ essNon->setChecked( true ); } else { essSpecific->setChecked( true ); essSpecificLineEdit->setText( ssid ); } - QString mode = config.readEntry( "Mode", "Managed" ); + QString mode = config->readEntry( "Mode", "Managed" ); if( mode == "adhoc" ) { network802->setChecked( true ); } else { networkInfrastructure->setChecked( true ); } - networkChannel->setValue( config.readNumEntry( "CHANNEL", 1 ) ); -// config.readEntry( "RATE", "auto" ); - config.readEntry( "dot11PrivacyInvoked" ) == "true" ? wepEnabled->setChecked( true ) : wepEnabled->setChecked( false ); - config.readEntry( "AuthType", "opensystem" ); - config.readEntry( "PRIV_KEY128", "false" ) == "false" ? key40->setChecked( true ) : key128->setChecked( true ); - int defaultkey = config.readNumEntry( "dot11WEPDefaultKeyID", 0 ); + networkChannel->setValue( config->readNumEntry( "CHANNEL", 1 ) ); +// config->readEntry( "RATE", "auto" ); + config->readEntry( "dot11PrivacyInvoked" ) == "true" ? wepEnabled->setChecked( true ) : wepEnabled->setChecked( false ); + config->readEntry( "AuthType", "opensystem" ); + config->readEntry( "PRIV_KEY128", "false" ) == "false" ? key40->setChecked( true ) : key128->setChecked( true ); + int defaultkey = config->readNumEntry( "dot11WEPDefaultKeyID", 0 ); switch( defaultkey ){ case 0: keyRadio0->setChecked( true ); break; case 1: keyRadio1->setChecked( true ); break; case 2: keyRadio2->setChecked( true ); break; case 3: keyRadio3->setChecked( true ); break; } - keyLineEdit0->setText(config.readEntry( "dot11WEPDefaultKey0" )); - keyLineEdit1->setText(config.readEntry( "dot11WEPDefaultKey1" )); - keyLineEdit2->setText(config.readEntry( "dot11WEPDefaultKey2" )); - keyLineEdit3->setText(config.readEntry( "dot11WEPDefaultKey3" )); + keyLineEdit0->setText(config->readEntry( "dot11WEPDefaultKey0" )); + keyLineEdit1->setText(config->readEntry( "dot11WEPDefaultKey1" )); + keyLineEdit2->setText(config->readEntry( "dot11WEPDefaultKey2" )); + keyLineEdit3->setText(config->readEntry( "dot11WEPDefaultKey3" )); return; } bool WLANImp::writeConfig() { qWarning( "WLANImp::writeConfig() called." ); - config.setGroup( "Properties" ); + config->setGroup( "Properties" ); if( essNon->isChecked() ) { - config.writeEntry( "SSID", "any" ); + config->writeEntry( "SSID", "any" ); } else { - config.writeEntry( "SSID", essSpecificLineEdit->text() ); + config->writeEntry( "SSID", essSpecificLineEdit->text() ); } if( networkInfrastructure->isChecked() ){ - config.writeEntry( "Mode", "Managed" ); + config->writeEntry( "Mode", "Managed" ); } else if( network802->isChecked() ){ - config.writeEntry( "Mode", "adhoc" ); + config->writeEntry( "Mode", "adhoc" ); } - config.writeEntry( "CHANNEL", networkChannel->value() ); -// config.readEntry( "RATE", "auto" ); - wepEnabled->isChecked() ? config.writeEntry( "dot11PrivacyInvoked", "true" ) : config.writeEntry( "dot11PrivacyInvoked", "false" ); - authOpen->isChecked() ? config.writeEntry( "AuthType", "opensystem" ) : config.writeEntry( "AuthType", "sharedkey" ); - key40->isChecked() ? config.writeEntry( "PRIV_KEY128", "false" ) : config.writeEntry( "PRIV_KEY128", "true" ); + config->writeEntry( "CHANNEL", networkChannel->value() ); +// config->readEntry( "RATE", "auto" ); + wepEnabled->isChecked() ? config->writeEntry( "dot11PrivacyInvoked", "true" ) : config->writeEntry( "dot11PrivacyInvoked", "false" ); + authOpen->isChecked() ? config->writeEntry( "AuthType", "opensystem" ) : config->writeEntry( "AuthType", "sharedkey" ); + key40->isChecked() ? config->writeEntry( "PRIV_KEY128", "false" ) : config->writeEntry( "PRIV_KEY128", "true" ); if( keyRadio0->isChecked() ){ - config.writeEntry( "dot11WEPDefaultKeyID", 0 ); + config->writeEntry( "dot11WEPDefaultKeyID", 0 ); } else if( keyRadio1->isChecked() ){ - config.writeEntry( "dot11WEPDefaultKeyID", 1 ); + config->writeEntry( "dot11WEPDefaultKeyID", 1 ); } else if( keyRadio2->isChecked() ){ - config.writeEntry( "dot11WEPDefaultKeyID", 2 ); + config->writeEntry( "dot11WEPDefaultKeyID", 2 ); } else if( keyRadio3->isChecked() ){ - config.writeEntry( "dot11WEPDefaultKeyID", 3 ); + config->writeEntry( "dot11WEPDefaultKeyID", 3 ); } - config.writeEntry( "dot11WEPDefaultKey0", keyLineEdit0->text() ); - config.writeEntry( "dot11WEPDefaultKey1", keyLineEdit1->text() ); - config.writeEntry( "dot11WEPDefaultKey2", keyLineEdit2->text() ); - config.writeEntry( "dot11WEPDefaultKey3", keyLineEdit3->text() ); - return writeWirelessOpts( config ); + config->writeEntry( "dot11WEPDefaultKey0", keyLineEdit0->text() ); + config->writeEntry( "dot11WEPDefaultKey1", keyLineEdit1->text() ); + config->writeEntry( "dot11WEPDefaultKey2", keyLineEdit2->text() ); + config->writeEntry( "dot11WEPDefaultKey3", keyLineEdit3->text() ); + return writeWirelessOpts( ); } /** */ void WLANImp::accept() { if ( writeConfig() ) QDialog::accept(); } void WLANImp::done ( int r ) { QDialog::done ( r ); close ( ); } -bool WLANImp::writeWirelessOpts( Config &config, QString scheme ) +bool WLANImp::writeWirelessOpts( QString scheme ) { qWarning( "WLANImp::writeWirelessOpts entered." ); QString prev = "/etc/pcmcia/wireless.opts"; QFile prevFile(prev); if ( !prevFile.open( IO_ReadOnly ) ) return false; QString tmp = "/etc/pcmcia/wireless.opts-qpe-new"; QFile tmpFile(tmp); if ( !tmpFile.open( IO_WriteOnly ) ) return false; bool retval = true; QTextStream in( &prevFile ); QTextStream out( &tmpFile ); - config.setGroup("Properties"); + config->setGroup("Properties"); QString line; bool found=false; bool done=false; while ( !in.atEnd() ) { QString line = in.readLine(); QString wline = line.simplifyWhiteSpace(); if ( !done ) { if ( found ) { // skip existing entry for this scheme, and write our own. if ( wline == ";;" ) { found = false; continue; } else { continue; } } else { if ( wline.left(scheme.length()+7) == scheme + ",*,*,*)" ) { found=true; continue; // skip this line } else if ( wline == "esac" || wline == "*,*,*,*)" ) { // end - add new entry // Not all fields have a GUI, but all are supported // in the letwork configuration files. static const char* txtfields[] = { 0 }; - QString readmode = config.readEntry( "Mode", "Managed" ); + QString readmode = config->readEntry( "Mode", "Managed" ); QString mode; if( readmode == "Managed" ){ mode = readmode; } else if( readmode == "adhoc" ){ mode = "Ad-Hoc"; } QString key; if( wepEnabled->isChecked() ){ - int defaultkey = config.readNumEntry( "dot11WEPDefaultKeyID", 0 ); + int defaultkey = config->readNumEntry( "dot11WEPDefaultKeyID", 0 ); switch( defaultkey ){ case 0: key += keyLineEdit0->text(); break; case 1: key += keyLineEdit1->text(); break; case 2: key += keyLineEdit2->text(); break; case 3: key += keyLineEdit3->text(); break; } - if( config.readEntry( "AuthType", "opensystem" ) == "opensystem") + if( config->readEntry( "AuthType", "opensystem" ) == "opensystem") key += " open"; } out << scheme << ",*,*,*)" << "\n" - << " ESSID=" << Global::shellQuote( config.readEntry( "SSID", "any" ) ) << "\n" + << " ESSID=" << Global::shellQuote( config->readEntry( "SSID", "any" ) ) << "\n" << " MODE=" << mode << "\n" << " KEY=" << Global::shellQuote( key ) << "\n" << " RATE=" << "auto" << "\n" ; if( mode != "Managed" ) - out << " CHANNEL=" << config.readNumEntry( "CHANNEL", 1 ) << "\n"; + out << " CHANNEL=" << config->readNumEntry( "CHANNEL", 1 ) << "\n"; const char** f = txtfields; while (*f) { - out << " " << *f << "=" << config.readEntry(*f,"") << "\n"; + out << " " << *f << "=" << config->readEntry(*f,"") << "\n"; ++f; } out << " ;;\n"; done = true; } } } out << line << "\n"; } prevFile.close(); tmpFile.close(); QString initpath; //system("cardctl suspend"); if( QDir("/etc/rc.d/init.d").exists() ){ initpath = "/etc/rc.d/init.d"; } else if( QDir("/etc/init.d").exists() ){ initpath = "/etc/init.d"; } if( initpath ) system(QString("%1/pcmcia stop").arg(initpath)); if( system( "mv " + tmp + " " + prev ) ) retval = false; //#ifdef USE_SCHEMES // if ( retval ) // SchemeChanger::changeScheme(scheme); //#endif //system("cardctl resume"); if( initpath ) system(QString("%1/pcmcia start").arg(initpath)); return retval; } diff --git a/noncore/net/networksetup/wlan/wlanimp.h b/noncore/net/networksetup/wlan/wlanimp.h index 8e355ce..79e931d 100644 --- a/noncore/net/networksetup/wlan/wlanimp.h +++ b/noncore/net/networksetup/wlan/wlanimp.h @@ -1,27 +1,27 @@ #ifndef WLANIMP_H #define WLANIMP_H #include "wlan.h" -class Config; +#include <qpe/config.h> class WLANImp : public WLAN { Q_OBJECT public: - WLANImp( Config& cfg, QWidget* parent = 0, const char* name = 0); + WLANImp( QWidget* parent = 0, const char* name = 0); protected: void accept(); void done ( int r ); private: void readConfig(); bool writeConfig(); - bool writeWirelessOpts( Config &cfg, QString scheme = "*" ); - bool writeWlanngOpts( Config &cfg, QString scheme = "*" ); - Config& config; + bool writeWirelessOpts( QString scheme = "*" ); + bool writeWlanngOpts( QString scheme = "*" ); + Config* config; }; #endif diff --git a/noncore/net/networksetup/wlan/wlanmodule.cpp b/noncore/net/networksetup/wlan/wlanmodule.cpp index f12e608..cbb520d 100644 --- a/noncore/net/networksetup/wlan/wlanmodule.cpp +++ b/noncore/net/networksetup/wlan/wlanmodule.cpp @@ -1,163 +1,162 @@ #include "wlanmodule.h" #include <qpe/config.h> #include "wlanimp.h" #include "info.h" #include <arpa/inet.h> #include <sys/socket.h> #include <linux/if_ether.h> #include <netinet/ip.h> #include <sys/ioctl.h> #include <linux/wireless.h> #include <unistd.h> #include <math.h> #include <errno.h> #include <string.h> #include <stdio.h> #include <stdlib.h> #include <qlabel.h> /** * Constructor, find all of the possible interfaces */ WLANModule::WLANModule() : Module() { // get output from iwconfig } /** * Change the current profile */ void WLANModule::setProfile(QString newProfile){ profile = newProfile; } /** * get the icon name for this device. * @param Interface* can be used in determining the icon. * @return QString the icon name (minus .png, .gif etc) */ QString WLANModule::getPixmapName(Interface* ){ return "wlan"; } /** * Check to see if the interface i is owned by this module. * @param Interface* interface to check against * @return bool true if i is owned by this module, false otherwise. */ bool WLANModule::isOwner(Interface *i){ if(i->getInterfaceName() == "eth0" || i->getInterfaceName() == "wlan0"){ i->setHardwareName("802.11b"); return true; } return false; } /** * Create, set tabWiget and return the WLANConfigure Module * @param tabWidget a pointer to the tab widget that this configure has. * @return QWidget* pointer to the tab widget in this modules configure. */ QWidget *WLANModule::configure(Interface *i, QTabWidget **tabWidget){ - Config *cfg = new Config("wireless config"); - WLANImp *wlanconfig = new WLANImp(*cfg); + WLANImp *wlanconfig = new WLANImp( ); (*tabWidget) = wlanconfig->tabWidget; return wlanconfig; } /** * Create, set tabWiget and return the Information Module * @param tabWidget a pointer to the tab widget that this information has. * @return QWidget* pointer to the tab widget in this modules info. */ QWidget *WLANModule::information(Interface *i, QTabWidget **tabWidget){ WlanInfo *info = new WlanInfo(0, "wireless info"); (*tabWidget) = info->tabWidget; struct ifreq ifr; struct sockaddr_in *sin = (struct sockaddr_in *) &ifr.ifr_addr; int fd = socket( AF_INET, SOCK_DGRAM, 0 ); const char* buffer[200]; struct iwreq iwr; memset( &iwr, 0, sizeof( iwr ) ); iwr.u.essid.pointer = (caddr_t) buffer; iwr.u.essid.length = IW_ESSID_MAX_SIZE; iwr.u.essid.flags = 0; // check if it is an IEEE 802.11 standard conform // wireless device by sending SIOCGIWESSID // which also gives back the Extended Service Set ID // (see IEEE 802.11 for more information) QString n = (i->getInterfaceName()); const char* iname = n.latin1(); strcpy( iwr.ifr_ifrn.ifrn_name, (const char *)iname ); int result = ioctl( fd, SIOCGIWESSID, &iwr ); if ( result == 0 ){ //hasWirelessExtensions = true; iwr.u.essid.pointer[(unsigned int) iwr.u.essid.length-1] = '\0'; info->essidLabel->setText(QString(iwr.u.essid.pointer)); } else return info; //info->essidLabel->setText("*** Unknown ***"); // Address of associated access-point result = ioctl( fd, SIOCGIWAP, &iwr ); if ( result == 0 ){ QString foo = foo.sprintf( "%.2X:%.2X:%.2X:%.2X:%.2X:%.2X", iwr.u.ap_addr.sa_data[0]&0xff, iwr.u.ap_addr.sa_data[1]&0xff, iwr.u.ap_addr.sa_data[2]&0xff, iwr.u.ap_addr.sa_data[3]&0xff, iwr.u.ap_addr.sa_data[4]&0xff, iwr.u.ap_addr.sa_data[5]&0xff ); info->apLabel->setText(foo); } else info->apLabel->setText("*** Unknown ***"); iwr.u.data.pointer = (caddr_t) buffer; iwr.u.data.length = IW_ESSID_MAX_SIZE; iwr.u.data.flags = 0; result = ioctl( fd, SIOCGIWNICKN, &iwr ); if ( result == 0 ){ iwr.u.data.pointer[(unsigned int) iwr.u.data.length-1] = '\0'; info->stationLabel->setText(iwr.u.data.pointer); } else info->stationLabel->setText("*** Unknown ***"); result = ioctl( fd, SIOCGIWMODE, &iwr ); if ( result == 0 ) info->modeLabel->setText( QString("%1").arg(iwr.u.mode == IW_MODE_ADHOC ? "Ad-Hoc" : "Managed")); else info->modeLabel->setText("*** Unknown ***"); result = ioctl( fd, SIOCGIWFREQ, &iwr ); if ( result == 0 ) info->freqLabel->setText(QString("%1").arg((double( iwr.u.freq.m ) * pow( 10, iwr.u.freq.e ) / 1000000000))); else info->freqLabel->setText("*** Unknown ***"); /* // gather link quality from /proc/net/wireless char c; QString status; QString name; QFile wfile( PROCNETWIRELESS ); bool hasFile = wfile.open( IO_ReadOnly ); QTextStream wstream( &wfile ); if ( hasFile ) { wstream.readLine(); // skip the first two lines wstream.readLine(); // because they only contain headers } if ( ( !hasFile ) || ( wstream.atEnd() ) ) { #ifdef MDEBUG qDebug( "WIFIAPPLET: D'oh! Someone removed the card..." ); diff --git a/noncore/settings/networksettings/wlan/wlanimp.cpp b/noncore/settings/networksettings/wlan/wlanimp.cpp index 517604f..3b0e0b7 100644 --- a/noncore/settings/networksettings/wlan/wlanimp.cpp +++ b/noncore/settings/networksettings/wlan/wlanimp.cpp @@ -1,234 +1,235 @@ #include "wlanimp.h" /* Config class */ #include <qpe/config.h> /* Global namespace */ #include <qpe/global.h> /* system() */ #include <stdlib.h> #include <qfile.h> #include <qdir.h> #include <qtextstream.h> #include <qmessagebox.h> #include <qlineedit.h> #include <qspinbox.h> #include <qradiobutton.h> #include <qcheckbox.h> #include <qregexp.h> -WLANImp::WLANImp( Config &cfg, QWidget* parent, const char* name):WLAN(parent, name),config(cfg){ +WLANImp::WLANImp( QWidget* parent, const char* name):WLAN(parent, name){ + config = new Config("wireless"); readConfig(); } void WLANImp::readConfig() { qWarning( "WLANImp::readConfig() called." ); - config.setGroup( "Properties" ); - QString ssid = config.readEntry( "SSID", "any" ); + config->setGroup( "Properties" ); + QString ssid = config->readEntry( "SSID", "any" ); if( ssid == "any" || ssid == "ANY" ){ essNon->setChecked( true ); } else { essSpecific->setChecked( true ); essSpecificLineEdit->setText( ssid ); } - QString mode = config.readEntry( "Mode", "Managed" ); + QString mode = config->readEntry( "Mode", "Managed" ); if( mode == "adhoc" ) { network802->setChecked( true ); } else { networkInfrastructure->setChecked( true ); } - networkChannel->setValue( config.readNumEntry( "CHANNEL", 1 ) ); -// config.readEntry( "RATE", "auto" ); - config.readEntry( "dot11PrivacyInvoked" ) == "true" ? wepEnabled->setChecked( true ) : wepEnabled->setChecked( false ); - config.readEntry( "AuthType", "opensystem" ); - config.readEntry( "PRIV_KEY128", "false" ) == "false" ? key40->setChecked( true ) : key128->setChecked( true ); - int defaultkey = config.readNumEntry( "dot11WEPDefaultKeyID", 0 ); + networkChannel->setValue( config->readNumEntry( "CHANNEL", 1 ) ); +// config->readEntry( "RATE", "auto" ); + config->readEntry( "dot11PrivacyInvoked" ) == "true" ? wepEnabled->setChecked( true ) : wepEnabled->setChecked( false ); + config->readEntry( "AuthType", "opensystem" ); + config->readEntry( "PRIV_KEY128", "false" ) == "false" ? key40->setChecked( true ) : key128->setChecked( true ); + int defaultkey = config->readNumEntry( "dot11WEPDefaultKeyID", 0 ); switch( defaultkey ){ case 0: keyRadio0->setChecked( true ); break; case 1: keyRadio1->setChecked( true ); break; case 2: keyRadio2->setChecked( true ); break; case 3: keyRadio3->setChecked( true ); break; } - keyLineEdit0->setText(config.readEntry( "dot11WEPDefaultKey0" )); - keyLineEdit1->setText(config.readEntry( "dot11WEPDefaultKey1" )); - keyLineEdit2->setText(config.readEntry( "dot11WEPDefaultKey2" )); - keyLineEdit3->setText(config.readEntry( "dot11WEPDefaultKey3" )); + keyLineEdit0->setText(config->readEntry( "dot11WEPDefaultKey0" )); + keyLineEdit1->setText(config->readEntry( "dot11WEPDefaultKey1" )); + keyLineEdit2->setText(config->readEntry( "dot11WEPDefaultKey2" )); + keyLineEdit3->setText(config->readEntry( "dot11WEPDefaultKey3" )); return; } bool WLANImp::writeConfig() { qWarning( "WLANImp::writeConfig() called." ); - config.setGroup( "Properties" ); + config->setGroup( "Properties" ); if( essNon->isChecked() ) { - config.writeEntry( "SSID", "any" ); + config->writeEntry( "SSID", "any" ); } else { - config.writeEntry( "SSID", essSpecificLineEdit->text() ); + config->writeEntry( "SSID", essSpecificLineEdit->text() ); } if( networkInfrastructure->isChecked() ){ - config.writeEntry( "Mode", "Managed" ); + config->writeEntry( "Mode", "Managed" ); } else if( network802->isChecked() ){ - config.writeEntry( "Mode", "adhoc" ); + config->writeEntry( "Mode", "adhoc" ); } - config.writeEntry( "CHANNEL", networkChannel->value() ); -// config.readEntry( "RATE", "auto" ); - wepEnabled->isChecked() ? config.writeEntry( "dot11PrivacyInvoked", "true" ) : config.writeEntry( "dot11PrivacyInvoked", "false" ); - authOpen->isChecked() ? config.writeEntry( "AuthType", "opensystem" ) : config.writeEntry( "AuthType", "sharedkey" ); - key40->isChecked() ? config.writeEntry( "PRIV_KEY128", "false" ) : config.writeEntry( "PRIV_KEY128", "true" ); + config->writeEntry( "CHANNEL", networkChannel->value() ); +// config->readEntry( "RATE", "auto" ); + wepEnabled->isChecked() ? config->writeEntry( "dot11PrivacyInvoked", "true" ) : config->writeEntry( "dot11PrivacyInvoked", "false" ); + authOpen->isChecked() ? config->writeEntry( "AuthType", "opensystem" ) : config->writeEntry( "AuthType", "sharedkey" ); + key40->isChecked() ? config->writeEntry( "PRIV_KEY128", "false" ) : config->writeEntry( "PRIV_KEY128", "true" ); if( keyRadio0->isChecked() ){ - config.writeEntry( "dot11WEPDefaultKeyID", 0 ); + config->writeEntry( "dot11WEPDefaultKeyID", 0 ); } else if( keyRadio1->isChecked() ){ - config.writeEntry( "dot11WEPDefaultKeyID", 1 ); + config->writeEntry( "dot11WEPDefaultKeyID", 1 ); } else if( keyRadio2->isChecked() ){ - config.writeEntry( "dot11WEPDefaultKeyID", 2 ); + config->writeEntry( "dot11WEPDefaultKeyID", 2 ); } else if( keyRadio3->isChecked() ){ - config.writeEntry( "dot11WEPDefaultKeyID", 3 ); + config->writeEntry( "dot11WEPDefaultKeyID", 3 ); } - config.writeEntry( "dot11WEPDefaultKey0", keyLineEdit0->text() ); - config.writeEntry( "dot11WEPDefaultKey1", keyLineEdit1->text() ); - config.writeEntry( "dot11WEPDefaultKey2", keyLineEdit2->text() ); - config.writeEntry( "dot11WEPDefaultKey3", keyLineEdit3->text() ); - return writeWirelessOpts( config ); + config->writeEntry( "dot11WEPDefaultKey0", keyLineEdit0->text() ); + config->writeEntry( "dot11WEPDefaultKey1", keyLineEdit1->text() ); + config->writeEntry( "dot11WEPDefaultKey2", keyLineEdit2->text() ); + config->writeEntry( "dot11WEPDefaultKey3", keyLineEdit3->text() ); + return writeWirelessOpts( ); } /** */ void WLANImp::accept() { if ( writeConfig() ) QDialog::accept(); } void WLANImp::done ( int r ) { QDialog::done ( r ); close ( ); } -bool WLANImp::writeWirelessOpts( Config &config, QString scheme ) +bool WLANImp::writeWirelessOpts( QString scheme ) { qWarning( "WLANImp::writeWirelessOpts entered." ); QString prev = "/etc/pcmcia/wireless.opts"; QFile prevFile(prev); if ( !prevFile.open( IO_ReadOnly ) ) return false; QString tmp = "/etc/pcmcia/wireless.opts-qpe-new"; QFile tmpFile(tmp); if ( !tmpFile.open( IO_WriteOnly ) ) return false; bool retval = true; QTextStream in( &prevFile ); QTextStream out( &tmpFile ); - config.setGroup("Properties"); + config->setGroup("Properties"); QString line; bool found=false; bool done=false; while ( !in.atEnd() ) { QString line = in.readLine(); QString wline = line.simplifyWhiteSpace(); if ( !done ) { if ( found ) { // skip existing entry for this scheme, and write our own. if ( wline == ";;" ) { found = false; continue; } else { continue; } } else { if ( wline.left(scheme.length()+7) == scheme + ",*,*,*)" ) { found=true; continue; // skip this line } else if ( wline == "esac" || wline == "*,*,*,*)" ) { // end - add new entry // Not all fields have a GUI, but all are supported // in the letwork configuration files. static const char* txtfields[] = { 0 }; - QString readmode = config.readEntry( "Mode", "Managed" ); + QString readmode = config->readEntry( "Mode", "Managed" ); QString mode; if( readmode == "Managed" ){ mode = readmode; } else if( readmode == "adhoc" ){ mode = "Ad-Hoc"; } QString key; if( wepEnabled->isChecked() ){ - int defaultkey = config.readNumEntry( "dot11WEPDefaultKeyID", 0 ); + int defaultkey = config->readNumEntry( "dot11WEPDefaultKeyID", 0 ); switch( defaultkey ){ case 0: key += keyLineEdit0->text(); break; case 1: key += keyLineEdit1->text(); break; case 2: key += keyLineEdit2->text(); break; case 3: key += keyLineEdit3->text(); break; } - if( config.readEntry( "AuthType", "opensystem" ) == "opensystem") + if( config->readEntry( "AuthType", "opensystem" ) == "opensystem") key += " open"; } out << scheme << ",*,*,*)" << "\n" - << " ESSID=" << Global::shellQuote( config.readEntry( "SSID", "any" ) ) << "\n" + << " ESSID=" << Global::shellQuote( config->readEntry( "SSID", "any" ) ) << "\n" << " MODE=" << mode << "\n" << " KEY=" << Global::shellQuote( key ) << "\n" << " RATE=" << "auto" << "\n" ; if( mode != "Managed" ) - out << " CHANNEL=" << config.readNumEntry( "CHANNEL", 1 ) << "\n"; + out << " CHANNEL=" << config->readNumEntry( "CHANNEL", 1 ) << "\n"; const char** f = txtfields; while (*f) { - out << " " << *f << "=" << config.readEntry(*f,"") << "\n"; + out << " " << *f << "=" << config->readEntry(*f,"") << "\n"; ++f; } out << " ;;\n"; done = true; } } } out << line << "\n"; } prevFile.close(); tmpFile.close(); QString initpath; //system("cardctl suspend"); if( QDir("/etc/rc.d/init.d").exists() ){ initpath = "/etc/rc.d/init.d"; } else if( QDir("/etc/init.d").exists() ){ initpath = "/etc/init.d"; } if( initpath ) system(QString("%1/pcmcia stop").arg(initpath)); if( system( "mv " + tmp + " " + prev ) ) retval = false; //#ifdef USE_SCHEMES // if ( retval ) // SchemeChanger::changeScheme(scheme); //#endif //system("cardctl resume"); if( initpath ) system(QString("%1/pcmcia start").arg(initpath)); return retval; } diff --git a/noncore/settings/networksettings/wlan/wlanimp.h b/noncore/settings/networksettings/wlan/wlanimp.h index 8e355ce..79e931d 100644 --- a/noncore/settings/networksettings/wlan/wlanimp.h +++ b/noncore/settings/networksettings/wlan/wlanimp.h @@ -1,27 +1,27 @@ #ifndef WLANIMP_H #define WLANIMP_H #include "wlan.h" -class Config; +#include <qpe/config.h> class WLANImp : public WLAN { Q_OBJECT public: - WLANImp( Config& cfg, QWidget* parent = 0, const char* name = 0); + WLANImp( QWidget* parent = 0, const char* name = 0); protected: void accept(); void done ( int r ); private: void readConfig(); bool writeConfig(); - bool writeWirelessOpts( Config &cfg, QString scheme = "*" ); - bool writeWlanngOpts( Config &cfg, QString scheme = "*" ); - Config& config; + bool writeWirelessOpts( QString scheme = "*" ); + bool writeWlanngOpts( QString scheme = "*" ); + Config* config; }; #endif diff --git a/noncore/settings/networksettings/wlan/wlanmodule.cpp b/noncore/settings/networksettings/wlan/wlanmodule.cpp index f12e608..cbb520d 100644 --- a/noncore/settings/networksettings/wlan/wlanmodule.cpp +++ b/noncore/settings/networksettings/wlan/wlanmodule.cpp @@ -1,163 +1,162 @@ #include "wlanmodule.h" #include <qpe/config.h> #include "wlanimp.h" #include "info.h" #include <arpa/inet.h> #include <sys/socket.h> #include <linux/if_ether.h> #include <netinet/ip.h> #include <sys/ioctl.h> #include <linux/wireless.h> #include <unistd.h> #include <math.h> #include <errno.h> #include <string.h> #include <stdio.h> #include <stdlib.h> #include <qlabel.h> /** * Constructor, find all of the possible interfaces */ WLANModule::WLANModule() : Module() { // get output from iwconfig } /** * Change the current profile */ void WLANModule::setProfile(QString newProfile){ profile = newProfile; } /** * get the icon name for this device. * @param Interface* can be used in determining the icon. * @return QString the icon name (minus .png, .gif etc) */ QString WLANModule::getPixmapName(Interface* ){ return "wlan"; } /** * Check to see if the interface i is owned by this module. * @param Interface* interface to check against * @return bool true if i is owned by this module, false otherwise. */ bool WLANModule::isOwner(Interface *i){ if(i->getInterfaceName() == "eth0" || i->getInterfaceName() == "wlan0"){ i->setHardwareName("802.11b"); return true; } return false; } /** * Create, set tabWiget and return the WLANConfigure Module * @param tabWidget a pointer to the tab widget that this configure has. * @return QWidget* pointer to the tab widget in this modules configure. */ QWidget *WLANModule::configure(Interface *i, QTabWidget **tabWidget){ - Config *cfg = new Config("wireless config"); - WLANImp *wlanconfig = new WLANImp(*cfg); + WLANImp *wlanconfig = new WLANImp( ); (*tabWidget) = wlanconfig->tabWidget; return wlanconfig; } /** * Create, set tabWiget and return the Information Module * @param tabWidget a pointer to the tab widget that this information has. * @return QWidget* pointer to the tab widget in this modules info. */ QWidget *WLANModule::information(Interface *i, QTabWidget **tabWidget){ WlanInfo *info = new WlanInfo(0, "wireless info"); (*tabWidget) = info->tabWidget; struct ifreq ifr; struct sockaddr_in *sin = (struct sockaddr_in *) &ifr.ifr_addr; int fd = socket( AF_INET, SOCK_DGRAM, 0 ); const char* buffer[200]; struct iwreq iwr; memset( &iwr, 0, sizeof( iwr ) ); iwr.u.essid.pointer = (caddr_t) buffer; iwr.u.essid.length = IW_ESSID_MAX_SIZE; iwr.u.essid.flags = 0; // check if it is an IEEE 802.11 standard conform // wireless device by sending SIOCGIWESSID // which also gives back the Extended Service Set ID // (see IEEE 802.11 for more information) QString n = (i->getInterfaceName()); const char* iname = n.latin1(); strcpy( iwr.ifr_ifrn.ifrn_name, (const char *)iname ); int result = ioctl( fd, SIOCGIWESSID, &iwr ); if ( result == 0 ){ //hasWirelessExtensions = true; iwr.u.essid.pointer[(unsigned int) iwr.u.essid.length-1] = '\0'; info->essidLabel->setText(QString(iwr.u.essid.pointer)); } else return info; //info->essidLabel->setText("*** Unknown ***"); // Address of associated access-point result = ioctl( fd, SIOCGIWAP, &iwr ); if ( result == 0 ){ QString foo = foo.sprintf( "%.2X:%.2X:%.2X:%.2X:%.2X:%.2X", iwr.u.ap_addr.sa_data[0]&0xff, iwr.u.ap_addr.sa_data[1]&0xff, iwr.u.ap_addr.sa_data[2]&0xff, iwr.u.ap_addr.sa_data[3]&0xff, iwr.u.ap_addr.sa_data[4]&0xff, iwr.u.ap_addr.sa_data[5]&0xff ); info->apLabel->setText(foo); } else info->apLabel->setText("*** Unknown ***"); iwr.u.data.pointer = (caddr_t) buffer; iwr.u.data.length = IW_ESSID_MAX_SIZE; iwr.u.data.flags = 0; result = ioctl( fd, SIOCGIWNICKN, &iwr ); if ( result == 0 ){ iwr.u.data.pointer[(unsigned int) iwr.u.data.length-1] = '\0'; info->stationLabel->setText(iwr.u.data.pointer); } else info->stationLabel->setText("*** Unknown ***"); result = ioctl( fd, SIOCGIWMODE, &iwr ); if ( result == 0 ) info->modeLabel->setText( QString("%1").arg(iwr.u.mode == IW_MODE_ADHOC ? "Ad-Hoc" : "Managed")); else info->modeLabel->setText("*** Unknown ***"); result = ioctl( fd, SIOCGIWFREQ, &iwr ); if ( result == 0 ) info->freqLabel->setText(QString("%1").arg((double( iwr.u.freq.m ) * pow( 10, iwr.u.freq.e ) / 1000000000))); else info->freqLabel->setText("*** Unknown ***"); /* // gather link quality from /proc/net/wireless char c; QString status; QString name; QFile wfile( PROCNETWIRELESS ); bool hasFile = wfile.open( IO_ReadOnly ); QTextStream wstream( &wfile ); if ( hasFile ) { wstream.readLine(); // skip the first two lines wstream.readLine(); // because they only contain headers } if ( ( !hasFile ) || ( wstream.atEnd() ) ) { #ifdef MDEBUG qDebug( "WIFIAPPLET: D'oh! Someone removed the card..." ); |