Diffstat (limited to 'noncore/settings/networksettings2/network') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/settings/networksettings2/network/networkrun.cpp | 6 | ||||
-rw-r--r-- | noncore/settings/networksettings2/network/networkrun.h | 2 |
2 files changed, 4 insertions, 4 deletions
diff --git a/noncore/settings/networksettings2/network/networkrun.cpp b/noncore/settings/networksettings2/network/networkrun.cpp index c19235a..41e1c53 100644 --- a/noncore/settings/networksettings2/network/networkrun.cpp +++ b/noncore/settings/networksettings2/network/networkrun.cpp @@ -1,66 +1,66 @@ #include <system.h> #include <asdevice.h> #include "networkrun.h" void NetworkRun::detectState( NodeCollection * NC ) { RuntimeInfo * RI = netNode()->nextNode()->runtime(); AsDevice * Next = RI->asDevice(); InterfaceInfo * II = Next->assignedInterface(); if( II ) { // device has assigned interface NC->setCurrentState( (( II->IsUp ) ? IsUp : Available) ); return; } // has no interface -> delegate RI->detectState( NC ); } -bool NetworkRun::setState( NodeCollection * NC, Action_t A ) { +bool NetworkRun::setState( NodeCollection * NC, Action_t A, bool Force ) { // we handle UP and DOWN RuntimeInfo * RI = netNode()->nextNode()->runtime(); AsDevice * Next = RI->asDevice(); InterfaceInfo * II = Next->assignedInterface(); if( A == Up ) { // we can bring UP if lower level is available - if( NC->currentState() == Available ) { + if( NC->currentState() == Available || Force ) { QString S; S.sprintf( "ifup %s=%s-c%d-allowed", II->Name.latin1(), II->Name.latin1(), connection()->number() ); NSResources->system().runAsRoot( S ); } return 1; } else if( A == Down ) { - if( NC->currentState() == IsUp ) { + if( NC->currentState() == IsUp || Force ) { QString S; S.sprintf( "ifdown %s=%s-c%d-allowed", II->Name.latin1(), II->Name.latin1(), connection()->number() ); NSResources->system().runAsRoot( S ); } return 1; } // delegate return RI->setState( NC, A ); } bool NetworkRun::canSetState( State_t Curr, Action_t A ) { // we handle UP and DOWN RuntimeInfo * RI = netNode()->nextNode()->runtime(); if( A == Up ) { return ( Curr == Available ); } else if( A == Down ) { return ( Curr == IsUp ); } // delegate return RI->canSetState( Curr, A ); } bool NetworkRun::handlesInterface( const QString & S ) { // donno -> pass deeper return netNode()->nextNode()->runtime()->handlesInterface(S); } diff --git a/noncore/settings/networksettings2/network/networkrun.h b/noncore/settings/networksettings2/network/networkrun.h index fa16365..522a912 100644 --- a/noncore/settings/networksettings2/network/networkrun.h +++ b/noncore/settings/networksettings2/network/networkrun.h @@ -1,23 +1,23 @@ #include <asconnection.h> #include "networkdata.h" 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 setState( NodeCollection * ,Action_t A, bool ); bool canSetState( State_t , Action_t A ); bool handlesInterface( const QString & I ); }; |