Browse Source

+ fixed no_set_aspath_prepend() to correctly match existing "set" statement

Denis Ovsienko 12 years ago
parent
commit
a7f93f3e06
2 changed files with 16 additions and 1 deletions
  1. 6 0
      bgpd/ChangeLog
  2. 10 1
      bgpd/bgp_routemap.c

+ 6 - 0
bgpd/ChangeLog

@@ -1,3 +1,9 @@
+2007-12-18 Denis Ovsienko
+
+	* bgp_routemap.c: (no_set_aspath_prepend) This command cancelled
+	  existing "set" command regardless if "no set" matched it or not.
+	  Fixed.
+
 2007-11-13 Paul Jakma <paul.jakma@sun.com>
 
 	* bgp_main.c: Small fix, format string parameters should never

+ 10 - 1
bgpd/bgp_routemap.c

@@ -3018,7 +3018,16 @@ DEFUN (no_set_aspath_prepend,
        "Prepend string for a BGP AS-path attribute\n"
        "Prepend to the as-path\n")
 {
-  return bgp_route_set_delete (vty, vty->index, "as-path prepend", NULL);
+  int ret;
+  char *str;
+
+  if (argc == 0)
+    return bgp_route_set_delete (vty, vty->index, "as-path prepend", NULL);
+
+  str = argv_concat (argv, argc, 0);
+  ret = bgp_route_set_delete (vty, vty->index, "as-path prepend", str);
+  XFREE (MTYPE_TMP, str);
+  return ret;
 }
 
 ALIAS (no_set_aspath_prepend,