diff options
author | Gilbert Ramirez <gram@alumni.rice.edu> | 2000-05-11 08:18:09 +0000 |
---|---|---|
committer | Gilbert Ramirez <gram@alumni.rice.edu> | 2000-05-11 08:18:09 +0000 |
commit | 292e38e2c61edcd14bfa30ca3c72bacda1bcbe32 (patch) | |
tree | db4edef02456a48d0f6d505166ac7d70f6c0f644 /packet-atalk.c | |
parent | 162800efb308901e0c302517be01226130e39b19 (diff) | |
download | wireshark-292e38e2c61edcd14bfa30ca3c72bacda1bcbe32.tar.gz |
Add tvbuff class.
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
Diffstat (limited to 'packet-atalk.c')
-rw-r--r-- | packet-atalk.c | 68 |
1 files changed, 34 insertions, 34 deletions
diff --git a/packet-atalk.c b/packet-atalk.c index b599f84837..6023821b1a 100644 --- a/packet-atalk.c +++ b/packet-atalk.c @@ -1,7 +1,7 @@ /* packet-atalk.c * Routines for Appletalk packet disassembly (DDP, currently). * - * $Id: packet-atalk.c,v 1.33 2000/04/16 21:37:03 guy Exp $ + * $Id: packet-atalk.c,v 1.34 2000/05/11 08:14:55 gram Exp $ * * Simon Wilkinson <sxw@dcs.ed.ac.uk> * @@ -172,11 +172,11 @@ int dissect_pascal_string(const u_char *pd, int offset, frame_data *fd, tmp = g_malloc( len+1 ); memcpy(tmp, &pd[offset], len); tmp[len] = 0; - item = proto_tree_add_item(tree, hf_index, offset-1, len+1, tmp); + item = proto_tree_add_item(tree, hf_index, NullTVB, offset-1, len+1, tmp); subtree = proto_item_add_subtree(item, ett_pstring); - proto_tree_add_text(subtree, offset-1, 1, "Length: %d", len); - proto_tree_add_text(subtree, offset, len, "Data: %s", tmp); + proto_tree_add_text(subtree, NullTVB, offset-1, 1, "Length: %d", len); + proto_tree_add_text(subtree, NullTVB, offset, len, "Data: %s", tmp); g_free(tmp); } @@ -223,12 +223,12 @@ dissect_rtmp_data(const u_char *pd, int offset, frame_data *fd, proto_tree *tree net, nodelen_bits, node); if (tree) { - ti = proto_tree_add_item(tree, proto_rtmp, offset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(tree, proto_rtmp, NullTVB, offset, END_OF_FRAME, NULL); rtmp_tree = proto_item_add_subtree(ti, ett_rtmp); - proto_tree_add_item(rtmp_tree, hf_rtmp_net, offset, 2, net); - proto_tree_add_item(rtmp_tree, hf_rtmp_node_len, offset+2, 1, nodelen_bits); - proto_tree_add_item(rtmp_tree, hf_rtmp_node, offset+3, nodelen, nodelen); + proto_tree_add_item(rtmp_tree, hf_rtmp_net, NullTVB, offset, 2, net); + proto_tree_add_item(rtmp_tree, hf_rtmp_node_len, NullTVB, offset+2, 1, nodelen_bits); + proto_tree_add_item(rtmp_tree, hf_rtmp_node, NullTVB, offset+3, nodelen, nodelen); offset += 3 + nodelen; i = 1; @@ -247,14 +247,14 @@ dissect_rtmp_data(const u_char *pd, int offset, frame_data *fd, proto_tree *tree tuple_net = pntohs(&pd[offset]); tuple_dist = pd[offset+2]; - tuple_item = proto_tree_add_text(rtmp_tree, offset, 3, + tuple_item = proto_tree_add_text(rtmp_tree, NullTVB, offset, 3, "Tuple %d: Net: %d Dist: %d", i, tuple_net, tuple_dist); tuple_tree = proto_item_add_subtree(tuple_item, ett_rtmp_tuple); - proto_tree_add_item(tuple_tree, hf_rtmp_tuple_net, offset, 2, + proto_tree_add_item(tuple_tree, hf_rtmp_tuple_net, NullTVB, offset, 2, tuple_net); - proto_tree_add_item(tuple_tree, hf_rtmp_tuple_dist, offset+2, 1, + proto_tree_add_item(tuple_tree, hf_rtmp_tuple_dist, NullTVB, offset+2, 1, tuple_dist); if ( tuple_dist == 0 || tuple_dist & 0x80 ) /* phase 1/2 */ @@ -268,9 +268,9 @@ dissect_rtmp_data(const u_char *pd, int offset, frame_data *fd, proto_tree *tree tuple_net2 = pntohs(&pd[offset+3]); tuple_dist2 = pd[offset+5]; - proto_tree_add_item(tuple_tree, hf_rtmp_tuple_net, offset, 2, + proto_tree_add_item(tuple_tree, hf_rtmp_tuple_net, NullTVB, offset, 2, tuple_net2); - proto_tree_add_item(tuple_tree, hf_rtmp_tuple_dist, offset+2, 1, + proto_tree_add_item(tuple_tree, hf_rtmp_tuple_dist, NullTVB, offset+2, 1, tuple_dist2); proto_item_set_len(tuple_item, 6); @@ -312,18 +312,18 @@ dissect_nbp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { val_to_str(op, nbp_op_vals, "unknown (%1x)"), count); if (tree) { - ti = proto_tree_add_item(tree, proto_nbp, offset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(tree, proto_nbp, NullTVB, offset, END_OF_FRAME, NULL); nbp_tree = proto_item_add_subtree(ti, ett_nbp); - info_item = proto_tree_add_uint_format(nbp_tree, hf_nbp_info, offset, 1, + info_item = proto_tree_add_uint_format(nbp_tree, hf_nbp_info, NullTVB, offset, 1, pd[offset], "Info: 0x%01X Operation: %s Count: %d", pd[offset], val_to_str(op, nbp_op_vals, "unknown"), count); nbp_info_tree = proto_item_add_subtree(info_item, ett_nbp_info); - proto_tree_add_item(nbp_info_tree, hf_nbp_op, offset, 1, pd[offset]); - proto_tree_add_item(nbp_info_tree, hf_nbp_count, offset, 1, pd[offset]); - proto_tree_add_item(nbp_tree, hf_nbp_tid, offset+1, 1, pd[offset+1]); + proto_tree_add_item(nbp_info_tree, hf_nbp_op, NullTVB, offset, 1, pd[offset]); + proto_tree_add_item(nbp_info_tree, hf_nbp_count, NullTVB, offset, 1, pd[offset]); + proto_tree_add_item(nbp_tree, hf_nbp_tid, NullTVB, offset+1, 1, pd[offset+1]); offset += 2; for (i=0; i<count; i++) { @@ -336,7 +336,7 @@ dissect_nbp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { return; } - node_item = proto_tree_add_text(nbp_tree, offset, 4, + node_item = proto_tree_add_text(nbp_tree, NullTVB, offset, 4, "Node %d", i+1); node_tree = proto_item_add_subtree(node_item, ett_nbp_node); @@ -347,13 +347,13 @@ dissect_nbp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { /* note, this is probably wrong, I need to look at my info at work tomorrow to straighten it out */ - proto_tree_add_item(node_tree, hf_nbp_node_net, offset, 2, addr.net); + proto_tree_add_item(node_tree, hf_nbp_node_net, NullTVB, offset, 2, addr.net); offset += 2; - proto_tree_add_item(node_tree, hf_nbp_node_node, offset, 1, addr.node); + proto_tree_add_item(node_tree, hf_nbp_node_node, NullTVB, offset, 1, addr.node); offset++; - proto_tree_add_item(node_tree, hf_nbp_node_port, offset, 1, addr.port); + proto_tree_add_item(node_tree, hf_nbp_node_port, NullTVB, offset, 1, addr.port); offset++; - proto_tree_add_item(node_tree, hf_nbp_node_enum, offset, 1, pd[offset]); + proto_tree_add_item(node_tree, hf_nbp_node_enum, NullTVB, offset, 1, pd[offset]); offset++; offset = dissect_pascal_string(pd,offset,fd,node_tree,hf_nbp_node_object); @@ -402,20 +402,20 @@ dissect_ddp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { val_to_str(ddp.type, op_vals, "Unknown DDP protocol (%02x)")); if (tree) { - ti = proto_tree_add_item(tree, proto_ddp, offset, DDP_HEADER_SIZE, NULL); + ti = proto_tree_add_item(tree, proto_ddp, NullTVB, offset, DDP_HEADER_SIZE, NULL); ddp_tree = proto_item_add_subtree(ti, ett_ddp); - proto_tree_add_item(ddp_tree, hf_ddp_hopcount, offset, 1, + proto_tree_add_item(ddp_tree, hf_ddp_hopcount, NullTVB, offset, 1, ddp_hops(ddp.hops_len)); - proto_tree_add_item(ddp_tree, hf_ddp_len, offset, 2, + proto_tree_add_item(ddp_tree, hf_ddp_len, NullTVB, offset, 2, ddp_len(ddp.hops_len)); - proto_tree_add_item(ddp_tree, hf_ddp_checksum, offset + 2, 2, ddp.sum); - proto_tree_add_item(ddp_tree, hf_ddp_dst_net, offset + 4, 2, ddp.dnet); - proto_tree_add_item(ddp_tree, hf_ddp_src_net, offset + 6, 2, ddp.snet); - proto_tree_add_item(ddp_tree, hf_ddp_dst_node, offset + 8, 1, ddp.dnode); - proto_tree_add_item(ddp_tree, hf_ddp_src_node, offset + 9, 1, ddp.snode); - proto_tree_add_item(ddp_tree, hf_ddp_dst_socket, offset + 10, 1, ddp.dport); - proto_tree_add_item(ddp_tree, hf_ddp_src_socket, offset + 11, 1, ddp.sport); - proto_tree_add_item(ddp_tree, hf_ddp_type, offset + 12, 1, ddp.type); + proto_tree_add_item(ddp_tree, hf_ddp_checksum, NullTVB, offset + 2, 2, ddp.sum); + proto_tree_add_item(ddp_tree, hf_ddp_dst_net, NullTVB, offset + 4, 2, ddp.dnet); + proto_tree_add_item(ddp_tree, hf_ddp_src_net, NullTVB, offset + 6, 2, ddp.snet); + proto_tree_add_item(ddp_tree, hf_ddp_dst_node, NullTVB, offset + 8, 1, ddp.dnode); + proto_tree_add_item(ddp_tree, hf_ddp_src_node, NullTVB, offset + 9, 1, ddp.snode); + proto_tree_add_item(ddp_tree, hf_ddp_dst_socket, NullTVB, offset + 10, 1, ddp.dport); + proto_tree_add_item(ddp_tree, hf_ddp_src_socket, NullTVB, offset + 11, 1, ddp.sport); + proto_tree_add_item(ddp_tree, hf_ddp_type, NullTVB, offset + 12, 1, ddp.type); } offset += DDP_HEADER_SIZE; |