aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJakub Zawadzki <darkjames-ws@darkjames.pl>2016-03-24 22:06:39 +0100
committerMichael Mann <mmann78@netscape.net>2016-03-26 00:54:44 +0000
commitbf959e5ad562f62432c5cf06fae1cb0eca680115 (patch)
tree40bb9d7aad76c594beefd60670fdc71e2f51db54
parentb457fe5f0356d89c8e6b4e084f0e797ee6911809 (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>
-rw-r--r--epan/dissectors/packet-json.c12
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,