[Ocfs2-tools-devel] [PATCH 1/1] wireshark-ocfs2: print 144 bytes of Payload
Sunil Mushran
sunil.mushran at oracle.com
Mon Jun 8 13:15:25 PDT 2009
checked-in
Jeff Liu wrote:
> This patch print Payload raw string up to 144 bytes, splited into 6 lines
>
> Signed-off-by: Jeff Liu <jeff.liu at oracle.com>
> ---
> epan/dissectors/packet-ocfs2.c | 73 ++++++++++++++++++++++++++++++++++++----
> 1 files changed, 66 insertions(+), 7 deletions(-)
>
> diff --git a/epan/dissectors/packet-ocfs2.c b/epan/dissectors/packet-ocfs2.c
> index 96da122..0c70512 100644
> --- a/epan/dissectors/packet-ocfs2.c
> +++ b/epan/dissectors/packet-ocfs2.c
> @@ -92,7 +92,12 @@ static int hf_msg_sys_status = -1;
> static int hf_msg_status = -1;
> static int hf_msg_key = -1;
> static int hf_msg_msg_num = -1;
> -static int hf_msg_payload = -1;
> +static int hf_msg_payload1 = -1;
> +static int hf_msg_payload2 = -1;
> +static int hf_msg_payload3 = -1;
> +static int hf_msg_payload4 = -1;
> +static int hf_msg_payload5 = -1;
> +static int hf_msg_payload6 = -1;
>
> static int hf_dlm_node_idx = -1;
> static int hf_dlm_flags = -1;
> @@ -777,6 +782,8 @@ struct dlm_finalize_reco
> guint32 pad2; // unused
> };
>
> +#define DLM_FIELD_BYTES_LEN 24
> +
> static struct dlm_msg_struct_def dlm_struct_defs[] = {
> { "dlm_master_request", "DLM Master Request", DLM_MASTER_REQUEST_MSG, &ett_dlm_master_request, {
> { "node_idx", &hf_dlm_node_idx, FIELD_OFFSET_AND_SIZE(struct dlm_master_request,node_idx), dlm_node_idx_handler},
> @@ -1126,10 +1133,47 @@ static int dissect_ocfs2(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
> FALSE);
>
> len = tvb_get_ntohs(tvb, O2NET_MSG_HDR_OFF_DATA_LEN);
> - if (len > 0)
> - proto_tree_add_item(subtree, hf_msg_payload,
> - tvb, O2NET_MSG_HDR_OFF_PAYLOAD, len,
> - FALSE);
> + if (len > 0) {
> + int i = 0;
> + int rlen = 0;
> + guint loffset = 0;
> + int hf_msg_payload_array[] = {
> + hf_msg_payload1,
> + hf_msg_payload2,
> + hf_msg_payload3,
> + hf_msg_payload4,
> + hf_msg_payload5,
> + hf_msg_payload6
> + };
> +
> + /* print 144 bytes of Payload */
> + if (len > 144)
> + len = 144;
> +
> + loffset = O2NET_MSG_HDR_OFF_PAYLOAD;
> + while (tvb_offset_exists(tvb, loffset) && (len > 0) &&
> + (i < sizeof(hf_msg_payload_array)/sizeof(int))) {
> + rlen = tvb_length_remaining(tvb, loffset);
> + if (rlen < DLM_FIELD_BYTES_LEN) {
> + proto_tree_add_item(subtree,
> + hf_msg_payload_array[i],
> + tvb, loffset, rlen,
> + FALSE);
> + break;
> + }
> +
> + proto_tree_add_item(subtree,
> + hf_msg_payload_array[i],
> + tvb, loffset,
> + DLM_FIELD_BYTES_LEN,
> + FALSE);
> +
> + loffset += DLM_FIELD_BYTES_LEN;
> + len -= DLM_FIELD_BYTES_LEN;
> + ++i;
> + }
> + }
> +
>
> if (magic == O2NET_MSG_MAGIC) {
> struct dlm_msg_struct_def *def;
> @@ -1170,9 +1214,24 @@ void proto_register_ocfs2(void)
> { &hf_msg_msg_num, { "Num", "ocfs2.msg.msg_num",
> FT_UINT32, BASE_DEC, NULL, 0x0,
> "Message identification number", HFILL } },
> - { &hf_msg_payload, { "Payload", "ocfs2.msg.payload",
> + { &hf_msg_payload1, { "Payload1", "ocfs2.msg.payload",
> + FT_BYTES, BASE_HEX, NULL, 0x0,
> + "Payload 1", HFILL } },
> + { &hf_msg_payload2, { "Payload2", "ocfs2.msg.payload",
> + FT_BYTES, BASE_HEX, NULL, 0x0,
> + "Payload 2", HFILL } },
> + { &hf_msg_payload3, { "Payload3", "ocfs2.msg.payload",
> + FT_BYTES, BASE_HEX, NULL, 0x0,
> + "Payload 3", HFILL } },
> + { &hf_msg_payload4, { "Payload4", "ocfs2.msg.payload",
> + FT_BYTES, BASE_HEX, NULL, 0x0,
> + "Payload 4", HFILL } },
> + { &hf_msg_payload5, { "Payload5", "ocfs2.msg.payload",
> + FT_BYTES, BASE_HEX, NULL, 0x0,
> + "Payload 5", HFILL } },
> + { &hf_msg_payload6, { "Payload6", "ocfs2.msg.payload",
> FT_BYTES, BASE_HEX, NULL, 0x0,
> - "Payload", HFILL } },
> + "Payload 6", HFILL } },
> { &hf_dlm_node_idx, { "Node Index", "ocfs2.dlm.node_idx",
> FT_UINT8, BASE_DEC, NULL, 0x0,
> "Node index", HFILL } },
>
More information about the Ocfs2-tools-devel
mailing list