aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorGilbert Ramirez <gram@alumni.rice.edu>2000-06-15 03:49:00 +0000
committerGilbert Ramirez <gram@alumni.rice.edu>2000-06-15 03:49:00 +0000
commit0ab8dd8cbd69bcafc65f2a24d02f9976f8bb90be (patch)
treeda3484a5835ecf78293f109946a67ec6751de1b7 /doc
parentadaefea44d13402f406a73f7ca64a3dd9030141e (diff)
Convert IPX-and-friend dissectors in packet-ipx.c to use
tvbuffs. In doing so, I realied that my recommendation for using tvb_new_subset(pi.compat_top_tvb, -1, -1) was incorrect, because some dissectors (ethernet!) change pi.len and pi.cap_len. So, I have to take those two variables into account instead of using -1 and -1. So, I provide a macro called tvb_create_from_top(offset), where offset is the name of your offset variable. It is a wrapper around tvb_new_subset(). I converted the lines that followed my suggestion to use tvb_create_from_top(). In proto.c I added proto_tree_add_debug_text(proto_tree*, const char*, ...) It's much like proto_tree_add_text(), except that it takes no offset or length; it's soley for temporarily putting debug text into the proto_tree while debugging a dissector. In making sure that its use is temporary, the funciton also prints the debug string to stdout to remind the programmer that the debug code needs to be removed before shipping the code. svn path=/trunk/; revision=2068
Diffstat (limited to 'doc')
-rw-r--r--doc/README.tvbuff16
1 files changed, 10 insertions, 6 deletions
diff --git a/doc/README.tvbuff b/doc/README.tvbuff
index 3284e98a73..2fc0b9e494 100644
--- a/doc/README.tvbuff
+++ b/doc/README.tvbuff
@@ -1,4 +1,4 @@
-$Id: README.tvbuff,v 1.3 2000/06/08 03:03:43 gram Exp $
+$Id: README.tvbuff,v 1.4 2000/06/15 03:49:00 gram Exp $
TVBUFFs and Exceptions
@@ -168,7 +168,7 @@ not. This code snippet shows how:
....
- next_tvb = tvb_new_subset(tvb, offset_of_next_protocol, -1);
+ next_tvb = tvb_new_subset(tvb, offset_of_next_protocol, -1, -1);
tvb_compat(next_tvb, &next_pd, &next_offset);
That is, next_pd and next_offset will get assigned values relative to
@@ -183,9 +183,13 @@ to use tvbuffs. The dissector can create its own tvbuff by
using pi.compat_top_tvb, which is the top-level tvbuff created
in dissect_packet(). "compat_top_tvb" will only be available during
the conversion process; once all dissector have been converted to use
-tvbuff's, that variable will disappear. Here is an example, from
-packet-cops.c, of how to create your own tvbuff. The use of
-the #if/#endif block is optional.
+tvbuff's, that variable will disappear.
+
+A macro called tvb_create_from_top() has been provided to ease
+your work. It takes one argument --- the name of the offset variable.
+
+Here is an example, from packet-cops.c, of how to create your own
+tvbuff. The use of the #if/#endif block is optional.
/* Code to actually dissect the packets */
#if 0
@@ -198,7 +202,7 @@ dissect_cops(const u_char *pd, int offset, frame_data *fd, proto_tree *tree)
{
tvbuff_t *tvb;
packet_info *pinfo = &pi;
- tvb = tvb_new_subset(pinfo->compat_top_tvb, offset, -1, -1);
+ tvb = tvb_create_from_top(offset);
#endif
Once we convert all the dissector-table dissectors, the second