From: Michal Privoznik Date: Fri, 10 Oct 2025 16:23:18 +0000 (+0200) Subject: wireshark: Introduce and use vir_val_to_str() X-Git-Tag: v11.9.0-rc1~73 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ba2c4bdd5cbccd5c0673149cf76802c98b70d2f7;p=thirdparty%2Flibvirt.git wireshark: Introduce and use vir_val_to_str() Wireshark offers val_to_str() function which converts numeric value to string by looking up value ('val') in an array ('vs') of pairs. If no corresponding string is found, then the value is formatted using given 'fmt' string. Starting from wireshark-4.6.0 not only this function gained another argument but also returns a strdup()-ed string. To keep our code simple, let's introduce a wrapper so which can be then adjusted as needed. Signed-off-by: Michal Privoznik Reviewed-by: Peter Krempa --- diff --git a/tools/wireshark/src/packet-libvirt.c b/tools/wireshark/src/packet-libvirt.c index 6c729801d4..f6ad2c4578 100644 --- a/tools/wireshark/src/packet-libvirt.c +++ b/tools/wireshark/src/packet-libvirt.c @@ -140,6 +140,15 @@ static const value_string status_strings[] = { { -1, NULL } }; +static const char * +G_GNUC_PRINTF(3, 0) +vir_val_to_str(const uint32_t val, + const value_string *vs, + const char *fmt) +{ + return val_to_str(val, vs, fmt); +} + static gboolean dissect_xdr_string(tvbuff_t *tvb, proto_tree *tree, XDR *xdrs, int hf, guint32 maxlen) @@ -466,14 +475,14 @@ dissect_libvirt_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, status = tvb_get_ntohil(tvb, offset); offset += 4; col_add_fstr(pinfo->cinfo, COL_INFO, "Prog=%s", - val_to_str(prog, program_strings, "%x")); + vir_val_to_str(prog, program_strings, "%x")); vs = get_program_data(prog, VIR_PROGRAM_PROCSTRINGS); - col_append_fstr(pinfo->cinfo, COL_INFO, " Proc=%s", val_to_str(proc, vs, "%d")); + col_append_fstr(pinfo->cinfo, COL_INFO, " Proc=%s", vir_val_to_str(proc, vs, "%d")); col_append_fstr(pinfo->cinfo, COL_INFO, " Type=%s Serial=%u Status=%s", - val_to_str(type, type_strings, "%d"), serial, - val_to_str(status, status_strings, "%d")); + vir_val_to_str(type, type_strings, "%d"), serial, + vir_val_to_str(status, status_strings, "%d")); if (tree) { gint *hf_proc;