summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpaul <paul>2003-05-24 06:40:04 +0000
committerpaul <paul>2003-05-24 06:40:04 +0000
commitbfc135325e9b0768c78b51c9495eb0fbabc59db6 (patch)
treec754c2132248a7436ca8012d383a73f89fcc66ef
parentfd2dfce21bb21cc2f3d6de723812875ec7abc1f5 (diff)
From: Hasso Tepper <hasso@estpak.ee>
ensure only interfaces that are inactive or do not exist can be deleted
-rw-r--r--lib/if.c8
-rw-r--r--zebra/interface.c32
2 files changed, 7 insertions, 33 deletions
diff --git a/lib/if.c b/lib/if.c
index 2ca8c94b..f003754a 100644
--- a/lib/if.c
+++ b/lib/if.c
@@ -453,9 +453,13 @@ DEFUN_NOSH (no_interface,
ifp = if_lookup_by_name (argv[0]);
if (ifp == NULL)
- return CMD_SUCCESS;
+ {
+ vty_out (vty, "%% Inteface %s does not exist%s", argv[0], VTY_NEWLINE);
+ return CMD_WARNING;
+ }
- if (if_is_up(ifp)) {
+ if (CHECK_FLAG (ifp->status, ZEBRA_INTERFACE_ACTIVE))
+ {
vty_out (vty, "%% Only inactive interfaces can be deleted%s",
VTY_NEWLINE);
return CMD_WARNING;
diff --git a/zebra/interface.c b/zebra/interface.c
index c9f71320..f2374316 100644
--- a/zebra/interface.c
+++ b/zebra/interface.c
@@ -674,36 +674,6 @@ DEFUN_NOSH (zebra_interface,
return ret;
}
-DEFUN_NOSH (no_zebra_interface,
- no_zebra_interface_cmd,
- "no interface IFNAME",
- "Delete a pseudo interface's configuration\n"
- "Interface's name\n")
-{
- struct interface *ifp;
-
- ifp = if_lookup_by_name(argv[0]);
-
- if (ifp == NULL)
- {
- vty_out (vty, "Inteface %s does not exist%s",
- argv[0],
- VTY_NEWLINE);
- return CMD_WARNING;
- }
-
- if (CHECK_FLAG (ifp->status, ZEBRA_INTERFACE_ACTIVE))
- {
- vty_out(vty, "%% Only inactive interfaces can be deleted%s", VTY_NEWLINE);
- return CMD_WARNING;
- }
-
- /* Delete interface */
- if_delete(ifp);
-
- return CMD_SUCCESS;
-}
-
struct cmd_node interface_node =
{
INTERFACE_NODE,
@@ -1431,7 +1401,7 @@ zebra_if_init ()
install_element (VIEW_NODE, &show_interface_cmd);
install_element (ENABLE_NODE, &show_interface_cmd);
install_element (CONFIG_NODE, &zebra_interface_cmd);
- install_element (CONFIG_NODE, &no_zebra_interface_cmd);
+ install_element (CONFIG_NODE, &no_interface_cmd);
install_default (INTERFACE_NODE);
install_element (INTERFACE_NODE, &interface_desc_cmd);
install_element (INTERFACE_NODE, &no_interface_desc_cmd);