author | wimpie <wimpie> | 2005-01-04 01:35:26 (UTC) |
---|---|---|
committer | wimpie <wimpie> | 2005-01-04 01:35:26 (UTC) |
commit | a9c188235c97e07b0eb96b13adbcdfd4bad64767 (patch) (side-by-side diff) | |
tree | 13f6ae5c499dc0c1d1bd4b763a1973a0fa8635cf /noncore/settings/networksettings2/nsdata.cpp | |
parent | 48b6cd5966ec6cc0b968edf10ba1a1ad96ef165f (diff) | |
download | opie-a9c188235c97e07b0eb96b13adbcdfd4bad64767.zip opie-a9c188235c97e07b0eb96b13adbcdfd4bad64767.tar.gz opie-a9c188235c97e07b0eb96b13adbcdfd4bad64767.tar.bz2 |
CONTROL files : changed version string
NS2 many changes and first release of OT2
Diffstat (limited to 'noncore/settings/networksettings2/nsdata.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/settings/networksettings2/nsdata.cpp | 252 |
1 files changed, 187 insertions, 65 deletions
diff --git a/noncore/settings/networksettings2/nsdata.cpp b/noncore/settings/networksettings2/nsdata.cpp index e2dd5b5..698a941 100644 --- a/noncore/settings/networksettings2/nsdata.cpp +++ b/noncore/settings/networksettings2/nsdata.cpp @@ -1,3 +1,4 @@ #include <stdlib.h> +#include <opie2/odebug.h> #include <qpe/qpeapplication.h> #include <qtextstream.h> @@ -7,5 +8,5 @@ #include "nsdata.h" -#include <asdevice.h> +#include <netnode.h> #include <resources.h> @@ -28,6 +29,44 @@ NetworkSettingsData::NetworkSettingsData( void ) { // load settings - IsModified = 0; loadSettings(); + + // assign interfaces by scanning /tmp/profile-%s.Up files + { QDir D( "/tmp" ); + QFile * F = new QFile; + int profilenr; + QString interfacename; + QTextStream TS ( F ); + + QStringList SL = D.entryList( "profile-*.up"); + + Log(( "System reports %d interfaces. Found %d up\n", + NSResources->system().interfaces().count(), + SL.count() )); + + for ( QStringList::Iterator it = SL.begin(); + it != SL.end(); + ++it ) { + profilenr = atol( (*it).mid( 8 ).latin1() ); + // read the interface store int 'up' + F->setName( D.path() + "/" + (*it) ); + if( F->open( IO_ReadOnly ) ) { + NodeCollection * NC; + interfacename = TS.readLine(); + F->close(); + + Log(( "Assign interface %s to Profile nr %d\n", + interfacename.latin1(), profilenr )); + + NC = NSResources->getConnection( profilenr ); + if( NC ) { + NC->assignInterface( + NSResources->system().findInterface( interfacename ) ); + } else { + Log(( "Profile nr %d no longer defined\n", + profilenr )); + } + } + } + } } @@ -45,4 +84,6 @@ void NetworkSettingsData::loadSettings( void ) { QTextStream TS( &F ); + ForceModified = 0; + do { @@ -86,9 +127,7 @@ void NetworkSettingsData::loadSettings( void ) { // try to find netnode NN = NSResources->findNetNode( S ); - Log( ( "Node %s : %p\n", S.latin1(), NN ) ); } else { // try to find instance NNI = NSResources->createNodeInstance( S ); - Log( ( "NodeInstance %s : %p\n", S.latin1(), NNI )); } @@ -139,7 +178,11 @@ void NetworkSettingsData::loadSettings( void ) { if( NNI ) { // loading from file -> exists + Log( ( "NodeInstance %s : %p\n", NNI->name(), NNI )); NNI->setNew( FALSE ); NSResources->addNodeInstance( NNI ); } + if( NN ) { + Log( ( "Node %s : %p\n", NN->name(), NN ) ); + } } } @@ -221,5 +264,11 @@ QString NetworkSettingsData::saveSettings( void ) { // - setModified( 0 ); + + for( QDictIterator<NodeCollection> it(NSResources->connections()); + it.current(); + ++it ) { + it.current()->setModified( 0 ); + } + return ErrS; } @@ -232,6 +281,5 @@ QString NetworkSettingsData::generateSettings( void ) { ANetNodeInstance * NNI; ANetNodeInstance * FirstWithData; - SystemFile * SF; - AsDevice * CurDev; + RuntimeInfo * CurDev; ANetNode * NN, * CurDevNN = 0; long NoOfDevs; @@ -242,37 +290,95 @@ QString NetworkSettingsData::generateSettings( void ) { Log( ( "Generating settings from %s\n", CfgFile.latin1() )); - // - // generate files proper to each netnodeinstance - // - { Name2Instance_t & NNIs = NSResources->netNodeInstances(); - - for( QDictIterator<ANetNodeInstance> NNIIt(NNIs); - NNIIt.current(); - ++NNIIt ) { - // for all nodes find those that are modified - NNI = NNIIt.current(); - - { // get list of proper files for this nodeclass (if any) - QStringList * PF = NNI->nodeClass()->properFiles(); - - if( PF ) { - for ( QStringList::Iterator it = PF->begin(); - it != PF->end(); - ++it ) { - QFile * F = NNI->openFile( (*it) ); - if( F ) { - QTextStream TS( F ); - if( NNI->generateFile( (*it), F->name(), TS, -1 ) == 2 ) { - // problem generating + for( QDictIterator<NetNode_t> nnit( NSResources->netNodes() ); + nnit.current(); + ++nnit ) { + { QStringList SL; + bool FirstItem = 1; + bool Generated = 0; + + CurDevNN = nnit.current()->NetNode; + SL = CurDevNN->properFiles(); + + for ( QStringList::Iterator it = SL.begin(); + it != SL.end(); + ++it ) { + + Generated = 0; + FirstItem = 1; + // iterate over NNI's of this class + for( QDictIterator<ANetNodeInstance> nniit( + NSResources->netNodeInstances() ); + nniit.current(); + ++nniit ) { + if( nniit.current()->nodeClass() != CurDevNN ) + // different class + continue; + + // open proper file + { SystemFile SF( (*it) ); + + if( ! CurDevNN->openFile( SF, nniit.current()) ) { + // cannot open + S = qApp->translate( "NetworkSettings", + "<p>Cannot open proper file \"%1\" for node \"%2\"</p>" ). + arg( (*it) ).arg( CurDevNN->name() ); + return S; + } + + if( ! SF.open() ) { + S = qApp->translate( "NetworkSettings", + "<p>Cannot open proper file \"%1\" for node \"%2\"</p>" ). + arg( (*it) ).arg( CurDevNN->name() ); + return S; + } + + // preamble on first + if( FirstItem ) { + if( CurDevNN->generatePreamble( SF ) == 2 ) { S = qApp->translate( "NetworkSettings", - "<p>Cannot generate files proper to \"%1\"</p>" ). - arg(NNI->nodeClass()->name()) ; - delete F; + "<p>Error in section \"preamble\" for proper file \"%1\" and node \"%2\"</p>" ). + arg( (*it) ). + arg( CurDevNN->name() ); return S; } - delete F; + } + FirstItem = 0; + Generated = 1; + + // item specific + if( nniit.current()->generateFile( SF, -1 ) == 2 ) { + S = qApp->translate( "NetworkSettings", + "<p>Error in section for node \"%1\" for proper file \"%2\" and node class \"%3\"</p>" ). + arg( nniit.current()->name() ). + arg( (*it) ). + arg( CurDevNN->name() ); + return S; } } } + + if( Generated ) { + SystemFile SF( (*it) ); + + if( CurDevNN->openFile( SF, 0 ) && + ! SF.path().isEmpty() + ) { + + if( ! SF.open() ) { + S = qApp->translate( "NetworkSettings", + "<p>Cannot open proper file \"%1\" for node \"%2\"</p>" ). + arg( (*it) ).arg( CurDevNN->name() ); + return S; + } + + if( CurDevNN->generatePostamble( SF ) == 2 ) { + S = qApp->translate( "NetworkSettings", + "<p>Error in section \"postamble\" for proper file \"%1\" and node \"%2\"</p>" ). + arg( (*it) ). + arg( CurDevNN->name() ); + return S; + } + } // no postamble + } } } @@ -280,9 +386,11 @@ QString NetworkSettingsData::generateSettings( void ) { // - // generate all system files + // generate all registered files // for( QDictIterator<SystemFile> sfit(SFM); sfit.current(); ++sfit ) { + SystemFile * SF; + SF = sfit.current(); @@ -307,5 +415,5 @@ QString NetworkSettingsData::generateSettings( void ) { } - Log( ( "Generating %s\n", SF->name().latin1() )); + Log( ( "Generating system file %s\n", SF->name().latin1() )); needToGenerate = 0; @@ -319,5 +427,5 @@ QString NetworkSettingsData::generateSettings( void ) { NN = nnit.current()->NetNode; - if( NN->hasDataForFile( SF->name() ) ) { + if( NN->hasDataForFile( *SF ) ) { // netnode can have data @@ -346,5 +454,10 @@ QString NetworkSettingsData::generateSettings( void ) { // ok generate this system file - SF->open(); + if( ! SF->open() ) { + S = qApp->translate( "NetworkSettings", + "<p>Cannot open system file \"%1\"</p>" ). + arg( SF->name() ); + return S; + } // global presection for this system file @@ -368,5 +481,5 @@ QString NetworkSettingsData::generateSettings( void ) { } - if( ! NC->hasDataForFile( SF->name() ) ) { + if( ! NC->hasDataForFile( *SF ) ) { // no data continue; @@ -376,5 +489,5 @@ QString NetworkSettingsData::generateSettings( void ) { SF->name().latin1(), NC->name().latin1() )); // find highest item that wants to write data to this file - FirstWithData = NC->firstWithDataForFile( SF->name() ); + FirstWithData = NC->firstWithDataForFile( *SF ); // find device on which this connection works @@ -383,8 +496,4 @@ QString NetworkSettingsData::generateSettings( void ) { CurDevNN = CurDev->netNode()->nodeClass(); - Log(( "%s is done %d\n", - FirstWithData->nodeClass()->name(), - FirstWithData->nodeClass()->done() )); - if( ! FirstWithData->nodeClass()->done() ) { // generate fixed part @@ -397,5 +506,7 @@ QString NetworkSettingsData::generateSettings( void ) { if( FirstWithData->nodeClass()->generateFile( - SF->name(), SF->path(), *SF, -1 ) == 2 ) { + *SF, + FirstWithData, + -2 ) == 2 ) { S = qApp->translate( "NetworkSettings", "<p>Error in section \"Common\" for file \"%1\" and node \"%2\"</p>" ). @@ -405,4 +516,7 @@ QString NetworkSettingsData::generateSettings( void ) { } FirstWithData->nodeClass()->setDone( 1 ); + Log(( "Systemfile %s for node instance %s is done\n", + SF->name().latin1(), + FirstWithData->name() )); } @@ -415,8 +529,4 @@ QString NetworkSettingsData::generateSettings( void ) { } - Log(( "Node %s is done %d\n", - CurDev->netNode()->nodeClass()->name(), - CurDev->netNode()->nodeClass()->done() )); - if( ! CurDev->netNode()->nodeClass()->done() ) { // first time this device is handled @@ -425,5 +535,5 @@ QString NetworkSettingsData::generateSettings( void ) { if( FirstWithData->nodeClass()->generateFile( - SF->name(), SF->path(), *SF, CurDev->netNode(), i ) == 2 ) { + *SF, CurDev->netNode(), i ) == 2 ) { S = qApp->translate( "NetworkSettings", "<p>Error in section \"Device\" for file \"%1\" and node \"%2\"</p>" ). @@ -434,4 +544,9 @@ QString NetworkSettingsData::generateSettings( void ) { } CurDev->netNode()->nodeClass()->setDone( 1 ); + + Log(( "Systemfile %s for Nodeclass %s is done\n", + SF->name().latin1(), + CurDev->netNode()->nodeClass()->name() + )); } @@ -447,7 +562,9 @@ QString NetworkSettingsData::generateSettings( void ) { } - Log(("Connection %s of same family\n", ncit2.current()->name().latin1() )); + Log(("Connection %s of family %s\n", + ncit2.current()->name().latin1(), + CurDev->name() )); // generate - NNI = ncit2.current()->firstWithDataForFile( SF->name() ); + NNI = ncit2.current()->firstWithDataForFile( *SF ); for( int i = DevCtStart; i < NoOfDevs ; i ++ ) { if( ! SF->preNodeSection( NNI, i ) ) { @@ -459,6 +576,5 @@ QString NetworkSettingsData::generateSettings( void ) { } - switch( NNI->generateFile( - SF->name(), SF->path(), *SF, i ) ) { + switch( NNI->generateFile( *SF, i ) ) { case 0 : (*SF) << endl; @@ -570,7 +686,12 @@ bool NetworkSettingsData::canStart( const char * Interface ) { case Off : // try to UP the device - if( ! NC->setState( Activate ) ) { - // cannot bring device Online -> try other alters - break; + { QString S= NC->setState( Activate ); + if( ! S.isEmpty() ) { + // could not bring device Online -> try other alters + Log(( "%s-c%d-disallowed : %s\n", + Interface, NC->number(), S.latin1() )); + break; + } + // interface assigned } // FT @@ -590,13 +711,14 @@ bool NetworkSettingsData::canStart( const char * Interface ) { } -/* - Called by the system to regenerate config files -*/ - -bool NetworkSettingsData::regenerate( void ) { - QString S = generateSettings(); - if( ! S.isEmpty() ) { - fprintf( stdout, "%s\n", S.latin1() ); +bool NetworkSettingsData::isModified( void ) { + if( ForceModified ) return 1; + + for( QDictIterator<NodeCollection> it(NSResources->connections()); + it.current(); + ++it ) { + if( it.current()->isModified() ) { + return 1; + } } return 0; |