aboutsummaryrefslogtreecommitdiffstats
path: root/packet-data.c
AgeCommit message (Collapse)AuthorFilesLines
2000-08-07Allow either old-style (pre-tvbuff) or new-style (tvbuffified)Guy Harris1-4/+4
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-05-12Fix dissect_data_tvb() so that it only appends a "Data" proto_tree labelGilbert Ramirez1-4/+6
if there are more than 0 bytes of data. svn path=/trunk/; revision=1948
2000-05-11Convert LLC dissector to use tvbuffs.Gilbert Ramirez1-1/+15
Non-tvbuff dissectors create a tvbuff when calling dissect_llc() Changed name of current_proto to match string in COL_PROTO ("FDDI" instead of "fddi") Changed short text to be: [Short Frame: %s] where %s is current_proto. svn path=/trunk/; revision=1943
2000-05-11Add tvbuff class.Gilbert Ramirez1-2/+2
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-03-12Break proto_tree_add_item_format() into multiple functions:Gilbert Ramirez1-3/+3
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-4/+4
"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-22Fix files that had Gilbert's old e-mail address or that didn't have myGuy Harris1-2/+2
forwarding e-mail address. svn path=/trunk/; revision=1522
2000-01-07Fix Gerald's e-mail address.Guy Harris1-2/+2
svn path=/trunk/; revision=1437
1999-08-26Properly pluralize "bytes" in the detail line for "dissect_data()".Guy Harris1-2/+3
svn path=/trunk/; revision=586
1999-07-29Made the protocol (but not the fields) use the new proto_tree routine,Gilbert Ramirez1-1/+4
allowing users to filter on the existence of these protocols. I also added packet-clip.c to the Nmake makefile. svn path=/trunk/; revision=402
1999-07-07Created a new protocol tree implementation and a new display filterGilbert Ramirez1-3/+12
mechanism that is built into ethereal. Wiretap is now used to read all file formats. Libpcap is used only for capturing. svn path=/trunk/; revision=342
1999-03-23Removed all references to gtk objects from packet*.[ch] files. They nowGilbert Ramirez1-9/+4
reference the protocol tree with struct proto_tree and struct proto_item objects. That way, the packet decoding source code file can be used with non-gtk packet decoders, like a curses-based ethereal, e.g. I also re-arranged some of the information in packet.h to more appropriate places (like other packet-*.[ch] files). svn path=/trunk/; revision=223
1999-03-22Well, that was dumb. I didn't have to add a "capture_data()" routine; IGuy Harris1-6/+1
just had to make "sap_capture_func()" return NULL if it didn't find an entry for the SAP it was passed. svn path=/trunk/; revision=220
1999-03-22Have "sap_capture_func()" return "capture_data" rather thanGuy Harris1-1/+6
"dissect_data"; if you call "dissect_data()" with an argument list of the type expected by a "capture_XXX()" routine, it won't do the right thing (and may do the wrong thing, e.g. crash). Have "sap_capture_func()" (and "sap_dissect_func()") return function pointers rather than "void *"s, so that I don't make a mistake like the above in the future.... svn path=/trunk/; revision=219
1998-11-12A lengthy patch to add the wiretap library. Wiretap is not used by defaultGilbert Ramirez1-2/+1
because it is still in its infancy, but it can be compiled in optionally. The library exists in its own subdirectory ethereal/wiretap. This patch also edits all the packet-*.c files to remove the #include <pcap.h> line which is unnecessary in these files. In the ethereal code, file.c is the most heavily modified with #ifdef WITH_WIRETAP lines for the optional library. svn path=/trunk/; revision=82
1998-10-22I added the byte count to the Data section. The print routines had toGilbert Ramirez1-2/+2
be modified to check the beginning of the string instead of the entire string when trying to find the Data section in order to print a hex dump. svn path=/trunk/; revision=70
1998-09-23I removed the ncp code from packet-ipx.c and created packet-ncp.c. Now thatGilbert Ramirez1-2/+2
I've started concentrating on the NetWare modules again, packet-ncp.c is going to start to grow. I also added IPX RIP to packet-ipx.c. Additionally, I added the END_OF_FRAME macro to packet.h, which is useful for many dissect() routines. (and I already modified packet-bootp.c and packet-data.c to use this macro) svn path=/trunk/; revision=22
1998-09-16Added ID tags to the beginning of each source file.Gerald Combs1-1/+2
svn path=/trunk/; revision=7
1998-09-16Initial revisionGerald Combs1-0/+51
svn path=/trunk/; revision=2