summaryrefslogtreecommitdiff
path: root/noncore/settings/networksettings2/profile/profilerun.cpp
Side-by-side diff
Diffstat (limited to 'noncore/settings/networksettings2/profile/profilerun.cpp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/settings/networksettings2/profile/profilerun.cpp20
1 files changed, 9 insertions, 11 deletions
diff --git a/noncore/settings/networksettings2/profile/profilerun.cpp b/noncore/settings/networksettings2/profile/profilerun.cpp
index 90c37ed..feebf86 100644
--- a/noncore/settings/networksettings2/profile/profilerun.cpp
+++ b/noncore/settings/networksettings2/profile/profilerun.cpp
@@ -19,25 +19,23 @@ bool ProfileRun::setState( NodeCollection * NC, Action_t A ) {
switch ( A ) {
case Enable :
if( NC->currentState() == Disabled ) {
+ Data->Disabled = 0;
NC->setCurrentState( Off ); // at least
// ... but request deeper
NNNI->runtime()->detectState(NC);
- return 1;
}
return 1;
case Disable :
- if( NC->currentState() == IsUp ) {
- // bring down -> make available
- NNNI->runtime()->setState(NC, Down);
- }
- if( NC->currentState() == Available ) {
- // make unavailable
- NNNI->runtime()->setState(NC, Deactivate);
- }
- if( NC->currentState() > Available ) {
- // could not disable
+ switch( NC->currentState() ) {
+ case IsUp :
+ case Available :
+ // bring Deactivate (will bring down)
+ if( ! NNNI->runtime()->setState(NC, Deactivate) )
return 0;
+ default :
+ break;
}
+ Data->Disabled = 1;
NC->setCurrentState( Disabled );
return 1;
default :