Project

General

Profile

« Previous | Next » 

Revision 755405c1

Added by Seth Mos over 14 years ago

fix filter rules for requested ipv6 icmp types

View differences:

etc/inc/filter.inc
1839 1839
				$aline['reply'] = "reply-to ( {$ifcfg['if']} {$rg} ) ";
1840 1840
			} else {
1841 1841
				if($rule['interface'] <> "pptp") {
1842
					log_error("Could not find gateway for interface({$rule['interface']}).");
1842
					log_error("Could not find IPv6 gateway for interface({$rule['interface']}).");
1843 1843
				}
1844 1844
			}
1845 1845
		} else {
1846 1846
			$rg = get_interface_gateway($rule['interface']);
1847
			if(is_ipaddr($rg)) {
1847
			if(is_ipaddrv4($rg)) {
1848 1848
				$aline['reply'] = "reply-to ( {$ifcfg['if']} {$rg} ) ";
1849 1849
			} else {
1850 1850
				if($rule['interface'] <> "pptp") {
1851
					log_error("Could not find gateway for interface({$rule['interface']}).");
1851
					log_error("Could not find IPv4 gateway for interface({$rule['interface']}).");
1852 1852
				}
1853 1853
			}
1854 1854
		}
......
1904 1904
		$l7_structures = $l7rule->get_unique_structures();
1905 1905
		$aline['divert'] = "divert " . $l7rule->GetRPort() . " ";
1906 1906
	}
1907
	if(($rule['protocol'] == "icmp") && $rule['icmptype'])
1907
	if(($rule['protocol'] == "icmp") && $rule['icmptype'] && ($rule['ipprotocol'] == "inet"))
1908 1908
		$aline['icmp-type'] = "icmp-type {$rule['icmptype']} ";
1909
	if(($rule['protocol'] == "icmp6") && $rule['icmptype'])
1910
		$aline['icmp6-type'] = "icmp-type {$rule['icmptype']} ";
1909
	if(($rule['protocol'] == "icmp") && $rule['icmptype'] && ($rule['ipprotocol'] == "inet6"))
1910
		$aline['icmp6-type'] = "icmp6-type {$rule['icmptype']} ";
1911 1911
	if(!empty($rule['tag']))
1912 1912
		$aline['tag'] = " tag " .$rule['tag']. " ";
1913 1913
	if(!empty($rule['tagged']))

Also available in: Unified diff