summaryrefslogtreecommitdiffstats
path: root/usr
diff options
context:
space:
mode:
authorErmal Luçi <eri@pfsense.org>2009-07-28 09:59:13 +0000
committerErmal Luçi <eri@pfsense.org>2009-07-28 09:59:13 +0000
commit16f78ff043340b3f2f5d5bd74a9a58285e6dc51d (patch)
tree71df7a5686c0e9878455da4d51104a28c0b2ab1d /usr
parent3e6ec921910049845c131dd20a17a885f75fa61c (diff)
downloadpfsense-16f78ff043340b3f2f5d5bd74a9a58285e6dc51d.zip
pfsense-16f78ff043340b3f2f5d5bd74a9a58285e6dc51d.tar.gz
Fix the alias replacing when renamed so it does not do casualities like replacing thing with same name. This change prevents i.e. alias Test and Test34 refrenced in alias MyHome after renaming alias Test to Testagain the previous code would replace even Test34 to Testagin34 which is very unexpected.
Diffstat (limited to 'usr')
-rwxr-xr-xusr/local/www/firewall_aliases_edit.php10
1 files changed, 8 insertions, 2 deletions
diff --git a/usr/local/www/firewall_aliases_edit.php b/usr/local/www/firewall_aliases_edit.php
index 56159aa..7a49beb 100755
--- a/usr/local/www/firewall_aliases_edit.php
+++ b/usr/local/www/firewall_aliases_edit.php
@@ -244,8 +244,14 @@ if ($_POST) {
if (isset($id) && $a_aliases[$id]) {
if ($a_aliases[$id]['name'] <> $alias['name']) {
foreach ($a_aliases as $aliasid => $aliasd) {
- if (strstr($aliasd['address'], $a_aliases[$id]['name']))
- $a_aliases[$aliasid]['address'] = str_replace($a_aliases[$id]['name'], $alias['name'], $a_aliases[$aliasid]['address']);
+ if ($aliasd['address'] <> "") {
+ $tmpaddr = explode(" ", $aliasd['address']);
+ foreach ($tmpaddr as $tmpidx => $tmpalias) {
+ if ($tmpalias == $a_aliases[$id]['name'])
+ $tmpaddr[$tmpidx] = $alias['name'];
+ }
+ $a_aliases[$aliasid]['address'] = implode(" ", $tmpaddr);
+ }
}
}
$a_aliases[$id] = $alias;
OpenPOWER on IntegriCloud