summaryrefslogtreecommitdiffstats
path: root/etc/inc/util.inc
diff options
context:
space:
mode:
authorjim-p <jimp@pfsense.org>2012-04-11 11:58:21 -0400
committerjim-p <jimp@pfsense.org>2012-04-11 11:58:21 -0400
commitf898c1a98213ec6b2497608c181ba3bb149a234b (patch)
tree511e3f401a208e114467d79151525d37e4748a27 /etc/inc/util.inc
parentfdcf104ce4f5320a5a182a0c4b378174959a7caf (diff)
downloadpfsense-f898c1a98213ec6b2497608c181ba3bb149a234b.zip
pfsense-f898c1a98213ec6b2497608c181ba3bb149a234b.tar.gz
Add alias support to static routes (needs some testing) Ticket #2239
Conflicts: etc/inc/filter.inc etc/inc/util.inc usr/local/www/system_routes_edit.php
Diffstat (limited to 'etc/inc/util.inc')
-rw-r--r--etc/inc/util.inc37
1 files changed, 37 insertions, 0 deletions
diff --git a/etc/inc/util.inc b/etc/inc/util.inc
index 087bce8..4c92396 100644
--- a/etc/inc/util.inc
+++ b/etc/inc/util.inc
@@ -1680,6 +1680,7 @@ function array_merge_recursive_unique($array0, $array1) {
return $result;
}
+
/*
* converts a string like "a,b,c,d"
* into an array like array("a" => "b", "c" => "d")
@@ -1694,4 +1695,40 @@ function explode_assoc($delimiter, $string) {
return $result;
}
+function get_staticroutes($returnsubnetsonly = false) {
+ global $config;
+ require_once('filter.inc');
+ $allstaticroutes = array();
+ $allsubnets = array();
+
+ /* Bail if there are no routes, but return an array always so callers don't have to check. */
+ if (!is_array($config['staticroutes']['route']))
+ return array();
+
+ /* Loop through routes and expand aliases as we find them. */
+ foreach ($config['staticroutes']['route'] as $route) {
+ if (is_alias($route['network'])) {
+ $subnets = filter_expand_alias_array($route['network']);
+ foreach ($subnets as $net) {
+ if (is_ipaddr($net))
+ $net .= "/32";
+ /* This must be a hostname, we can't use it. */
+ if (!is_subnet($net))
+ continue;
+ $temproute = $route;
+ $temproute['network'] = $net;
+ $allstaticroutes[] = $temproute;
+ $allsubnets[] = $net;
+ }
+ } elseif (is_subnet($route['network'])) {
+ $allstaticroutes[] = $route;
+ $allsubnets[] = $route['network'];
+ }
+ }
+ if ($returnsubnetsonly) {
+ return $allsubnets;
+ } else {
+ return $allstaticroutes;
+ }
+}
?>
OpenPOWER on IntegriCloud