lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Thu, 23 Jan 2020 12:32:26 +0200 From: Ron Diskin <rondi@...lanox.com> To: Stephen Hemminger <stephen@...workplumber.org>, David Ahern <dsahern@...il.com> Cc: Jiri Pirko <jiri@...lanox.com>, Moshe Shemesh <moshe@...lanox.com>, netdev@...r.kernel.org, Ron Diskin <rondi@...lanox.com> Subject: [PATCH iproute2 1/6] json_print: Introduce print_#type_name_value Until now print_#type functions supported printing constant names and unknown (variable) values only. Add functions to allow printing when the name is also sent to the function as a variable. Signed-off-by: Ron Diskin <rondi@...lanox.com> Reviewed-by: Moshe Shemesh <moshe@...lanox.com> Reviewed-by: Jiri Pirko <jiri@...lanox.com> --- include/json_print.h | 7 +++++++ lib/json_print.c | 13 +++++++++++++ 2 files changed, 20 insertions(+) diff --git a/include/json_print.h b/include/json_print.h index 6695654f..fd76cf75 100644 --- a/include/json_print.h +++ b/include/json_print.h @@ -72,4 +72,11 @@ _PRINT_FUNC(lluint, unsigned long long) _PRINT_FUNC(float, double) #undef _PRINT_FUNC +#define _PRINT_NAME_VALUE_FUNC(type_name, type, format_char) \ + void print_##type_name##_name_value(const char *name, type value); \ + +_PRINT_NAME_VALUE_FUNC(uint, unsigned int, u) +_PRINT_NAME_VALUE_FUNC(string, const char*, s) +#undef _PRINT_NAME_VALUE_FUNC + #endif /* _JSON_PRINT_H_ */ diff --git a/lib/json_print.c b/lib/json_print.c index 43ea69bb..fb5f0e5d 100644 --- a/lib/json_print.c +++ b/lib/json_print.c @@ -127,6 +127,19 @@ _PRINT_FUNC(lluint, unsigned long long); _PRINT_FUNC(float, double); #undef _PRINT_FUNC +#define _PRINT_NAME_VALUE_FUNC(type_name, type, format_char) \ + void print_##type_name##_name_value(const char *name, type value)\ + { \ + SPRINT_BUF(format); \ + \ + snprintf(format, SPRINT_BSIZE, \ + "%s %%"#format_char, name); \ + print_##type_name(PRINT_ANY, name, format, value); \ + } +_PRINT_NAME_VALUE_FUNC(uint, unsigned int, u); +_PRINT_NAME_VALUE_FUNC(string, const char*, s); +#undef _PRINT_NAME_VALUE_FUNC + void print_color_string(enum output_type type, enum color_attr color, const char *key, -- 2.19.1
Powered by blists - more mailing lists