Project

General

Profile

« Previous | Next » 

Revision e9685c45

Added by Matt Underscore about 7 years ago

- Fixed a bug where you could not get an ECN-incapable scheduler or AQM to work: noecn was appended in rules.limiter.
- Made a change to an array reference that was breaking my test

View differences:

src/etc/inc/shaper.inc
4026 4026
		$selectedAQM = getAQMs()[$this->getAQM()];
4027 4027
		if ($selectedAQM) {
4028 4028
			$pfq_rule .= " " . FormatParameters($selectedAQM["parameter_format"], $this->aqm_params);
4029
			if ($this->getECN() == 'on' && $selectedAQM["ecn"]) {
4030
				$pfq_rule .= ' ecn';
4031
			} else {
4032
				$pfq_rule .= ' noecn';
4029
			if ($selectedAQM["ecn"]) {
4030
				if ($this->getECN() == 'on') {
4031
					$pfq_rule .= ' ecn';
4032
				} else {
4033
					$pfq_rule .= ' noecn';
4034
				}
4033 4035
			}
4034 4036
		}
4035
		$pfq_rule .= "\n";
4036 4037
		$selectedScheduler = getSchedulers()[$this->getScheduler()];
4037 4038
		if ($selectedScheduler) {
4038 4039
			$pfq_rule .= "\nsched ". $this->GetNumber() . " config " . FormatParameters($selectedScheduler["parameter_format"], $this->scheduler_params);
4039
			if ($this->getECN() == 'on' && $selectedScheduler["ecn"]) {
4040
				$pfq_rule .= ' ecn';
4041
			} else {
4042
				$pfq_rule .= ' noecn';
4040
			if ($selectedScheduler["ecn"]) {
4041
				if ($this->getECN() == 'on') {
4042
					$pfq_rule .= ' ecn';
4043
				} else {
4044
					$pfq_rule .= ' noecn';
4045
				}
4043 4046
			}
4044
			$pfq_rule .= "\n";
4045 4047
		}
4048
		$pfq_rule .= "\n";
4046 4049
		/* End patch */
4047 4050
		
4048 4051
		if (!empty($this->subqueues) && count($this->subqueues) > 0) {
......
4634 4637
		$selectedAQM = getAQMs()[$this->getAQM()];
4635 4638
		if ($selectedAQM) {
4636 4639
			$pfq_rule .= " " . FormatParameters($selectedAQM["parameter_format"], $this->aqm_params);
4637
			if ($this->getECN() == 'on' && $selectedAQM["ecn"]) {
4638
				$pfq_rule .= ' ecn';
4639
			} else {
4640
				$pfq_rule .= ' noecn';
4640
			if ($selectedAQM["ecn"]) {
4641
				if ($this->getECN() == 'on') {
4642
					$pfq_rule .= ' ecn';
4643
				} else {
4644
					$pfq_rule .= ' noecn';
4645
				}
4641 4646
			}
4642 4647
		}
4643 4648
		/* End patch */
......
5035 5040
		}
5036 5041
		$__tmp_root = new dnpipe_class(); $root =& $__tmp_root;
5037 5042
		$root->ReadConfig($conf);
5038
		$dummynet_pipe_list[$root->GetQname()] = &$root;
5043
		$dummynet_pipe_list[$root->GetQname()] = $root; // matt_: WEIRD referential issues with &$root - fixing here (shapers listed in GUI: c,c,c with list of a,b,c in config?) only tail array element was showing in GUI
5039 5044
		array_push($path, $key);
5040 5045
		$root->SetLink($path);
5041 5046
		if (is_array($conf['queue'])) {

Also available in: Unified diff