diff options
author | Ermal Luçi <eri@pfsense.org> | 2009-07-28 09:59:13 +0000 |
---|---|---|
committer | Ermal Luçi <eri@pfsense.org> | 2009-07-28 09:59:13 +0000 |
commit | 16f78ff043340b3f2f5d5bd74a9a58285e6dc51d (patch) | |
tree | 71df7a5686c0e9878455da4d51104a28c0b2ab1d /usr | |
parent | 3e6ec921910049845c131dd20a17a885f75fa61c (diff) | |
download | pfsense-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-x | usr/local/www/firewall_aliases_edit.php | 10 |
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; |