]> git.puffer.fish Git - mirror/frr.git/commitdiff
lib: fix route map generic error output
authorRafael Zalamena <rzalamena@opensourcerouting.org>
Mon, 30 Sep 2019 18:02:15 +0000 (15:02 -0300)
committerRafael Zalamena <rzalamena@opensourcerouting.org>
Tue, 4 Feb 2020 17:05:43 +0000 (14:05 -0300)
Two fixes here:

*   Don't attempt to use `vty` pointer in vty;
*   When `vty` is unavailable output to log;

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
lib/routemap.c

index e07ad0812333b892839d81fd78a12267a399d6e9..5369fa771f2672e5e8dabd857f8817569eef5b37 100644 (file)
@@ -308,15 +308,21 @@ int generic_match_add(struct vty *vty, struct route_map_index *index,
        ret = route_map_add_match(index, command, arg, type);
        switch (ret) {
        case RMAP_RULE_MISSING:
-               vty_out(vty, "%% [%s] Can't find rule.\n", frr_protonameinst);
+               if (vty)
+                       vty_out(vty, "%% [%s] Can't find rule.\n",
+                               frr_protonameinst);
+               else
+                       zlog_warn("Can't find rule: %s", command);
                return CMD_WARNING_CONFIG_FAILED;
-               break;
        case RMAP_COMPILE_ERROR:
-               vty_out(vty,
-                       "%% [%s] Argument form is unsupported or malformed.\n",
-                       frr_protonameinst);
+               if (vty)
+                       vty_out(vty,
+                               "%% [%s] Argument form is unsupported or malformed.\n",
+                               frr_protonameinst);
+               else
+                       zlog_warn("Argument form is unsupported or malformed: "
+                                 "%s %s", command, arg);
                return CMD_WARNING_CONFIG_FAILED;
-               break;
        case RMAP_COMPILE_SUCCESS:
                /*
                 * Nothing to do here move along
@@ -353,13 +359,21 @@ int generic_match_delete(struct vty *vty, struct route_map_index *index,
        ret = route_map_delete_match(index, command, dep_name, type);
        switch (ret) {
        case RMAP_RULE_MISSING:
-               vty_out(vty, "%% [%s] Can't find rule.\n", frr_protonameinst);
+               if (vty)
+                       vty_out(vty, "%% [%s] Can't find rule.\n",
+                               frr_protonameinst);
+               else
+                       zlog_warn("Can't find rule: %s", command);
                retval = CMD_WARNING_CONFIG_FAILED;
                break;
        case RMAP_COMPILE_ERROR:
-               vty_out(vty,
-                       "%% [%s] Argument form is unsupported or malformed.\n",
-                       frr_protonameinst);
+               if (vty)
+                       vty_out(vty,
+                               "%% [%s] Argument form is unsupported or malformed.\n",
+                               frr_protonameinst);
+               else
+                       zlog_warn("Argument form is unsupported or malformed: "
+                                 "%s %s", command, arg);
                retval = CMD_WARNING_CONFIG_FAILED;
                break;
        case RMAP_COMPILE_SUCCESS:
@@ -383,15 +397,20 @@ int generic_set_add(struct vty *vty, struct route_map_index *index,
        ret = route_map_add_set(index, command, arg);
        switch (ret) {
        case RMAP_RULE_MISSING:
-               vty_out(vty, "%% [%s] Can't find rule.\n", frr_protonameinst);
+               if (vty)
+                       vty_out(vty, "%% [%s] Can't find rule.\n", frr_protonameinst);
+               else
+                       zlog_warn("Can't find rule: %s", command);
                return CMD_WARNING_CONFIG_FAILED;
-               break;
        case RMAP_COMPILE_ERROR:
-               vty_out(vty,
-                       "%% [%s] Argument form is unsupported or malformed.\n",
-                       frr_protonameinst);
+               if (vty)
+                       vty_out(vty,
+                               "%% [%s] Argument form is unsupported or malformed.\n",
+                               frr_protonameinst);
+               else
+                       zlog_warn("Argument form is unsupported or malformed: "
+                                 "%s %s", command, arg);
                return CMD_WARNING_CONFIG_FAILED;
-               break;
        case RMAP_COMPILE_SUCCESS:
                break;
        }
@@ -407,15 +426,20 @@ int generic_set_delete(struct vty *vty, struct route_map_index *index,
        ret = route_map_delete_set(index, command, arg);
        switch (ret) {
        case RMAP_RULE_MISSING:
-               vty_out(vty, "%% [%s] Can't find rule.\n", frr_protonameinst);
+               if (vty)
+                       vty_out(vty, "%% [%s] Can't find rule.\n", frr_protonameinst);
+               else
+                       zlog_warn("Can't find rule: %s", command);
                return CMD_WARNING_CONFIG_FAILED;
-               break;
        case RMAP_COMPILE_ERROR:
-               vty_out(vty,
-                       "%% [%s] Argument form is unsupported or malformed.\n",
-                       frr_protonameinst);
+               if (vty)
+                       vty_out(vty,
+                               "%% [%s] Argument form is unsupported or malformed.\n",
+                               frr_protonameinst);
+               else
+                       zlog_warn("Argument form is unsupported or malformed: "
+                                 "%s %s", command, arg);
                return CMD_WARNING_CONFIG_FAILED;
-               break;
        case RMAP_COMPILE_SUCCESS:
                break;
        }