aboutsummaryrefslogtreecommitdiffstats
path: root/packet-isis.c
AgeCommit message (Collapse)AuthorFilesLines
2000-08-13Add the "Edit:Protocols..." feature which currently only implementsLaurent Deniel1-1/+3
the following: It is now possible to enable/disable a particular protocol decoding (i.e. the protocol dissector is void or not). When a protocol is disabled, it is displayed as Data and of course, all linked sub-protocols are disabled as well. Disabling a protocol could be interesting: - in case of buggy dissectors - in case of wrong heuristics - for performance reasons - to decode the data as another protocol (TODO) Currently (if I am not wrong), all dissectors but NFS can be disabled (and dissectors that do not register protocols :-) I do not like the way the RPC sub-dissectors are disabled (in the sub-dissectors) since this could be done in the RPC dissector itself, knowing the sub-protocol hfinfo entry (this is why, I've not modified the NFS one yet). Two functions are added in proto.c : gboolean proto_is_protocol_enabled(int n); void proto_set_decoding(int n, gboolean enabled); and two MACROs which can be used in dissectors: OLD_CHECK_DISPLAY_AS_DATA(index, pd, offset, fd, tree) CHECK_DISPLAY_AS_DATA(index, tvb, pinfo, tree) See also the XXX in proto_dlg.c and proto.c around the new functions. svn path=/trunk/; revision=2267
2000-08-10- add proto_tree_add_text_valistLaurent Deniel1-2/+2
- remove stdarg.h include in proto.c and add a more correct one in proto.h - fix esis_dissect_unknown and isis_dissect_unknown svn path=/trunk/; revision=2245
2000-08-07Allow either old-style (pre-tvbuff) or new-style (tvbuffified)Guy Harris1-2/+2
dissectors to be registered as dissectors for particular ports, registered as heuristic dissectors, and registered as dissectors for conversations, and have routines to be used both by old-style and new-style dissectors to call registered dissectors. Have the code that calls those dissectors translate the arguments as necessary. (For conversation dissectors, replace "find_conversation_dissector()", which just returns a pointer to the dissector, with "old_try_conversation_dissector()" and "try_conversation_dissector()", which actually call the dissector, so that there's a single place at which we can do that translation. Also make "dissector_lookup()" static and, instead of calling it and, if it returns a non-null pointer, calling that dissector, just use "old_dissector_try_port()" or "dissector_try_port()", for the same reason.) This allows some dissectors that took old-style arguments and immediately translated them to new-style arguments to just take new-style arguments; make them do so. It also allows some new-style dissectors not to have to translate arguments before calling routines to look up and call dissectors; make them not do so. Get rid of checks for too-short frames in new-style dissectors - the tvbuff code does those checks for you. Give the routines to register old-style dissectors, and to call dissectors from old-style dissectors, names beginning with "old_", with the routines for new-style dissectors not having the "old_". Update the dissectors that use those routines appropriately. Rename "dissect_data()" to "old_dissect_data()", and "dissect_data_tvb()" to "dissect_data()". svn path=/trunk/; revision=2218
2000-06-19Make the "isis_hello.source_id" an FT_BYTES field rather than anGuy Harris1-10/+32
FT_ETHER field; the ISIS spec doesn't say it's necessarily a 6-byte Ethernet address (and, if it's FT_BYTES, you can test it in a filter much the same way you test an Ethernet address). Make "isis_hello.lan_id" an FT_BYTES field rather than an FT_STRING field - it's an array of bytes, not a character string. Don't require that "system ID" fields be 6 octets; use the size value from the ISIS PDU header. (This means that PDUs containing "system ID" fields can't be described as C structures; dissect them by stepping the offset instead.) svn path=/trunk/; revision=2080
2000-05-31Add routines for adding items to a protocol tree that take arguments ofGuy Harris1-9/+9
a particular type, rather than taking a varargs list, along the lines of the "proto_tree_add_XXX_format()" routines. Replace most calls to "proto_tree_add_item()" and "proto_tree_add_item_hidden()" with calls to those routines. Rename "proto_tree_add_item()" and "proto_tree_add_item_hidden()" to "proto_tree_add_item_old()" and "proto_tree_add_item_hidden_old()", and add new "proto_tree_add_item()" and "proto_tree_add_item_hidden()" routines that don't take the item to be added as an argument - instead, they fetch the argument from the packet whose tvbuff was handed to them, from the offset handed to them. svn path=/trunk/; revision=2031
2000-05-11Add tvbuff class.Gilbert Ramirez1-11/+11
Add exceptions routines. Convert proto_tree_add_*() routines to require tvbuff_t* argument. Convert all dissectors to pass NULL argument ("NullTVB" macro == NULL) as the tvbuff_t* argument to proto_tree_add_*() routines. dissect_packet() creates a tvbuff_t, wraps the next dissect call in a TRY block, will print "Short Frame" on the proto_tree if a BoundsError exception is caught. The FDDI dissector is converted to use tvbuff's. svn path=/trunk/; revision=1939
2000-04-17Register an "osinl" dissector table for ISO/IEC TR 9577 NLPID values,Guy Harris1-2/+8
and have dissectors for protocols that run at the OSI network layer register themselves with it using "dissector_add()". Make various dissectors static if they can be, and remove from header files declarations of those dissectors. svn path=/trunk/; revision=1873
2000-04-15Ralf Schneider's changes to enhance to OSI CLNP, CLTP, and ISIS supportGuy Harris1-116/+75
and to add OSI ESIS support. svn path=/trunk/; revision=1865
2000-04-13Set the COL_PROTOCOL column to "ISIS" in the ISIS dissector, rather thanGuy Harris1-1/+4
in its caller. Set the COL_PROTOCOL column to "COTP" in the COTP dissector, rather than in the dissectors it calls, so that it's done for all frames we hand to that dissector. Set the COL_INFO field for COTP packets we don't dissect because the length indicator is zero, or the frame is too short, or the PDU type is bogus. svn path=/trunk/; revision=1842
2000-03-20Change dfilter_init() to check for empty-string abbreviations and forGilbert Ramirez1-2/+2
duplicate abbreviations. All mods to packet-*.c files are fixes to remove those cases. svn path=/trunk/; revision=1733
2000-03-12Break proto_tree_add_item_format() into multiple functions:Gilbert Ramirez1-2/+2
proto_tree_add_protocol_format() proto_tree_add_uint_format() proto_tree_add_ipxnet_format() proto_tree_add_ipv4_format() proto_tree_add_ipv6_format() proto_tree_add_bytes_format() proto_tree_add_string_format() proto_tree_add_ether_format() proto_tree_add_time_format() proto_tree_add_double_format() proto_tree_add_boolean_format() If using GCC 2.x, we can check the print-format against the variable args passed in. Regardless of compiler, we can now check at run-time that the field type passed into the function corresponds to what that function expects (FT_UINT, FT_BOOLEAN, etc.) Note that proto_tree_add_protocol_format() does not require a value field, since the value of a protocol is always NULL. It's more intuitive w/o the vestigial argument. Fixed a proto_tree_add_item_format-related bug in packet-isis-hello.c Fixed a variable usage bug in packet-v120.c. (ett_* was used instead of hf_*) Checked in Guy's fix for the function declearation for proto_tree_add_text() and proto_tree_add_notext(). svn path=/trunk/; revision=1713
2000-01-24Fix a bunch of dissectors to use "pi.captured_len" rather thanGuy Harris1-9/+9
"fd->cap_len" for the frame length - or to use macros such as "BYTES_ARE_IN_FRAME()", "IS_DATA_IN_FRAME()", and "END_OF_FRAME", which use "pi.captured_len" - so that they correctly handle frames where the actual data length of the packet is less than the size of the raw frame, e.g. with encapsulations such as ISL. svn path=/trunk/; revision=1530
2000-01-13Get the NLPID value for ISIS from "nlpid.h", and report the NLPID valueGuy Harris1-9/+4
in ISIS packets with "nlpid_vals". Report the NLPID value in CLNP packets with "nlpid_vals" as well. svn path=/trunk/; revision=1462
1999-12-15Stuart Stanley's ISIS dissection support.Guy Harris1-0/+354
svn path=/trunk/; revision=1340