diff options
author | Renato Botelho <garga@FreeBSD.org> | 2015-02-05 10:02:24 -0200 |
---|---|---|
committer | Renato Botelho <garga@FreeBSD.org> | 2015-02-05 20:10:15 -0200 |
commit | 07cf2c4b20230ddedee1bf9dddc1e7cd407385f5 (patch) | |
tree | 44d40561519e0018ad586bb1449e107c9ae431f3 /config/iprangealiases | |
parent | e526e4aa28867b7743b0e76993f5f6bebd15bc1b (diff) | |
download | pfsense-packages-07cf2c4b20230ddedee1bf9dddc1e7cd407385f5.tar.gz pfsense-packages-07cf2c4b20230ddedee1bf9dddc1e7cd407385f5.tar.bz2 pfsense-packages-07cf2c4b20230ddedee1bf9dddc1e7cd407385f5.zip |
Packages repo cleanup:
- Drop support for pfSense < 2
- Remove archive/, old files can be reached using git
- Remove old and unused packages
- Move stale files from config subdir to a package subdir
Diffstat (limited to 'config/iprangealiases')
-rw-r--r-- | config/iprangealiases/iprangealiases.inc | 18 | ||||
-rw-r--r-- | config/iprangealiases/iprangealiases.patch | 265 | ||||
-rw-r--r-- | config/iprangealiases/iprangealiases.xml | 65 |
3 files changed, 0 insertions, 348 deletions
diff --git a/config/iprangealiases/iprangealiases.inc b/config/iprangealiases/iprangealiases.inc deleted file mode 100644 index 036bc195..00000000 --- a/config/iprangealiases/iprangealiases.inc +++ /dev/null @@ -1,18 +0,0 @@ -<?php - -function iprangealiases_install() { - global $g, $config; - - // Test to make sure the patch is not already applied. - $out = `patch -fslC --reverse -p1 -b .before_iprangealiases -d / -i /usr/local/pkg/iprangealiases.patch |& grep -ci reject`; - if ($out == 0) { - // If the patch has not already been applied, test to see if it will apply cleanly. - $out = `patch -fsNlC -p1 -b .before_iprangealiases -d / -i /usr/local/pkg/iprangealiases.patch |& grep -ci reject`; - if ($out == 0) { - // The patch should apply cleanly, let 'er rip. - mwexec("patch -fsNl -p1 -b .before_iprangealiases -d / -i /usr/local/pkg/iprangealiases.patch "); - } - } -} - -?>
\ No newline at end of file diff --git a/config/iprangealiases/iprangealiases.patch b/config/iprangealiases/iprangealiases.patch deleted file mode 100644 index 5a80e111..00000000 --- a/config/iprangealiases/iprangealiases.patch +++ /dev/null @@ -1,265 +0,0 @@ ---- /etc/inc/util.inc.orig 2010-03-09 13:01:37.000000000 -0500 -+++ /etc/inc/util.inc 2010-03-09 13:01:40.000000000 -0500 -@@ -78,6 +78,127 @@ - return long2ip(gen_subnet_mask_long($bits)); - } - -+/* Convert IP address to unsigned long int. */ -+function ip2ulong($ip) { -+ return sprintf("%u", ip2long($ip)); -+} -+ -+/* Find out how many IPs are contained within a given IP range -+ * e.g. 192.168.0.0 to 192.168.0.255 returns 256 -+ */ -+function ip_range_size($startip, $endip) { -+ if (is_ipaddr($startip) && is_ipaddr($endip)) { -+ // Operate as unsigned long because otherwise it wouldn't work -+ // when crossing over from 127.255.255.255 / 128.0.0.0 barrier -+ return abs(ip2ulong($startip) - ip2ulong($endip)) + 1; -+ } -+ return -1; -+} -+ -+/* Find the smallest possible subnet mask which can contain a given number of IPs -+ * e.g. 512 IPs can fit in a /23, but 513 IPs need a /22 -+ */ -+function find_smallest_cidr($number) { -+ $smallest = 1; -+ for ($b=32; $b > 0; $b--) { -+ $smallest = ($number <= pow(2,$b)) ? $b : $smallest; -+ } -+ return (32-$smallest); -+} -+ -+/* Return the previous IP address before the given address */ -+function ip_before($ip) { -+ return long2ip(ip2long($ip)-1); -+} -+ -+/* Return the next IP address after the given address */ -+function ip_after($ip) { -+ return long2ip(ip2long($ip)+1); -+} -+ -+/* Return true if the first IP is 'before' the second */ -+function ip_less_than($ip1, $ip2) { -+ // Compare as unsigned long because otherwise it wouldn't work when -+ // crossing over from 127.255.255.255 / 128.0.0.0 barrier -+ return ip2ulong($ip1) < ip2ulong($ip2); -+} -+ -+/* Return true if the first IP is 'after' the second */ -+function ip_greater_than($ip1, $ip2) { -+ // Compare as unsigned long because otherwise it wouldn't work -+ // when crossing over from 127.255.255.255 / 128.0.0.0 barrier -+ return ip2ulong($ip1) > ip2ulong($ip2); -+} -+ -+/* Convert a range of IPs to an array of subnets which can contain the range. */ -+function ip_range_to_subnet_array($startip, $endip) { -+ if (!is_ipaddr($startip) || !is_ipaddr($endip)) { -+ return array(); -+ } -+ -+ // Container for subnets within this range. -+ $rangesubnets = array(); -+ -+ // Figure out what the smallest subnet is that holds the number of IPs in the given range. -+ $cidr = find_smallest_cidr(ip_range_size($startip, $endip)); -+ -+ // Loop here to reduce subnet size and retest as needed. We need to make sure -+ // that the target subnet is wholly contained between $startip and $endip. -+ for ($cidr; $cidr <= 32; $cidr++) { -+ // Find the network and broadcast addresses for the subnet being tested. -+ $targetsub_min = gen_subnet($startip, $cidr); -+ $targetsub_max = gen_subnet_max($startip, $cidr); -+ -+ // Check best case where the range is exactly one subnet. -+ if (($targetsub_min == $startip) && ($targetsub_max == $endip)) { -+ // Hooray, the range is exactly this subnet! -+ return array("{$startip}/{$cidr}"); -+ } -+ -+ // These remaining scenarios will find a subnet that uses the largest -+ // chunk possible of the range being tested, and leave the rest to be -+ // tested recursively after the loop. -+ -+ // Check if the subnet begins with $startip and ends before $endip -+ if (($targetsub_min == $startip) && ip_less_than($targetsub_max, $endip)) { -+ break; -+ } -+ -+ // Check if the subnet ends at $endip and starts after $startip -+ if (ip_greater_than($targetsub_min, $startip) && ($targetsub_max == $endip)) { -+ break; -+ } -+ -+ // Check if the subnet is between $startip and $endip -+ if (ip_greater_than($targetsub_min, $startip) && ip_less_than($targetsub_max, $endip)) { -+ break; -+ } -+ } -+ -+ // Some logic that will recursivly search from $startip to the first IP before the start of the subnet we just found. -+ // NOTE: This may never be hit, the way the above algo turned out, but is left for completeness. -+ if ($startip != $targetsub_min) { -+ $rangesubnets = array_merge($rangesubnets, ip_range_to_subnet_array($startip, ip_before($targetsub_min))); -+ } -+ -+ // Add in the subnet we found before, to preserve ordering -+ $rangesubnets[] = "{$targetsub_min}/{$cidr}"; -+ -+ // And some more logic that will search after the subnet we found to fill in to the end of the range. -+ if ($endip != $targetsub_max) { -+ $rangesubnets = array_merge($rangesubnets, ip_range_to_subnet_array(ip_after($targetsub_max), $endip)); -+ } -+ return $rangesubnets; -+} -+ -+function is_iprange($range) { -+ if (substr_count($range, '-') != 1) { -+ return false; -+ } -+ list($ip1, $ip2) = explode ('-', $range); -+ return (is_ipaddr($ip1) && is_ipaddr($ip2)); -+} -+ - function is_numericint($arg) { - return (preg_match("/[^0-9]/", $arg) ? false : true); - } ---- /usr/local/www/firewall_aliases_edit.php.orig 2010-03-09 13:08:12.000000000 -0500 -+++ /usr/local/www/firewall_aliases_edit.php 2010-03-10 18:54:36.000000000 -0500 -@@ -96,11 +96,6 @@ - $reqdfields = explode(" ", "name address"); - $reqdfieldsn = explode(",", "Name,Address"); - -- if ($_POST['type'] == "network") { -- $reqdfields[] = "address_subnet"; -- $reqdfieldsn[] = "Subnet bit count"; -- } -- - do_input_validation($_POST, $reqdfields, $reqdfieldsn, &$input_errors); - - if(strtolower($_POST['name']) == "lan") -@@ -122,10 +117,13 @@ - $input_errors[] = "A valid address must be specified."; - } - if ($_POST['type'] == "network") { -- if (!is_ipaddr($_POST['address'])) { -+ if (!is_numeric($_POST['address_subnet']) && !is_iprange($_POST['address'])) { -+ $input_errors[] = "Subnet bit count must be specified"; -+ } -+ if (!is_ipaddr($_POST['address']) && !is_iprange($_POST['address'])) { - $input_errors[] = "A valid address must be specified."; - } -- if (!is_numeric($_POST['address_subnet'])) { -+ if (!is_numeric($_POST['address_subnet']) && !is_iprange($_POST['address'])) { - $input_errors[] = "A valid subnet bit count must be specified."; - } - } -@@ -160,21 +158,28 @@ - - $alias = array(); - $alias['name'] = $_POST['name']; -- if ($_POST['type'] == "network") -- $alias['address'] = $_POST['address'] . "/" . $_POST['address_subnet']; - -- else -+ $count = 1; -+ if ($_POST['type'] == "network") { -+ if (is_iprange($_POST['address'])) { -+ list($startip, $endip) = explode('-', $_POST["address"]); -+ $rangesubnets = ip_range_to_subnet_array($startip, $endip); -+ $count = count($rangesubnets); -+ $alias['address'] .= implode($rangesubnets, ' '); -+ } else { -+ $alias['address'] = $_POST['address'] . "/" . $_POST['address_subnet']; -+ } -+ } else { - $alias['address'] = $_POST['address']; -+ } - - $address = $alias['address']; - $final_address_detail = mb_convert_encoding($_POST['detail'],"HTML-ENTITIES","auto"); -- if($final_address_detail <> "") { -- $final_address_details .= $final_address_detail; -+ if($final_address_detail <> "") { -+ $final_address_details .= str_repeat($final_address_detail . "||", $count); - } else { -- $final_address_details .= "Entry added" . " "; -- $final_address_details .= date('r'); -- } -- $final_address_details .= "||"; -+ $final_address_details .= str_repeat("Entry added " . date('r') . "||", $count); -+ } - $isfirst = 0; - - if($_POST['type'] == "url") { -@@ -234,28 +239,38 @@ - } else { - /* item is a normal alias type */ - for($x=0; $x<299; $x++) { -+ $count = 1; - $comd = "\$subnet = \$_POST['address" . $x . "'];"; - eval($comd); - $comd = "\$subnet_address = \$_POST['address_subnet" . $x . "'];"; - eval($comd); - if($subnet <> "") { -- $address .= " "; -- $address .= $subnet; -- if($subnet_address <> "") $address .= "/" . $subnet_address; -+ if ($_POST['type'] == "network" && is_iprange($subnet)) { -+ list($startip, $endip) = explode('-', $subnet); -+ $rangesubnets = ip_range_to_subnet_array($startip, $endip); -+ $count = count($rangesubnets); -+ if ($address <> "") { -+ $address .= " "; -+ } -+ $address .= implode($rangesubnets, ' '); -+ } else { -+ $address .= " " . $subnet; -+ if ($subnet_address <> "") { -+ $address .= "/" . $subnet_address; -+ } -+ } - - /* Compress in details to a single key, data separated by pipes. - Pulling details here lets us only pull in details for valid - address entries, saving us from having to track which ones to - process later. */ -- $comd = "\$final_address_detail = mb_convert_encoding(\$_POST['detail" . $x . "'],'HTML-ENTITIES','auto');"; -- eval($comd); -- if($final_address_detail <> "") { -- $final_address_details .= $final_address_detail; -- } else { -- $final_address_details .= "Entry added" . " "; -- $final_address_details .= date('r'); -- } -- $final_address_details .= "||"; -+ $comd = "\$final_address_detail = mb_convert_encoding(\$_POST['detail" . $x . "'],'HTML-ENTITIES','auto');"; -+ eval($comd); -+ if($final_address_detail <> "") { -+ $final_address_details .= str_repeat($final_address_detail . "||", $count); -+ } else { -+ $final_address_details .= str_repeat("Entry added " . date('r') . "||", $count); -+ } - } - } - } -@@ -358,7 +373,7 @@ - $url_str = gettext("URL"); - $update_freq_str = gettext("Update Freq."); - --$networks_help = gettext("Networks can be expressed like 10.0.0.0 format. Select the CIDR (network mask) that pertains to each entry."); -+$networks_help = gettext("Networks can be expressed like 10.0.0.0 format. Select the CIDR (network mask) that pertains to each entry. You may also enter an IP Range such as 192.168.1.1-192.168.1.254."); - $hosts_help = gettext("Enter as many hosts as you would like. Hosts should be expressed in their ip address format."); - $ports_help = gettext("Enter as many ports as you wish. Port ranges can be expressed by seperating with a colon."); - $url_help = gettext("Enter as many urls as you wish. Also set the time that you would like the url refreshed in days. After saving {$g['product_name']} will download the URL and import the items into the alias."); -@@ -595,4 +610,4 @@ - } - fclose($fd); - } --?> -\ No newline at end of file -+?> diff --git a/config/iprangealiases/iprangealiases.xml b/config/iprangealiases/iprangealiases.xml deleted file mode 100644 index 87af9b4b..00000000 --- a/config/iprangealiases/iprangealiases.xml +++ /dev/null @@ -1,65 +0,0 @@ -<?xml version="1.0" encoding="utf-8" ?> -<!DOCTYPE packagegui SYSTEM "../schema/packages.dtd"> -<?xml-stylesheet type="text/xsl" href="../xsl/package.xsl"?> -<packagegui> - <copyright> - <![CDATA[ -/* $Id$ */ -/* ========================================================================== */ -/* - iprangealiases.xml - part of pfSense (http://www.pfSense.com) - Copyright (C) 2007 to whom it may belong - All rights reserved. - - Based on m0n0wall (http://m0n0.ch/wall) - Copyright (C) 2003-2006 Manuel Kasper <mk@neon1.net>. - All rights reserved. - */ -/* ========================================================================== */ -/* - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY - AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, - OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - */ -/* ========================================================================== */ - ]]> - </copyright> - <description>Patch to add IP Range Support to Network Aliases</description> - <requirements>pfSense 1.2.3</requirements> - <faq>None</faq> - <name>IP Range Aliases</name> - <version>0.2</version> - <title>IP Range Aliases</title> - <include_file>/usr/local/pkg/iprangealiases.inc</include_file> - <additional_files_needed> - <prefix>/usr/local/pkg/</prefix> - <chmod>077</chmod> - <item>https://packages.pfsense.org/packages/config/iprangealiases/iprangealiases.inc</item> - </additional_files_needed> - <additional_files_needed> - <prefix>/usr/local/pkg/</prefix> - <chmod>077</chmod> - <item>https://packages.pfsense.org/packages/config/iprangealiases/iprangealiases.patch</item> - </additional_files_needed> - <custom_php_install_command> - iprangealiases_install(); - </custom_php_install_command> -</packagegui> |