From 07a4b0de6e65a67954c1f996be35bfd43f678d26 Mon Sep 17 00:00:00 2001
From: Nigel Kukard <nkukard@lbsd.net>
Date: Sun, 12 Jan 2014 08:58:09 +0000
Subject: [PATCH] Added unset shaper state functions

---
 opentrafficshaper/plugins/configmanager.pm | 36 ++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/opentrafficshaper/plugins/configmanager.pm b/opentrafficshaper/plugins/configmanager.pm
index eb43d8b..478737c 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
 {
-- 
GitLab