]> git.puffer.fish Git - mirror/frr.git/commitdiff
lib: use json-printf in filter code 10084/head
authorDavid Lamparter <equinox@opensourcerouting.org>
Wed, 17 Nov 2021 11:11:04 +0000 (12:11 +0100)
committerDavid Lamparter <equinox@opensourcerouting.org>
Wed, 17 Nov 2021 15:01:30 +0000 (16:01 +0100)
(This is mostly just to exercise the code, the actual replacement needs
to be a cocci script.)

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
lib/filter.c

index 2de5bd657cc93e0684391cc19ea5eb8eb6bc22d7..fc4b578e77986c55feaea2e4f6212a8537deeff0 100644 (file)
@@ -558,18 +558,12 @@ static int filter_show(struct vty *vty, const char *name, afi_t afi,
                                                          json_rule);
                        else {
                                if (json) {
-                                       char buf[BUFSIZ];
-
-                                       json_object_string_add(
-                                               json_rule, "address",
-                                               inet_ntop(AF_INET,
-                                                         &filter->addr, buf,
-                                                         sizeof(buf)));
-                                       json_object_string_add(
-                                               json_rule, "mask",
-                                               inet_ntop(AF_INET,
-                                                         &filter->addr_mask,
-                                                         buf, sizeof(buf)));
+                                       json_object_string_addf(
+                                               json_rule, "address", "%pI4",
+                                               &filter->addr);
+                                       json_object_string_addf(
+                                               json_rule, "mask", "%pI4",
+                                               &filter->addr_mask);
                                } else {
                                        if (filter->addr_mask.s_addr
                                            == 0xffffffff)
@@ -674,21 +668,15 @@ static void config_write_access_cisco(struct vty *vty, struct filter *mfilter,
        filter = &mfilter->u.cfilter;
 
        if (json) {
-               char buf[BUFSIZ];
-
                json_object_boolean_add(json, "extended", !!filter->extended);
-               json_object_string_add(
-                       json, "sourceAddress",
-                       inet_ntop(AF_INET, &filter->addr, buf, sizeof(buf)));
-               json_object_string_add(json, "sourceMask",
-                                      inet_ntop(AF_INET, &filter->addr_mask,
-                                                buf, sizeof(buf)));
-               json_object_string_add(
-                       json, "destinationAddress",
-                       inet_ntop(AF_INET, &filter->mask, buf, sizeof(buf)));
-               json_object_string_add(json, "destinationMask",
-                                      inet_ntop(AF_INET, &filter->mask_mask,
-                                                buf, sizeof(buf)));
+               json_object_string_addf(json, "sourceAddress", "%pI4",
+                                       &filter->addr);
+               json_object_string_addf(json, "sourceMask", "%pI4",
+                                       &filter->addr_mask);
+               json_object_string_addf(json, "destinationAddress", "%pI4",
+                                       &filter->mask);
+               json_object_string_addf(json, "destinationMask", "%pI4",
+                                       &filter->mask_mask);
        } else {
                vty_out(vty, " ip");
                if (filter->addr_mask.s_addr == 0xffffffff)
@@ -723,16 +711,13 @@ static void config_write_access_zebra(struct vty *vty, struct filter *mfilter,
        p = &filter->prefix;
 
        if (json) {
-               json_object_string_add(json, "prefix",
-                                      prefix2str(p, buf, sizeof(buf)));
+               json_object_string_addf(json, "prefix", "%pFX", p);
                json_object_boolean_add(json, "exact-match", !!filter->exact);
        } else {
                if (p->prefixlen == 0 && !filter->exact)
                        vty_out(vty, " any");
                else if (p->family == AF_INET6 || p->family == AF_INET)
-                       vty_out(vty, " %s/%d%s",
-                               inet_ntop(p->family, &p->u.prefix, buf, BUFSIZ),
-                               p->prefixlen,
+                       vty_out(vty, " %pFX%s", p,
                                filter->exact ? " exact-match" : "");
                else if (p->family == AF_ETHERNET) {
                        if (p->prefixlen == 0)