Diffstat (limited to 'noncore/settings/networksettings2/network') (more/less context) (show whitespace changes)
6 files changed, 24 insertions, 15 deletions
diff --git a/noncore/settings/networksettings2/network/network_NN.cpp b/noncore/settings/networksettings2/network/network_NN.cpp index bb371ad..a6b15c6 100644 --- a/noncore/settings/networksettings2/network/network_NN.cpp +++ b/noncore/settings/networksettings2/network/network_NN.cpp @@ -40,25 +40,32 @@ const char * NetworkNetNode::provides( void ) { bool NetworkNetNode::generateProperFilesFor( ANetNodeInstance * ) { return 1; } -bool NetworkNetNode::hasDataFor( const QString & S ) { - if( S == "interfaces" ) { +bool NetworkNetNode::hasDataFor( const QString & S, bool DS ) { + if( ! DS && S == "interfaces" ) { return 1; } return 0; } bool NetworkNetNode::generateDataForCommonFile( SystemFile & S, long DevNr, ANetNodeInstance * NNI ) { return ((ANetwork *)NNI)->generateDataForCommonFile(S, DevNr); } +bool NetworkNetNode::generateDeviceDataForCommonFile( + SystemFile & , + long , + ANetNodeInstance * ) { + return 1; +} + extern "C" { void create_plugin( QList<ANetNode> & PNN ) { PNN.append( new NetworkNetNode() ); } } diff --git a/noncore/settings/networksettings2/network/network_NN.h b/noncore/settings/networksettings2/network/network_NN.h index 220e00f..62a3f10 100644 --- a/noncore/settings/networksettings2/network/network_NN.h +++ b/noncore/settings/networksettings2/network/network_NN.h @@ -25,15 +25,17 @@ public: virtual ANetNodeInstance * createInstance( void ); virtual const char ** needs( void ); virtual const char * provides( void ); virtual bool generateProperFilesFor( ANetNodeInstance * NNI ); - virtual bool hasDataFor( const QString & S ); + virtual bool hasDataFor( const QString & S, bool DS ); virtual bool generateDataForCommonFile( SystemFile & SF, long DevNr, ANetNodeInstance * NNI ); + virtual bool generateDeviceDataForCommonFile( + SystemFile & SF, long DevNr, ANetNodeInstance * NNI ); private: }; extern "C" diff --git a/noncore/settings/networksettings2/network/network_NNI.cpp b/noncore/settings/networksettings2/network/network_NNI.cpp index 7130764..eac2d66 100644 --- a/noncore/settings/networksettings2/network/network_NNI.cpp +++ b/noncore/settings/networksettings2/network/network_NNI.cpp @@ -101,17 +101,12 @@ void ANetwork::commit( void ) { bool ANetwork::generateDataForCommonFile( SystemFile & S, long DevNr ) { AsDevice * Dev = runtime()->device(); QString NIC = Dev->genNic( DevNr ); if( S.name() == "interfaces" ) { - // generate mapping stanza for this interface - S << "# check if " << NIC << " can be brought UP" << endl; - S << "mapping " << NIC << endl; - S << " script networksettings2-request" << endl << endl; - // we can safely call from here since device item is deeper if( Data.UseDHCP ) { S << "iface " << NIC << "-c" << connection()->number() << "-allowed inet dhcp" << endl; S << " up echo \"" << NIC << "\" > /tmp/profile-" << connection()->number() << ".up" << Data.IPAddress << endl; diff --git a/noncore/settings/networksettings2/network/networkedit.cpp b/noncore/settings/networksettings2/network/networkedit.cpp index b17d745..182213b 100644 --- a/noncore/settings/networksettings2/network/networkedit.cpp +++ b/noncore/settings/networksettings2/network/networkedit.cpp @@ -49,19 +49,19 @@ QString NetworkEdit::acceptable( void ) { if( ! validIP( IPAddress_LE->text() ) ) return tr("IPAddress not valid"); if( ! validIP( SubnetMask_LE->text() ) ) return tr("Subnet mask not valid"); if( ! validIP( Broadcast_LE->text() ) ) return tr("Broadcast address not valid"); - if( Gateway_LE->text().isEmpty() && + if( Gateway_LE->text().isEmpty() || ! validIP( Gateway_LE->text() ) ) return tr("Gateway address not valid"); - if( DNS1_LE->text().isEmpty() && + if( ! DNS1_LE->text().isEmpty() && ! validIP( DNS1_LE->text() ) ) return tr("DNS1 address not valid"); - if( DNS2_LE->text().isEmpty() && + if( ! DNS2_LE->text().isEmpty() && ! validIP( DNS2_LE->text() ) ) return tr("DNS2 address not valid"); return QString(); } bool NetworkEdit::commit( NetworkData_t & Data ) { diff --git a/noncore/settings/networksettings2/network/networkrun.cpp b/noncore/settings/networksettings2/network/networkrun.cpp index 8deca14..f34fdbf 100644 --- a/noncore/settings/networksettings2/network/networkrun.cpp +++ b/noncore/settings/networksettings2/network/networkrun.cpp @@ -23,23 +23,25 @@ bool NetworkRun::setState( NodeCollection * NC, Action_t A ) { InterfaceInfo * II = Next->assignedInterface(); if( A == Up ) { // we can bring UP if lower level is available if( NC->currentState() == Available ) { QString S; - S.sprintf( "ifup %s", II->Name.latin1() ); + S.sprintf( "ifup %s=%s-c%d-allowed", + II->Name.latin1(), II->Name.latin1(), + connection()->number() ); NSResources->system().execute( S ); - NC->setCurrentState( IsUp ); } return 1; } else if( A == Down ) { if( NC->currentState() == IsUp ) { QString S; - S.sprintf( "ifdown %s", II->Name.latin1() ); + S.sprintf( "ifdown %s=%s-c%d-allowed", + II->Name.latin1(), II->Name.latin1(), + connection()->number() ); NSResources->system().execute( S ); - NC->setCurrentState( Available ); } return 1; } // delegate return RI->setState( NC, A ); } diff --git a/noncore/settings/networksettings2/network/networkrun.h b/noncore/settings/networksettings2/network/networkrun.h index f3d840e..fa16365 100644 --- a/noncore/settings/networksettings2/network/networkrun.h +++ b/noncore/settings/networksettings2/network/networkrun.h @@ -6,12 +6,15 @@ class NetworkRun : public AsConnection { public : NetworkRun( ANetNodeInstance * NNI, NetworkData & Data ) : AsConnection( NNI ) { } + virtual AsConnection * asConnection( void ) + { return (AsConnection *)this; } + protected : void detectState( NodeCollection * ); bool setState( NodeCollection * ,Action_t A ); bool canSetState( State_t , Action_t A ); |