Wireshark 4.5.0
The Wireshark network protocol analyzer
|
#include <stdio.h>
#include <epan/epan.h>
#include <epan/packet.h>
#include <epan/print_stream.h>
#include <wsutil/json_dumper.h>
#include "ws_symbol_export.h"
Go to the source code of this file.
Typedefs | |
typedef struct _output_fields | output_fields_t |
typedef GSList *(* | proto_node_children_grouper_func) (proto_node *node) |
Functions | |
WS_DLL_PUBLIC output_fields_t * | output_fields_new (void) |
WS_DLL_PUBLIC void | output_fields_free (output_fields_t *info) |
WS_DLL_PUBLIC void | output_fields_add (output_fields_t *info, const char *field) |
WS_DLL_PUBLIC GSList * | output_fields_valid (output_fields_t *info) |
WS_DLL_PUBLIC size_t | output_fields_num_fields (output_fields_t *info) |
WS_DLL_PUBLIC bool | output_fields_set_option (output_fields_t *info, char *option) |
WS_DLL_PUBLIC void | output_fields_list_options (FILE *fh) |
WS_DLL_PUBLIC bool | output_fields_add_protocolfilter (output_fields_t *info, const char *field, pf_flags filter_flags) |
WS_DLL_PUBLIC bool | output_fields_has_cols (output_fields_t *info) |
WS_DLL_PUBLIC void | output_fields_prime_edt (struct epan_dissect *edt, output_fields_t *info) |
WS_DLL_PUBLIC bool | proto_tree_print (print_dissections_e print_dissections, bool print_hex_data, epan_dissect_t *edt, GHashTable *output_only_tables, print_stream_t *stream) |
WS_DLL_PUBLIC bool | print_hex_data (print_stream_t *stream, epan_dissect_t *edt, unsigned hexdump_options) |
WS_DLL_PUBLIC void | write_pdml_preamble (FILE *fh, const char *filename) |
WS_DLL_PUBLIC void | write_pdml_proto_tree (output_fields_t *fields, epan_dissect_t *edt, column_info *cinfo, FILE *fh, bool use_color) |
WS_DLL_PUBLIC void | write_pdml_finale (FILE *fh) |
WS_DLL_PUBLIC GSList * | proto_node_group_children_by_unique (proto_node *node) |
WS_DLL_PUBLIC GSList * | proto_node_group_children_by_json_key (proto_node *node) |
WS_DLL_PUBLIC json_dumper | write_json_preamble (FILE *fh) |
WS_DLL_PUBLIC void | write_json_proto_tree (output_fields_t *fields, print_dissections_e print_dissections, bool print_hex_data, epan_dissect_t *edt, column_info *cinfo, proto_node_children_grouper_func node_children_grouper, json_dumper *dumper) |
WS_DLL_PUBLIC void | write_json_finale (json_dumper *dumper) |
WS_DLL_PUBLIC void | write_ek_proto_tree (output_fields_t *fields, bool print_summary, bool print_hex_data, epan_dissect_t *edt, column_info *cinfo, FILE *fh) |
WS_DLL_PUBLIC void | write_psml_preamble (column_info *cinfo, FILE *fh) |
WS_DLL_PUBLIC void | write_psml_columns (epan_dissect_t *edt, FILE *fh, bool use_color) |
WS_DLL_PUBLIC void | write_psml_finale (FILE *fh) |
WS_DLL_PUBLIC void | write_csv_column_titles (column_info *cinfo, FILE *fh) |
WS_DLL_PUBLIC void | write_csv_columns (epan_dissect_t *edt, FILE *fh) |
WS_DLL_PUBLIC void | write_carrays_hex_data (uint32_t num, FILE *fh, epan_dissect_t *edt) |
WS_DLL_PUBLIC void | write_fields_preamble (output_fields_t *fields, FILE *fh) |
WS_DLL_PUBLIC void | write_fields_proto_tree (output_fields_t *fields, epan_dissect_t *edt, column_info *cinfo, FILE *fh) |
WS_DLL_PUBLIC void | write_fields_finale (output_fields_t *fields, FILE *fh) |
WS_DLL_PUBLIC char * | get_node_field_value (field_info *fi, epan_dissect_t *edt) |
void | print_cache_field_handles (void) |
Definitions for printing packet analysis trees.
Gilbert Ramirez gram@.nosp@m.alum.nosp@m.ni.ri.nosp@m.ce.e.nosp@m.du
Wireshark - Network traffic analyzer By Gerald Combs geral.nosp@m.d@wi.nosp@m.resha.nosp@m.rk.o.nosp@m.rg Copyright 1998 Gerald Combs
SPDX-License-Identifier: GPL-2.0-or-later
WS_DLL_PUBLIC GSList * proto_node_group_children_by_json_key | ( | proto_node * | node | ) |
Groups the children of a node by their json key. Children are put in the same group if they have the same json key.
For each different json key we store a linked list of values corresponding to that json key. These lists are kept in both a linked list and a hashmap. The hashmap is used to quickly retrieve the values of a json key. The linked list is used to preserve the ordering of keys as they are encountered which is not guaranteed when only using a hashmap.
For each child of the node get the key and get the list of values already associated with that key from the hashmap. If no list exist yet for that key create a new one and add it to both the linked list and hashmap. If a list already exists add the node to that list.
WS_DLL_PUBLIC GSList * proto_node_group_children_by_unique | ( | proto_node * | node | ) |
Groups each child of the node separately.