summaryrefslogtreecommitdiff
blob: de3791af997d3e29705e99f430a6bb3f28ecde07 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
--- htb.init.old	2004-01-29 22:41:23.000000000 +0100
+++ htb.init		2006-09-08 00:11:36.000000000 +0200
@@ -891,7 +895,6 @@
 TIME_TMP=`date +%w/%k:%M`
 TIME_DOW=${TIME_TMP%%/*}
 TIME_NOW=${TIME_TMP##*/}
-TIME_ABS=`htb_time2abs $TIME_NOW`
 
 ### Check all classes (if configured)
 for classfile in `htb_class_list`; do
@@ -914,6 +917,7 @@
 		### Compute interval boundaries
 		BEG_ABS=`htb_time2abs $BEG_TIME`
 		END_ABS=`htb_time2abs $END_TIME`
+		TIME_ABS=`htb_time2abs $TIME_NOW`
 
 		### Midnight wrap fixup
 		if [ $BEG_ABS -gt $END_ABS ]; then
@@ -926,6 +930,23 @@
 		### If time period matches, remember params and set MATCH flag
 		if [ $TIME_ABS -ge $BEG_ABS -a $TIME_ABS -lt $END_ABS ]; then
 			RATESPEC=${PARAMS%%,*}; CEILSPEC=${PARAMS##*,}
+
+			RNAME=""; CNAME=""
+
+			[ "$RATESPEC" = "prate" ] && RNAME=RATE_$PARENT
+			[ "$RATESPEC" = "pceil" ] && RNAME=CEIL_$PARENT
+
+			if [ -n "$RNAME" ]; then
+				RATESPEC=${!RNAME}
+			fi
+
+			[ "$CEILSPEC" = "prate" ] && CNAME=RATE_$PARENT
+			[ "$CEILSPEC" = "pceil" ] && CNAME=CEIL_$PARENT
+
+			if [ -n "$CNAME" ]; then
+				CEILSPEC=${!CNAME}
+			fi
+
 			[ "$RATESPEC" = "$CEILSPEC" ] && CEILSPEC=""
 
 			NEW_RATE=${RATESPEC%%/*}; NEW_BURST=${RATESPEC##*/}