diff options
author | Benjamin Poirier <bpoirier@nvidia.com> | 2023-12-11 09:07:29 -0500 |
---|---|---|
committer | Stephen Hemminger <stephen@networkplumber.org> | 2023-12-22 09:57:54 -0800 |
commit | 1d73bfc8ab290d60a23ea248ca85dacfd7cd0e2b (patch) | |
tree | a2d34d51d0b84343e5ae5f45ac772a657b7d57d1 | |
parent | dd4e1749a977503698e7f76e157815b5d852caf1 (diff) |
bridge: Deduplicate print_range()
The two implementations are now identical so keep only one instance and
move it to json_print.c where there are already a few other specialized
printing functions.
The string that's formatted in the "end" buffer is only needed when
outputting a range so move the snprintf() call within the condition.
The second argument's purpose is better conveyed by calling it "end" rather
than "id" so rename it.
Reviewed-by: Petr Machata <petrm@nvidia.com>
Tested-by: Petr Machata <petrm@nvidia.com>
Signed-off-by: Benjamin Poirier <bpoirier@nvidia.com>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
-rw-r--r-- | bridge/vlan.c | 14 | ||||
-rw-r--r-- | bridge/vni.c | 14 | ||||
-rw-r--r-- | include/json_print.h | 2 | ||||
-rw-r--r-- | lib/json_print.c | 15 |
4 files changed, 17 insertions, 28 deletions
diff --git a/bridge/vlan.c b/bridge/vlan.c index 7a175b04..05e6a620 100644 --- a/bridge/vlan.c +++ b/bridge/vlan.c @@ -590,20 +590,6 @@ static void close_vlan_port(void) close_json_object(); } -static unsigned int print_range(const char *name, __u32 start, __u32 id) -{ - char end[64]; - int width; - - snprintf(end, sizeof(end), "%sEnd", name); - - width = print_uint(PRINT_ANY, name, "%u", start); - if (start != id) - width += print_uint(PRINT_ANY, end, "-%u", id); - - return width; -} - static void print_vlan_tunnel_info(struct rtattr *tb, int ifindex) { struct rtattr *i, *list = tb; diff --git a/bridge/vni.c b/bridge/vni.c index 2c6d506a..ffc3e188 100644 --- a/bridge/vni.c +++ b/bridge/vni.c @@ -163,20 +163,6 @@ static void close_vni_port(void) close_json_object(); } -static unsigned int print_range(const char *name, __u32 start, __u32 id) -{ - char end[64]; - int width; - - snprintf(end, sizeof(end), "%sEnd", name); - - width = print_uint(PRINT_ANY, name, "%u", start); - if (start != id) - width += print_uint(PRINT_ANY, end, "-%u", id); - - return width; -} - static void print_vnifilter_entry_stats(struct rtattr *stats_attr) { struct rtattr *stb[VNIFILTER_ENTRY_STATS_MAX+1]; diff --git a/include/json_print.h b/include/json_print.h index 0b1d84f7..daebcf5d 100644 --- a/include/json_print.h +++ b/include/json_print.h @@ -97,6 +97,8 @@ static inline int print_rate(bool use_iec, enum output_type t, return print_color_rate(use_iec, t, COLOR_NONE, key, fmt, rate); } +unsigned int print_range(const char *name, __u32 start, __u32 end); + int print_color_bool_opt(enum output_type type, enum color_attr color, const char *key, bool value, bool show); diff --git a/lib/json_print.c b/lib/json_print.c index 602de027..7b3b6c3f 100644 --- a/lib/json_print.c +++ b/lib/json_print.c @@ -374,3 +374,18 @@ int print_color_rate(bool use_iec, enum output_type type, enum color_attr color, free(buf); return rc; } + +unsigned int print_range(const char *name, __u32 start, __u32 end) +{ + int width; + + width = print_uint(PRINT_ANY, name, "%u", start); + if (start != end) { + char buf[64]; + + snprintf(buf, sizeof(buf), "%sEnd", name); + width += print_uint(PRINT_ANY, buf, "-%u", end); + } + + return width; +} |