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-tftp.c | |
parent | 162800efb308901e0c302517be01226130e39b19 (diff) |
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-tftp.c')
-rw-r--r-- | packet-tftp.c | 48 |
1 files changed, 24 insertions, 24 deletions
diff --git a/packet-tftp.c b/packet-tftp.c index 2c137d312a..175927c322 100644 --- a/packet-tftp.c +++ b/packet-tftp.c @@ -5,7 +5,7 @@ * Craig Newell <CraigN@cheque.uq.edu.au> * RFC2347 TFTP Option Extension * - * $Id: packet-tftp.c,v 1.10 2000/02/09 17:15:47 gram Exp $ + * $Id: packet-tftp.c,v 1.11 2000/05/11 08:15:53 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@zing.org> @@ -97,89 +97,89 @@ dissect_tftp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if (tree) { - ti = proto_tree_add_item(tree, proto_tftp, offset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(tree, proto_tftp, NullTVB, offset, END_OF_FRAME, NULL); tftp_tree = proto_item_add_subtree(ti, ett_tftp); i1 = pntohs(pd+offset); - proto_tree_add_item_hidden(tftp_tree, hf_tftp_type, offset, 2, i1); + proto_tree_add_item_hidden(tftp_tree, hf_tftp_type, NullTVB, offset, 2, i1); switch (i1) { case RRQ: - proto_tree_add_text(tftp_tree, offset, 2, "Read Request"); + proto_tree_add_text(tftp_tree, NullTVB, offset, 2, "Read Request"); offset += 2; i1 = strlen(pd+offset); - proto_tree_add_text(tftp_tree, offset, i1+1, "Source File: %s", pd+offset); + proto_tree_add_text(tftp_tree, NullTVB, offset, i1+1, "Source File: %s", pd+offset); offset += i1 + 1; i1 = strlen(pd+offset); - proto_tree_add_text(tftp_tree, offset, i1+1, "Type: %s",pd+offset); + proto_tree_add_text(tftp_tree, NullTVB, offset, i1+1, "Type: %s",pd+offset); offset += i1 + 1; while (offset < pi.captured_len) { int i2; i1 = strlen(pd+offset); /* length of option */ i2 = strlen(pd+offset+i1+1); /* length of value */ - proto_tree_add_text(tftp_tree, offset, i1+i2+2, "Option: %s = %s", + proto_tree_add_text(tftp_tree, NullTVB, offset, i1+i2+2, "Option: %s = %s", pd+offset, pd+offset+i1+1); offset += i1 + i2 + 2; } break; case WRQ: - proto_tree_add_text(tftp_tree, offset, 2, "Write Request"); + proto_tree_add_text(tftp_tree, NullTVB, offset, 2, "Write Request"); offset += 2; i1 = strlen(pd+offset); - proto_tree_add_text(tftp_tree, offset, i1+1, "Destination File: %s", pd+offset); + proto_tree_add_text(tftp_tree, NullTVB, offset, i1+1, "Destination File: %s", pd+offset); offset += i1 + 1; i1 = strlen(pd+offset); - proto_tree_add_text(tftp_tree, offset, i1+1, "Type: %s",pd+offset); + proto_tree_add_text(tftp_tree, NullTVB, offset, i1+1, "Type: %s",pd+offset); offset += i1 + 1; while (offset < pi.captured_len) { int i2; i1 = strlen(pd+offset); /* length of option */ i2 = strlen(pd+offset+i1+1); /* length of value */ - proto_tree_add_text(tftp_tree, offset, i1+i2+2, "Option: %s = %s", + proto_tree_add_text(tftp_tree, NullTVB, offset, i1+i2+2, "Option: %s = %s", pd+offset, pd+offset+i1+1); offset += i1 + i2 + 2; } break; case DATA: - proto_tree_add_text(tftp_tree, offset, 2, "Data Packet"); + proto_tree_add_text(tftp_tree, NullTVB, offset, 2, "Data Packet"); offset += 2; i1 = pntohs(pd+offset); - proto_tree_add_text(tftp_tree, offset, 2, "Block = %u", i1); + proto_tree_add_text(tftp_tree, NullTVB, offset, 2, "Block = %u", i1); offset += 2; - proto_tree_add_text(tftp_tree, offset, END_OF_FRAME, + proto_tree_add_text(tftp_tree, NullTVB, offset, END_OF_FRAME, "Data (%d bytes)", END_OF_FRAME); break; case ACK: - proto_tree_add_text(tftp_tree, offset, 2, "Acknowledgement"); + proto_tree_add_text(tftp_tree, NullTVB, offset, 2, "Acknowledgement"); offset += 2; i1 = pntohs(pd+offset); - proto_tree_add_text(tftp_tree, offset, END_OF_FRAME, "Block = %u", i1); + proto_tree_add_text(tftp_tree, NullTVB, offset, END_OF_FRAME, "Block = %u", i1); break; case ERROR: - proto_tree_add_text(tftp_tree, offset, 2, "Error Code"); + proto_tree_add_text(tftp_tree, NullTVB, offset, 2, "Error Code"); offset += 2; i1 = pntohs(pd+offset); - proto_tree_add_item_hidden(tftp_tree, hf_tftp_error_code, offset, 2, i1); - proto_tree_add_text(tftp_tree, offset, 2, "Code = %s", tftp_errors[i1 % 8]); + proto_tree_add_item_hidden(tftp_tree, hf_tftp_error_code, NullTVB, offset, 2, i1); + proto_tree_add_text(tftp_tree, NullTVB, offset, 2, "Code = %s", tftp_errors[i1 % 8]); offset += 2; - proto_tree_add_text(tftp_tree, offset, END_OF_FRAME, "Error Message: %s", pd + offset); + proto_tree_add_text(tftp_tree, NullTVB, offset, END_OF_FRAME, "Error Message: %s", pd + offset); break; case OACK: - proto_tree_add_text(tftp_tree, offset, 2, "Option Acknowledgement"); + proto_tree_add_text(tftp_tree, NullTVB, offset, 2, "Option Acknowledgement"); offset += 2; while (offset < pi.captured_len) { int i2; i1 = strlen(pd+offset); /* length of option */ i2 = strlen(pd+offset+i1+1); /* length of value */ - proto_tree_add_text(tftp_tree, offset, i1+i2+2, "Option: %s = %s", + proto_tree_add_text(tftp_tree, NullTVB, offset, i1+i2+2, "Option: %s = %s", pd+offset, pd+offset+i1+1); offset += i1 + i2 + 2; } break; default: - proto_tree_add_text(tftp_tree, offset, 2, "Unknown TFTP Request: %0X.", i1); + proto_tree_add_text(tftp_tree, NullTVB, offset, 2, "Unknown TFTP Request: %0X.", i1); offset += 2; - proto_tree_add_text(tftp_tree, offset, END_OF_FRAME, + proto_tree_add_text(tftp_tree, NullTVB, offset, END_OF_FRAME, "Data (%d bytes)", END_OF_FRAME); break; } |