diff options
author | Jakub Zawadzki <darkjames-ws@darkjames.pl> | 2016-03-24 22:06:39 +0100 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2016-03-26 00:54:44 +0000 |
commit | bf959e5ad562f62432c5cf06fae1cb0eca680115 (patch) | |
tree | 40bb9d7aad76c594beefd60670fdc71e2f51db54 /epan/dissectors/packet-json.c | |
parent | b457fe5f0356d89c8e6b4e084f0e797ee6911809 (diff) |
Add json.member.key
Bug: 12287
Change-Id: I9aecf83ef6f166fc30c275d1e50e0268b1b59ad5
Reviewed-on: https://code.wireshark.org/review/14618
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan/dissectors/packet-json.c')
-rw-r--r-- | epan/dissectors/packet-json.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/epan/dissectors/packet-json.c b/epan/dissectors/packet-json.c index 2e37f8fd24..c4a1d5bfbd 100644 --- a/epan/dissectors/packet-json.c +++ b/epan/dissectors/packet-json.c @@ -40,6 +40,7 @@ void proto_register_json(void); void proto_reg_handoff_json(void); +static char *json_string_unescape(tvbparse_elem_t *tok); static dissector_handle_t json_handle; @@ -63,11 +64,8 @@ static header_field_info hfi_json_object JSON_HFI_INIT = static header_field_info hfi_json_member JSON_HFI_INIT = { "Member", "json.member", FT_NONE, BASE_NONE, NULL, 0x00, "JSON object member", HFILL }; -#if 0 -/* XXX */ static header_field_info hfi_json_member_key JSON_HFI_INIT = - { "Key", "json.member.key", FT_NONE, BASE_NONE, NULL, 0x00, NULL, HFILL }; -#endif + { "Key", "json.member.key", FT_STRING, STR_UNICODE, NULL, 0x00, NULL, HFILL }; static header_field_info hfi_json_value_string JSON_HFI_INIT = /* FT_STRINGZ? */ { "String value", "json.value.string", FT_STRING, STR_UNICODE, NULL, 0x00, "JSON string value", HFILL }; @@ -236,11 +234,11 @@ static void after_member(void *tvbparse_data, const void *wanted_data _U_, tvbpa tvbparse_elem_t *key_tok = tok->sub; if (key_tok && key_tok->id == JSON_TOKEN_STRING) { - char *key = tvb_get_string_enc(wmem_packet_scope(), key_tok->tvb, key_tok->offset, key_tok->len, ENC_ASCII); + char *key = json_string_unescape(key_tok); + proto_tree_add_string(tree, &hfi_json_member_key, key_tok->tvb, key_tok->offset, key_tok->len, key); proto_item_append_text(tree, " Key: %s", key); } - /* XXX, &hfi_json_member_key */ } } @@ -621,7 +619,7 @@ proto_register_json(void) &hfi_json_array, &hfi_json_object, &hfi_json_member, - /* &hfi_json_member_key, */ + &hfi_json_member_key, &hfi_json_value_string, &hfi_json_value_number, &hfi_json_value_false, |