summaryrefslogtreecommitdiffstats
path: root/usr/local/www/firewall_aliases_import.php
diff options
context:
space:
mode:
authorErmal Luçi <eri@pfsense.org>2009-12-09 12:37:34 +0000
committerErmal Luçi <eri@pfsense.org>2009-12-09 12:37:34 +0000
commit984c64a43ba1ea8735175a6adb37eddaa2e3f88c (patch)
tree4d9639c9e974bc83761253e8bf68d91fc89b4af0 /usr/local/www/firewall_aliases_import.php
parentc13b87a076e49202cc35248a9327e63452b403c6 (diff)
downloadpfsense-984c64a43ba1ea8735175a6adb37eddaa2e3f88c.zip
pfsense-984c64a43ba1ea8735175a6adb37eddaa2e3f88c.tar.gz
Add the same checks to the aliases import functionality as the ones that are done during creation/editing of aliases. Ticket #146
Diffstat (limited to 'usr/local/www/firewall_aliases_import.php')
-rwxr-xr-xusr/local/www/firewall_aliases_import.php36
1 files changed, 36 insertions, 0 deletions
diff --git a/usr/local/www/firewall_aliases_import.php b/usr/local/www/firewall_aliases_import.php
index fab4dae..18c797d 100755
--- a/usr/local/www/firewall_aliases_import.php
+++ b/usr/local/www/firewall_aliases_import.php
@@ -39,10 +39,18 @@
$pgtitle = array("Firewall","Aliases","Import");
+$reserved_keywords = array("pass", "out", "queue", "max", "min", "pptp");
+
require("guiconfig.inc");
require("filter.inc");
require("shaper.inc");
+$reserved_ifs = get_configured_interface_list(false, true);
+$reserved_keywords = array_merge($reserved_keywords, $reserved_ifs);
+
+if (!is_array($config['aliases']['alias']))
+ $config['aliases']['alias'] = array();
+
aliases_sort();
$a_aliases = &$config['aliases']['alias'];
@@ -52,10 +60,38 @@ if($_POST['aliasimport'] <> "") {
do_input_validation($_POST, $reqdfields, $reqdfieldsn, &$input_errors);
+ if (is_validaliasname($_POST['name']) == false)
+ $input_errors[] = "The alias name may only consist of the characters a-z, A-Z, 0-9, _.";
+
+ /* check for name conflicts */
+ foreach ($a_aliases as $alias) {
+ if (isset($id) && ($a_aliases[$id]) && ($a_aliases[$id] === $alias))
+ continue;
+
+ if ($alias['name'] == $_POST['name']) {
+ $input_errors[] = "An alias with this name already exists.";
+ break;
+ }
+ }
+
+ /* Check for reserved keyword names */
+ foreach($reserved_keywords as $rk)
+ if ($rk == $_POST['name'])
+ $input_errors[] = "Cannot use a reserved keyword as alias name $rk";
+
+ /* check for name interface description conflicts */
+ foreach($config['interfaces'] as $interface) {
+ if($interface['descr'] == $_POST['name']) {
+ $input_errors[] = "An interface description with this name already exists.";
+ break;
+ }
+ }
+
if (!$input_errors) {
$alias = array();
$alias['address'] = str_replace("\n", " ", $_POST['aliasimport']);
$alias['name'] = $_POST['name'];
+ $alias['type'] = "network";
$alias['descr'] = $_POST['descr'];
$a_aliases[] = $alias;
write_config();
OpenPOWER on IntegriCloud