1) When a BGP group is in use it is impossible to modify group's parameters. Click 'Save' gives you "Sorry this group is in use... and can not be deleted" Probably it is intended behavior but then we have to change the error message to "... can not be edited" which is not very logical as the idea behind using groups is to have some parameters common for all peers belonging to this group. If you agree with me please delete this check:

# diff -rub openbgpd_groups.xml.20090815.bak openbgpd_groups.xml
--- openbgpd_groups.xml.20090815.bak    2009-08-15 22:07:13.000000000 +0000
+++ openbgpd_groups.xml 2009-08-15 22:41:28.000000000 +0000
@@ -111,9 +111,4 @@
      <custom_php_resync_config_command>
              openbgpd_install_conf();
      </custom_php_resync_config_command>
-       <custom_php_validation_command>
-               $status = check_group_usage($_POST['groupname']);
-               if($status != "")
-                       $input_errors[] = "Sorry this group is in use by {$status} 
and cannot be deleted.";
-       </custom_php_validation_command>
</packagegui>

2) The group can be easily deleted even if it is in use without any impact on /usr/local/etc/bgpd.conf which leads to little mess. After that if you will edit your neighbor then this neighbor will be excluded from this group and thus probably will loose AS number. I could not find a way how to prevent this.
Probably we could create some tag in openbgpd_groups.xml like:
     <custom_php_del_validation_command>
             $status = check_group_usage($_POST['groupname']);
             if($status != "")
                     $input_errors[] = "Sorry this group is in use by {$status} and 
cannot be deleted.";
     </custom_php_del_validation_command>

... and use it in /usr/local/www/pkg.php before it actually deletes parameter:

line 66            if ($a_pkg[$_GET['id']]) {
+                       if($pkg['custom_php_del_validation'] <> "") {
+                               $status = 
eval($pkg['custom_php_del_validation'] );
+                               if ($status != ""){
+                                   header("Location:  pkg.php?xml=" . $xml);
+                                   exit;
+                              }
+                        }
                      unset($a_pkg[$_GET['id']]);
                      write_config();

... and it works (it's not deleted) but I can't find a way to tell user about 
the error.

Thanks,
Eugene



---------------------------------------------------------------------
To unsubscribe, e-mail: support-unsubscr...@pfsense.com
For additional commands, e-mail: support-h...@pfsense.com

Commercial support available - https://portal.pfsense.org

Reply via email to