Make the "-G" flag take an argument. If no arugment is specified, or if
the argument is "fields", dump out a table of the fields, as we currently do; if the argument is "protocols", dump out a table of the protocols. svn path=/trunk/; revision=5462
This commit is contained in:
parent
eb4f9a696c
commit
e390d7e0cc
34
epan/proto.c
34
epan/proto.c
|
@ -1,7 +1,7 @@
|
||||||
/* proto.c
|
/* proto.c
|
||||||
* Routines for protocol tree
|
* Routines for protocol tree
|
||||||
*
|
*
|
||||||
* $Id: proto.c,v 1.68 2002/05/09 23:50:28 gram Exp $
|
* $Id: proto.c,v 1.69 2002/05/14 10:15:10 guy Exp $
|
||||||
*
|
*
|
||||||
* Ethereal - Network traffic analyzer
|
* Ethereal - Network traffic analyzer
|
||||||
* By Gerald Combs <gerald@ethereal.com>
|
* By Gerald Combs <gerald@ethereal.com>
|
||||||
|
@ -2946,12 +2946,34 @@ proto_find_field_from_offset(proto_tree *tree, guint offset, tvbuff_t *tvb)
|
||||||
return offsearch.finfo;
|
return offsearch.finfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Dumps the protocols in the registration database to stdout. An independent
|
||||||
|
* program can take this output and format it into nice tables or HTML or
|
||||||
|
* whatever.
|
||||||
|
*
|
||||||
|
* There is one record per line. The fields are tab-delimited.
|
||||||
|
*
|
||||||
|
* Field 1 = protocol name
|
||||||
|
* Field 2 = protocol short name
|
||||||
|
* Field 3 = protocol filter name
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
proto_registrar_dump_protocols(void)
|
||||||
|
{
|
||||||
|
protocol_t *protocol;
|
||||||
|
int i;
|
||||||
|
void *cookie;
|
||||||
|
|
||||||
|
for (i = proto_get_first_protocol(&cookie); i != -1;
|
||||||
|
i = proto_get_next_protocol(&cookie)) {
|
||||||
|
protocol = find_protocol_by_id(i);
|
||||||
|
printf("%s\t%s\t%s\n", protocol->name, protocol->short_name,
|
||||||
|
protocol->filter_name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Dumps the contents of the registration database to stdout. An indepedent
|
||||||
|
* program can take this output and format it into nice tables or HTML or
|
||||||
/* Dumps the contents of the registration database to stdout. An indepedent program can take
|
* whatever.
|
||||||
* this output and format it into nice tables or HTML or whatever.
|
|
||||||
*
|
*
|
||||||
* There is one record per line. Each record is either a protocol or a header
|
* There is one record per line. Each record is either a protocol or a header
|
||||||
* field, differentiated by the first field. The fields are tab-delimited.
|
* field, differentiated by the first field. The fields are tab-delimited.
|
||||||
|
@ -2971,7 +2993,7 @@ proto_find_field_from_offset(proto_tree *tree, guint offset, tvbuff_t *tvb)
|
||||||
* Field 5 = parent protocol abbreviation
|
* Field 5 = parent protocol abbreviation
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
proto_registrar_dump(void)
|
proto_registrar_dump_fields(void)
|
||||||
{
|
{
|
||||||
header_field_info *hfinfo, *parent_hfinfo;
|
header_field_info *hfinfo, *parent_hfinfo;
|
||||||
int i, len;
|
int i, len;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/* proto.h
|
/* proto.h
|
||||||
* Definitions for protocol display
|
* Definitions for protocol display
|
||||||
*
|
*
|
||||||
* $Id: proto.h,v 1.31 2002/04/29 07:55:31 guy Exp $
|
* $Id: proto.h,v 1.32 2002/05/14 10:15:10 guy Exp $
|
||||||
*
|
*
|
||||||
* Ethereal - Network traffic analyzer
|
* Ethereal - Network traffic analyzer
|
||||||
* By Gerald Combs <gerald@ethereal.com>
|
* By Gerald Combs <gerald@ethereal.com>
|
||||||
|
@ -554,8 +554,11 @@ extern gboolean proto_check_for_protocol_or_field(proto_tree* tree, int id);
|
||||||
* tree. */
|
* tree. */
|
||||||
extern GPtrArray* proto_get_finfo_ptr_array(proto_tree *tree, int hfindex);
|
extern GPtrArray* proto_get_finfo_ptr_array(proto_tree *tree, int hfindex);
|
||||||
|
|
||||||
|
/* Dumps a glossary of the protocol registrations to STDOUT */
|
||||||
|
extern void proto_registrar_dump_protocols(void);
|
||||||
|
|
||||||
/* Dumps a glossary of the protocol and field registrations to STDOUT */
|
/* Dumps a glossary of the protocol and field registrations to STDOUT */
|
||||||
extern void proto_registrar_dump(void);
|
extern void proto_registrar_dump_fields(void);
|
||||||
|
|
||||||
/* Points to the first element of an array of Booleans, indexed by
|
/* Points to the first element of an array of Booleans, indexed by
|
||||||
a subtree item type; that array element is TRUE if subtrees of
|
a subtree item type; that array element is TRUE if subtrees of
|
||||||
|
|
28
gtk/main.c
28
gtk/main.c
|
@ -1,6 +1,6 @@
|
||||||
/* main.c
|
/* main.c
|
||||||
*
|
*
|
||||||
* $Id: main.c,v 1.247 2002/05/03 03:30:15 guy Exp $
|
* $Id: main.c,v 1.248 2002/05/14 10:15:12 guy Exp $
|
||||||
*
|
*
|
||||||
* Ethereal - Network traffic analyzer
|
* Ethereal - Network traffic analyzer
|
||||||
* By Gerald Combs <gerald@ethereal.com>
|
* By Gerald Combs <gerald@ethereal.com>
|
||||||
|
@ -1254,17 +1254,19 @@ main(int argc, char *argv[])
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Register all dissectors; we must do this before checking for the
|
/* Register all dissectors; we must do this before checking for the
|
||||||
"-G" flag, as the "-G" flag dumps a list of fields registered
|
"-G" flag, as the "-G" flag dumps information registered by the
|
||||||
by the dissectors, and we must do it before we read the preferences,
|
dissectors, and we must do it before we read the preferences, in
|
||||||
in case any dissectors register preferences. */
|
case any dissectors register preferences. */
|
||||||
epan_init(PLUGIN_DIR,register_all_protocols,register_all_protocol_handoffs);
|
epan_init(PLUGIN_DIR,register_all_protocols,register_all_protocol_handoffs);
|
||||||
|
|
||||||
/* Now register the preferences for any non-dissector modules.
|
/* Now register the preferences for any non-dissector modules.
|
||||||
We must do that before we read the preferences as well. */
|
We must do that before we read the preferences as well. */
|
||||||
prefs_register_modules();
|
prefs_register_modules();
|
||||||
|
|
||||||
/* If invoked with the "-G" flag, we dump out a glossary of
|
/* If invoked with the "-G" flag, we dump out information based on
|
||||||
display filter symbols.
|
the argument to the "-G" flag; if no argument is specified,
|
||||||
|
for backwards compatibility we dump out a glossary of display
|
||||||
|
filter symbols.
|
||||||
|
|
||||||
We must do this before calling "gtk_init()", because "gtk_init()"
|
We must do this before calling "gtk_init()", because "gtk_init()"
|
||||||
tries to open an X display, and we don't want to have to do any X
|
tries to open an X display, and we don't want to have to do any X
|
||||||
|
@ -1281,9 +1283,19 @@ main(int argc, char *argv[])
|
||||||
|
|
||||||
you must give it as "-G", nothing more, nothing less;
|
you must give it as "-G", nothing more, nothing less;
|
||||||
|
|
||||||
any arguments after the "-G" flag will not be used. */
|
the first argument after the "-G" flag, if present, will be used
|
||||||
|
to specify the information to dump;
|
||||||
|
|
||||||
|
arguments after that will not be used. */
|
||||||
if (argc >= 2 && strcmp(argv[1], "-G") == 0) {
|
if (argc >= 2 && strcmp(argv[1], "-G") == 0) {
|
||||||
proto_registrar_dump();
|
if (argc == 2)
|
||||||
|
proto_registrar_dump_fields();
|
||||||
|
else {
|
||||||
|
if (strcmp(argv[2], "fields") == 0)
|
||||||
|
proto_registrar_dump_fields();
|
||||||
|
else if (strcmp(argv[2], "protocols") == 0)
|
||||||
|
proto_registrar_dump_protocols();
|
||||||
|
}
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
23
tethereal.c
23
tethereal.c
|
@ -1,6 +1,6 @@
|
||||||
/* tethereal.c
|
/* tethereal.c
|
||||||
*
|
*
|
||||||
* $Id: tethereal.c,v 1.135 2002/03/31 20:56:59 guy Exp $
|
* $Id: tethereal.c,v 1.136 2002/05/14 10:15:09 guy Exp $
|
||||||
*
|
*
|
||||||
* Ethereal - Network traffic analyzer
|
* Ethereal - Network traffic analyzer
|
||||||
* By Gerald Combs <gerald@ethereal.com>
|
* By Gerald Combs <gerald@ethereal.com>
|
||||||
|
@ -321,22 +321,31 @@ main(int argc, char *argv[])
|
||||||
char badopt;
|
char badopt;
|
||||||
|
|
||||||
/* Register all dissectors; we must do this before checking for the
|
/* Register all dissectors; we must do this before checking for the
|
||||||
"-G" flag, as the "-G" flag dumps a list of fields registered
|
"-G" flag, as the "-G" flag dumps information registered by the
|
||||||
by the dissectors, and we must do it before we read the preferences,
|
dissectors, and we must do it before we read the preferences, in
|
||||||
in case any dissectors register preferences. */
|
case any dissectors register preferences. */
|
||||||
epan_init(PLUGIN_DIR,register_all_protocols,register_all_protocol_handoffs);
|
epan_init(PLUGIN_DIR,register_all_protocols,register_all_protocol_handoffs);
|
||||||
|
|
||||||
/* Now register the preferences for any non-dissector modules.
|
/* Now register the preferences for any non-dissector modules.
|
||||||
We must do that before we read the preferences as well. */
|
We must do that before we read the preferences as well. */
|
||||||
prefs_register_modules();
|
prefs_register_modules();
|
||||||
|
|
||||||
/* If invoked with the "-G" flag, we dump out a glossary of
|
/* If invoked with the "-G" flag, we dump out information based on
|
||||||
display filter symbols.
|
the argument to the "-G" flag; if no argument is specified,
|
||||||
|
for backwards compatibility we dump out a glossary of display
|
||||||
|
filter symbols.
|
||||||
|
|
||||||
We do this here to mirror what happens in the GTK+ version, although
|
We do this here to mirror what happens in the GTK+ version, although
|
||||||
it's not necessary here. */
|
it's not necessary here. */
|
||||||
if (argc >= 2 && strcmp(argv[1], "-G") == 0) {
|
if (argc >= 2 && strcmp(argv[1], "-G") == 0) {
|
||||||
proto_registrar_dump();
|
if (argc == 2)
|
||||||
|
proto_registrar_dump_fields();
|
||||||
|
else {
|
||||||
|
if (strcmp(argv[2], "fields") == 0)
|
||||||
|
proto_registrar_dump_fields();
|
||||||
|
else if (strcmp(argv[2], "protocols") == 0)
|
||||||
|
proto_registrar_dump_protocols();
|
||||||
|
}
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue