diff --git a/opentrafficshaper/plugins/configmanager.pm b/opentrafficshaper/plugins/configmanager.pm index eb43d8b0cbcc3c191e28c102432ee13405a52ea8..478737cc7aeb76981b11e56e1e5dbdb1696ab6bc 100644 --- a/opentrafficshaper/plugins/configmanager.pm +++ b/opentrafficshaper/plugins/configmanager.pm @@ -60,6 +60,7 @@ our (@ISA,@EXPORT,@EXPORT_OK); removePoolAttribute getPoolShaperState setPoolShaperState + unsetPoolShaperState isPoolIDValid isPoolReady @@ -70,6 +71,7 @@ our (@ISA,@EXPORT,@EXPORT_OK); getPoolMembersByIP getPoolMemberMatchPriority setPoolMemberShaperState + unsetPoolMemberShaperState getPoolMemberShaperState getPoolMemberMatchPriority setPoolMemberAttribute @@ -1996,6 +1998,23 @@ sub setPoolShaperState } +# Function to unset pools shaper state +sub unsetPoolShaperState +{ + my ($pid,$state) = @_; + + + # Check pool exists first + if (!isPoolIDValid($pid)) { + return; + } + + $pools->{$pid}->{'.shaper_state'} ^= $state; + + return $pools->{$pid}->{'.shaper_state'}; +} + + # Function to get shaper state for a pool sub getPoolShaperState { @@ -2408,6 +2427,23 @@ sub setPoolMemberShaperState } +# Function to unset pool member shaper state +sub unsetPoolMemberShaperState +{ + my ($pmid,$state) = @_; + + + # Check pool member exists first + if (!isPoolMemberIDValid($pmid)) { + return; + } + + $poolMembers->{$pmid}->{'.shaper_state'} ^= $state; + + return $poolMembers->{$pmid}->{'.shaper_state'}; +} + + # Function to get shaper state for a pool sub getPoolMemberShaperState {