author | kergoth <kergoth> | 2003-08-09 17:14:54 (UTC) |
---|---|---|
committer | kergoth <kergoth> | 2003-08-09 17:14:54 (UTC) |
commit | a7e015198a8c5ad3b6e144a9032b059086253e00 (patch) (side-by-side diff) | |
tree | b712b6f11310d88744fe393a92b3160b741a7efe /noncore/settings/networksettings/ppp/pppdata.cpp | |
parent | beba0e73306815337bf04dee39502233595e9739 (diff) | |
download | opie-a7e015198a8c5ad3b6e144a9032b059086253e00.zip opie-a7e015198a8c5ad3b6e144a9032b059086253e00.tar.gz opie-a7e015198a8c5ad3b6e144a9032b059086253e00.tar.bz2 |
Merge from BRANCH_1_0
Diffstat (limited to 'noncore/settings/networksettings/ppp/pppdata.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/settings/networksettings/ppp/pppdata.cpp | 371 |
1 files changed, 282 insertions, 89 deletions
diff --git a/noncore/settings/networksettings/ppp/pppdata.cpp b/noncore/settings/networksettings/ppp/pppdata.cpp index 8f45e54..f4727c1 100644 --- a/noncore/settings/networksettings/ppp/pppdata.cpp +++ b/noncore/settings/networksettings/ppp/pppdata.cpp @@ -28,5 +28,4 @@ #include "runtests.h" -#include "devices.h" +//#include "devices.h" //#include <klocale.h> -#define i18n QObject::tr #include <qpe/config.h> @@ -44,6 +43,7 @@ PPPData::PPPData() - : modemDeviceGroup(-1), - passwd(""), + : passwd(""), + _modemName(""), highcount(-1), // start out with no entries - caccount(-1), // set the current account index also + highcountdev(-1), // start out with no entries +// caccount(-1), // set the current account index also suidprocessid(-1), // process ID of setuid child @@ -53,10 +53,17 @@ PPPData::PPPData() highcount = readNumConfig(GENERAL_GRP, NUMACCOUNTS_KEY, 0) - 1; - - if (highcount > MAX_ACCOUNTS) - highcount = MAX_ACCOUNTS; - - if(highcount >= 0 && defaultAccount().isEmpty()) { - setAccountbyIndex(0); - setDefaultAccount(accname()); - } else if(!setAccount(defaultAccount())) + highcountdev = readNumConfig(GENERAL_GRP, NUMDEVICES_KEY, 0) - 1; + Config cfg = config(); + cfg.setGroup(GENERAL_GRP); + accountList = cfg.readListEntry(ACCOUNT_LIST, ',' ); + deviceList = cfg.readListEntry(DEVICESNAMES_LIST, ',' ); + qDebug("PPPData::PPPData has a accountList %s", accountList.join("---").latin1()); + qDebug("PPPData::PPPData has a deviceList %s", deviceList.join("---").latin1()); + +// if (highcount > MAX_ACCOUNTS) +// highcount = MAX_ACCOUNTS; + + // if(highcount >= 0 && defaultAccount().isEmpty()) { +// setAccountbyIndex(0); +// setDefaultAccount(accname()); +// } else if(!setAccount(defaultAccount())) setDefaultAccount(accname()); @@ -83,2 +90,3 @@ void PPPData::save() writeConfig(GENERAL_GRP, NUMACCOUNTS_KEY, count()); + writeConfig(GENERAL_GRP, NUMDEVICES_KEY, highcountdev + 1); QString key; @@ -86,2 +94,6 @@ void PPPData::save() Config cfg = config(); + cfg.setGroup(GENERAL_GRP); + cfg.writeEntry(ACCOUNT_LIST, accountList, ',' ); + cfg.writeEntry(DEVICESNAMES_LIST, deviceList, ',' ); + for( QMap<QString,QString>::Iterator it = stringEntries.begin(); @@ -92,3 +104,3 @@ void PPPData::save() keys = QStringList::split( "SEPARATOR", key ); - qDebug("group >%s< key >%s< value >%s<", keys[0].latin1(), keys[1].latin1(), val.latin1() ); + //qDebug("group >%s< key >%s< value >%s<", keys[0].latin1(), keys[1].latin1(), val.latin1() ); cfg.setGroup(keys[0]); @@ -102,3 +114,3 @@ void PPPData::save() keys = QStringList::split( "SEPARATOR", key ); - qDebug("group >%s< key >%s< val %i", keys[0].latin1(), keys[1].latin1(), val ); + //qDebug("group >%s< key >%s< val %i", keys[0].latin1(), keys[1].latin1(), val ); cfg.setGroup(keys[0]); @@ -113,3 +125,2 @@ void PPPData::save() keys = QStringList::split( "SEPARATOR", key ); - qDebug("group >%s< key >%s<values >%s<", keys[0].latin1(), keys[1].latin1(), val.join(sep).latin1() ); cfg.setGroup(keys[0]); @@ -346,3 +357,3 @@ void PPPData::setpppdTimeout(int n) { const QString PPPData::modemDevice() { - return readConfig (modemGroup(), MODEMDEV_KEY, devices[DEV_DEFAULT]); + return readConfig (modemGroup(), MODEMDEV_KEY, "/dev/modem" ); } @@ -350,13 +361,25 @@ const QString PPPData::modemDevice() { +// const QString PPPData::modemName() +// { +// return readConfig(modemGroup(), MODEMNAME_KEY); +// } + +// bool PPPData::setModemName(const QString &n) { +// qDebug("Setting modem name to >%s<", n.latin1()); +// _modemName = n; +// writeConfig(cgroup, MODEMNAME_KEY, n); +// return true; //FIXME +// } + +// bool PPPData::changeModemName(const QString &n) { +// qDebug("Setting modem name to >%s<", n.latin1()); +// _modemName = n; +// writeConfig(modemGroup(), MODEMNAME_KEY, n); +// return true; //FIXME +// } + bool PPPData::setModemDevice(const QString &n) { qDebug("Setting modem dev to >%s<", n.latin1()); - bool ret = false; - for (int i = 0; devices[i]; i++) - if (devices[i] == n){ - modemDeviceGroup = i; writeConfig(modemGroup(), MODEMDEV_KEY, n); - ret = true; - } - qDebug(ret?"SUCCESS":"FAILURE"); - return ret; + return true; //FIXME } @@ -719,6 +742,7 @@ bool PPPData::setAccount(const QString &aname) { qDebug("setting account to >%s<", aname.latin1()); - for(int i = 0; i <= highcount; i++) { - setAccountbyIndex(i); + for ( QStringList::Iterator it = accountList.begin(); it != accountList.end(); ++it ) { + cgroup = *it; + qDebug("PPPData::setAccount %s", cgroup.latin1()); + qDebug( "iterator %s", (*it).latin1() ); if(accname() == aname) { - caccount = i; qDebug("SUCCESS"); @@ -726,2 +750,3 @@ bool PPPData::setAccount(const QString &aname) { } + } @@ -731,7 +756,10 @@ bool PPPData::setAccount(const QString &aname) { - +/* bool PPPData::setAccountbyIndex(int i) { if(i >= 0 && i <= highcount) { + QString tmp; + tmp.sprintf("%s%i", ACCOUNT_GRP, i); + if (_deleted.find(tmp)!=_deleted.end()) return false; caccount = i; - cgroup.sprintf("%s%i", ACCOUNT_GRP, i); + cgroup = tmp; return true; @@ -740,14 +768,18 @@ bool PPPData::setAccountbyIndex(int i) { } - +*/ bool PPPData::isUniqueAccname(const QString &n) { - int current = caccount; - for(int i=0; i <= highcount; i++) { - setAccountbyIndex(i); - if(accname() == n && i != current) { - setAccountbyIndex(current); + QString save_cgroup = cgroup; + for ( QStringList::Iterator it = accountList.begin(); it != accountList.end(); ++it ) { + cgroup = *it; + qDebug("PPPData::setAccount %s", cgroup.latin1()); + qDebug( "%s \n", (*it).latin1() ); + if(accname() == n && cgroup != save_cgroup) { + cgroup = save_cgroup; + qDebug("SUCCESS"); return false; } + } - setAccountbyIndex(current); + cgroup = save_cgroup; return true; @@ -756,48 +788,61 @@ bool PPPData::isUniqueAccname(const QString &n) { -bool PPPData::deleteAccount() { - //FIXME: PPPData::deleteAccount -// if(caccount < 0) +bool PPPData::isUniqueDevname(const QString &n) { + QString save_mName = _modemName; + qDebug("PPPData::isUniqueDevname checking if %s is unique", n.latin1()); + for ( QStringList::Iterator it = deviceList.begin(); it != deviceList.end(); ++it ) { + _modemName = *it; + qDebug("PPPData::isUniqueDevname %s == %s", n.latin1() , devname().latin1()); + if(devname() == n && _modemName != save_mName) { + _modemName = save_mName; + qDebug("NOT UNIQUE"); return false; + } -// QMap <QString, QString> map; -// QMap <QString, QString>::Iterator it; - -// // set all entries of the current account to "" -// map = config->entryMap(cgroup); -// it = map.begin(); -// while (it != map.end()) { -// config->writeEntry(it.key(), ""); -// it++; -// } - -// // shift the succeeding accounts -// for(int i = caccount+1; i <= highcount; i++) { -// setAccountbyIndex(i); -// map = config->entryMap(cgroup); -// it = map.begin(); -// setAccountbyIndex(i-1); -// config->setGroup(cgroup); -// while (it != map.end()) { -// config->writeEntry(it.key(), *it); -// it++; -// } -// } + } + _modemName = save_mName; + return true; +} -// // make sure the top account is cleared -// setAccountbyIndex(highcount); -// map = config->entryMap(cgroup); -// it = map.begin(); -// config->setGroup(cgroup); -// while (it.key() != QString::null) { -// config->writeEntry(it.key(), ""); -// it++; -// } -// highcount--; -// if(caccount > highcount) -// caccount = highcount; +bool PPPData::deleteAccount() { + // FIXME: check if this account exists in a config... + Config cfg = PPPData::config(); + cfg.setGroup(cgroup); + cfg.clearGroup(); + accountList.remove(cgroup); -// setAccountbyIndex(caccount); + QString key; + QStringList keys; + for( QMap<QString,QString>::Iterator it = stringEntries.begin(); + it != stringEntries.end(); ++it ){ + QString val = it.data(); + key = it.key(); + keys = QStringList::split( "SEPARATOR", key ); + if(keys[0]==cgroup){ + stringEntries.remove( it ); + qDebug("deleting >%s< key >%s< value >%s<", keys[0].latin1(), keys[1].latin1(), val.latin1() ); + } + } + for( QMap<QString,int>::Iterator it = intEntries.begin(); + it != intEntries.end(); ++it ){ + int val = it.data(); + key = it.key(); + keys = QStringList::split( "SEPARATOR", key ); + if(keys[0]==cgroup){ + intEntries.remove( it ); + qDebug("deleting >%s< key >%s< value >%i<", keys[0].latin1(), keys[1].latin1(), val ); + } + } + for( QMap<QString,QStringList>::Iterator it = listEntries.begin(); + it != listEntries.end(); ++it ){ + QStringList val = it.data(); + key = it.key(); + if(keys[0]==cgroup){ + listEntries.remove( it ); + sepEntries.remove( key ); + qDebug("deleting >%s< key >%s< value >%s<", keys[0].latin1(), keys[1].latin1(), val.join("").latin1() ); + } + } -// return true; + return true; } @@ -819,13 +864,15 @@ int PPPData::newaccount() { // if(!config) open(); - if (highcount >= MAX_ACCOUNTS) return -1; +// if (highcount >= MAX_ACCOUNTS) return -1; - highcount++; - setAccountbyIndex(highcount); + QString tmp; + tmp.sprintf("%s%i", ACCOUNT_GRP, ++highcount); + cgroup = QString(tmp); + accountList << tmp; + qDebug("PPPData::newaccount() Group: >%s<",cgroup.latin1()); setpppdArgumentDefaults(); - qDebug("PPPData::newaccount -> %i",caccount); - return caccount; + return highcount; } -int PPPData::copyaccount(int i) { +int PPPData::copyaccount(const QString&) { // FIXME: PPPData::copyaccount @@ -839,3 +886,3 @@ int PPPData::copyaccount(int i) { -// QString newname = i18n("%1_copy").arg(accname()); +// QString newname = QObject::tr("%1_copy").arg(accname()); @@ -866,2 +913,3 @@ void PPPData::setAccname(const QString &n) { } + writeConfig(cgroup, NAME_KEY, n); } @@ -1178,2 +1226,3 @@ void PPPData::setpppdArgumentDefaults() { QStringList arg; + arg << "lcp-echo-failure 0"; setpppdArgument(arg); @@ -1249,7 +1298,5 @@ QString PPPData::modemGroup() { - if (modemDeviceGroup<0){ - qDebug("wrong modem %i\n using 0",modemDeviceGroup); - modemDeviceGroup = 0; //FIXME! - } - return QString("%1_%1").arg(MODEM_GRP).arg(modemDeviceGroup); + if (_modemName.isEmpty()) + _modemName = deviceList[0]; + return _modemName; } @@ -1302 +1349,147 @@ QString PPPData::encodeWord(const QString &s) { } + +QStringList PPPData::getDevicesList() +{ + Config cfg("NetworkSetupPPP"); + cfg.setGroup("Devices_General"); + return cfg.readListEntry(DEVICES_LIST,DEVICES_LIST_SEP); +} + +QStringList PPPData::getAccountList() +{ + QStringList list; + QString save_cgroup; + save_cgroup = cgroup; + for ( QStringList::Iterator it = accountList.begin(); it != accountList.end(); ++it ) { + cgroup = *it; + list << accname(); + } + cgroup = save_cgroup; + return list; +}; + + +const QString PPPData::devname() +{ + QString tmp = readConfig(modemGroup(), MODEMNAME_KEY ); + qDebug("PPPData::devname() of %s is %s", modemGroup().latin1(), tmp.latin1()); + return tmp; +} + +void PPPData::setDevname(const QString &n) { + // if(!cgroup.isNull()) { +// // are we manipulating the default account's name ? then change it, too. +// bool def = accname() == defaultAccount(); +// writeConfig(cgroup, NAME_KEY, n); +// if (def) +// setDefaultAccount(n); +// } + writeConfig(modemGroup(), MODEMNAME_KEY, n ); +} + + +bool PPPData::setDevice(const QString &dev ) +{ + qDebug("setting device to >%s<", dev.latin1()); + QString save_mName = _modemName; + for ( QStringList::Iterator it = deviceList.begin(); it != deviceList.end(); ++it ) { + _modemName = *it; + qDebug("PPPData::setDevice %s is named %s", _modemName.latin1(), devname().latin1() ); + qDebug( "iterator %s", (*it).latin1() ); + if(devname() == dev) { + qDebug("SUCCESS"); + return true; + } + + } + _modemName = save_mName; + qDebug("FAILURE"); + return false; +} + +bool PPPData::deleteDevice() +{ + // FIXME: check if this account exists in a config... + Config cfg = PPPData::config(); + cfg.setGroup(modemGroup()); + cfg.clearGroup(); + deviceList.remove(modemGroup()); + + QString key; + QStringList keys; + for( QMap<QString,QString>::Iterator it = stringEntries.begin(); + it != stringEntries.end(); ++it ){ + QString val = it.data(); + key = it.key(); + keys = QStringList::split( "SEPARATOR", key ); + if(keys[0]==modemGroup()){ + stringEntries.remove( it ); + qDebug("deleting >%s< key >%s< value >%s<", keys[0].latin1(), keys[1].latin1(), val.latin1() ); + } + } + for( QMap<QString,int>::Iterator it = intEntries.begin(); + it != intEntries.end(); ++it ){ + int val = it.data(); + key = it.key(); + keys = QStringList::split( "SEPARATOR", key ); + if(keys[0]==modemGroup()){ + intEntries.remove( it ); + qDebug("deleting >%s< key >%s< value >%i<", keys[0].latin1(), keys[1].latin1(), val ); + } + } + for( QMap<QString,QStringList>::Iterator it = listEntries.begin(); + it != listEntries.end(); ++it ){ + QStringList val = it.data(); + key = it.key(); + if(keys[0]==modemGroup()){ + listEntries.remove( it ); + sepEntries.remove( key ); + qDebug("deleting >%s< key >%s< value >%s<", keys[0].latin1(), keys[1].latin1(), val.join("").latin1() ); + } + } + + return true; + +} + +bool PPPData::deleteDevice(const QString &dev) +{ + if(!setDevice(dev)) + return false; + + return deleteDevice(); +} + +int PPPData::newdevice() +{ + + qDebug("PPPData::newdevice highcount %i",highcountdev); + + + QString tmp; + tmp.sprintf("%s%i", MODEM_GRP, ++highcountdev); + _modemName = QString(tmp); + deviceList << tmp; + qDebug("PPPData::newdevice() Group: >%s<",cgroup.latin1()); + return highcountdev; +} + +int PPPData::copydevice(const QString&) +{ + return false; +} + + +QStringList PPPData::getDevicesNamesList() +{ + QStringList list; + QString save_mName = _modemName; + qDebug("PPPData::getDevicesNamesList has %s", deviceList.join("---").latin1()); + for ( QStringList::Iterator it = deviceList.begin(); it != deviceList.end(); ++it ) { + _modemName = *it; + qDebug("PPPData::getDevicesNamesList adding %s as %s",_modemName.latin1(), devname().latin1()); + list << devname(); + } + _modemName = save_mName; + return list; +}; |