-$Id: README.developer,v 1.44 2001/12/17 08:35:09 guy Exp $
+$Id: README.developer,v 1.45 2002/01/20 22:12:37 guy Exp $
This file is a HOWTO for Ethereal developers. It describes how to start coding
a Ethereal protocol dissector and the use some of the important functions and
is needed only if you are using the "snprintf()" function.
-The "$Id: README.developer,v 1.44 2001/12/17 08:35:09 guy Exp $"
+The "$Id: README.developer,v 1.45 2002/01/20 22:12:37 guy Exp $"
in the comment will be updated by CVS when the file is
checked in; it will allow the RCS "ident" command to report which
version of the file is currently checked out.
* Routines for PROTONAME dissection
* Copyright 2000, YOUR_NAME <YOUR_EMAIL_ADDRESS>
*
- * $Id: README.developer,v 1.44 2001/12/17 08:35:09 guy Exp $
+ * $Id: README.developer,v 1.45 2002/01/20 22:12:37 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
display window when the line in the protocol tree display
corresponding to that item is selected.
- tvb_length(tvb) is a handy way to highlight all data from the offset to
- the end of the packet. */
+ Supplying a length of -1 is the way to highlight all data from the
+ offset to the end of the packet. */
/* create display subtree for the protocol */
- ti = proto_tree_add_item(tree, proto_PROTOABBREV, tvb, 0, tvb_length(tvb), FALSE);
+ ti = proto_tree_add_item(tree, proto_PROTOABBREV, tvb, 0, -1, FALSE);
PROTOABBREV_tree = proto_item_add_subtree(ti, ett_PROTOABBREV);
of the item.
The length of some items cannot be determined until the item has been
-dissected; to add such an item, add it with a length of 0, and, when the
-dissection is complete (or fails because the packet is too short), set
-the length with 'proto_item_set_len()':
+dissected; to add such an item, add it with a length of -1, and, when the
+dissection is complete, set the length with 'proto_item_set_len()':
void
proto_item_set_len(ti, length);
/* proto.c
* Routines for protocol tree
*
- * $Id: proto.c,v 1.49 2002/01/07 01:05:33 guy Exp $
+ * $Id: proto.c,v 1.50 2002/01/20 22:12:39 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
static field_info *
alloc_field_info(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length)
{
- field_info *fi;
-
- fi = g_mem_chunk_alloc(gmc_field_info);
-
- g_assert(hfindex >= 0 && (guint) hfindex < gpa_hfinfo->len);
+ header_field_info *hfinfo;
+ field_info *fi;
/*
* We only allow a null tvbuff if the item has a zero length,
* i.e. if there's no data backing it.
*/
g_assert(tvb != NULL || length == 0);
- fi->hfinfo = proto_registrar_get_nth(hfindex);
- g_assert(fi->hfinfo != NULL);
+
+ g_assert(hfindex >= 0 && (guint) hfindex < gpa_hfinfo->len);
+ hfinfo = proto_registrar_get_nth(hfindex);
+ g_assert(hfinfo != NULL);
+
+ if (length == -1) {
+ /*
+ * For FT_NONE or FT_PROTOCOL fields, this means "set the
+ * length to what remains in the tvbuff"; the assumption
+ * is that the length can only be determined by dissection,
+ * so we set it to that value so that, if we throw an
+ * exception while dissecting, it has what is probably the
+ * right value.
+ *
+ * It's not valid for any other type of field.
+ */
+ g_assert(hfinfo->type == FT_PROTOCOL ||
+ hfinfo->type == FT_NONE);
+ length = tvb_length_remaining(tvb, start);
+ }
+
+ fi = g_mem_chunk_alloc(gmc_field_info);
+ fi->hfinfo = hfinfo;
fi->start = start;
if (tvb) {
fi->start += tvb_raw_offset(tvb);
/* packet-atalk.c
* Routines for Appletalk packet disassembly (DDP, currently).
*
- * $Id: packet-atalk.c,v 1.60 2001/12/10 00:25:26 guy Exp $
+ * $Id: packet-atalk.c,v 1.61 2002/01/20 22:12:25 guy Exp $
*
* Simon Wilkinson <sxw@dcs.ed.ac.uk>
*
net, nodelen_bits, node);
if (tree) {
- ti = proto_tree_add_item(tree, proto_rtmp, tvb, offset,
- tvb_length_remaining(tvb, offset), FALSE);
+ ti = proto_tree_add_item(tree, proto_rtmp, tvb, offset, -1, FALSE);
rtmp_tree = proto_item_add_subtree(ti, ett_rtmp);
proto_tree_add_uint(rtmp_tree, hf_rtmp_net, tvb, offset, 2, net);
val_to_str(op, nbp_op_vals, "Unknown (0x%01x)"), count);
if (tree) {
- ti = proto_tree_add_item(tree, proto_nbp, tvb, offset,
- tvb_length_remaining(tvb, offset), FALSE);
+ ti = proto_tree_add_item(tree, proto_nbp, tvb, offset, -1, FALSE);
nbp_tree = proto_item_add_subtree(ti, ett_nbp);
info_item = proto_tree_add_uint_format(nbp_tree, hf_nbp_info, tvb, offset, 1,
proto_tree *node_item,*node_tree;
int soffset = offset;
- node_item = proto_tree_add_text(nbp_tree, tvb, offset, 4,
+ node_item = proto_tree_add_text(nbp_tree, tvb, offset, -1,
"Node %d", i+1);
node_tree = proto_item_add_subtree(node_item, ett_nbp_node);
* Routines for BACnet (NPDU) dissection
* Copyright 2001, Hartmut Mueller <hartmut@abmlinux.org>, FH Dortmund
*
- * $Id: packet-bacnet.c,v 1.8 2001/12/10 00:25:26 guy Exp $
+ * $Id: packet-bacnet.c,v 1.9 2002/01/20 22:12:25 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
if (tree) {
/* I don't know the length of the NPDU by know. Setting the length after dissection */
- ti = proto_tree_add_item(tree, proto_bacnet, tvb, 0, 0, FALSE);
+ ti = proto_tree_add_item(tree, proto_bacnet, tvb, 0, -1, FALSE);
bacnet_tree = proto_item_add_subtree(ti, ett_bacnet);
/* packet-dns.c
* Routines for DNS packet disassembly
*
- * $Id: packet-dns.c,v 1.78 2002/01/19 23:59:02 guy Exp $
+ * $Id: packet-dns.c,v 1.79 2002/01/20 22:12:25 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
start_off = cur_off;
if (dns_tree) {
char *s = (isupdate ? "Zone" : "Queries");
- ti = proto_tree_add_text(dns_tree, tvb, start_off, 0, s);
+ ti = proto_tree_add_text(dns_tree, tvb, start_off, -1, s);
qatree = proto_item_add_subtree(ti, ett_dns_qry);
}
while (count-- > 0) {
start_off = cur_off;
if (dns_tree) {
- ti = proto_tree_add_text(dns_tree, tvb, start_off, 0, name);
+ ti = proto_tree_add_text(dns_tree, tvb, start_off, -1, name);
qatree = proto_item_add_subtree(ti, ett_dns_ans);
}
while (count-- > 0) {
/* packet-dvmrp.c 2001 Ronnie Sahlberg <See AUTHORS for email>
* Routines for IGMP/DVMRP packet disassembly
*
- * $Id: packet-dvmrp.c,v 1.5 2001/12/23 21:36:57 guy Exp $
+ * $Id: packet-dvmrp.c,v 1.6 2002/01/20 22:12:25 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
int old_offset = offset;
item = proto_tree_add_item(parent_tree, hf_route,
- tvb, offset, 0, FALSE);
+ tvb, offset, -1, FALSE);
tree = proto_item_add_subtree(item, ett_route);
m0 = 0xff;
offset += 2;
/* decode all the v1 commands */
- while (tvb_length_remaining(tvb, offset)) {
+ while (tvb_reported_length_remaining(tvb, offset)) {
proto_tree *tree;
proto_item *item;
guint8 cmd,count;
int old_offset = offset;
item = proto_tree_add_item(parent_tree, hf_commands,
- tvb, offset, 0, FALSE);
+ tvb, offset, -1, FALSE);
tree = proto_item_add_subtree(item, ett_commands);
cmd = tvb_get_guint8(tvb, offset);
return offset+tvb_length_remaining(tvb, offset);
}
- item = proto_tree_add_item(parent_tree, proto_dvmrp, tvb, offset, 0, FALSE);
+ item = proto_tree_add_item(parent_tree, proto_dvmrp, tvb, offset, -1, FALSE);
tree = proto_item_add_subtree(item, ett_dvmrp);
offset += sizeof(guint8);
length -= sizeof(guint8);
- msg_item = proto_tree_add_text(gmrp_tree, tvb, msg_start, 0,
+ msg_item = proto_tree_add_text(gmrp_tree, tvb, msg_start, -1,
"Message %d", msg_index + 1);
proto_tree_add_uint(gmrp_tree, hf_gmrp_attribute_type, tvb,
length -= sizeof(guint8);
attr_item = proto_tree_add_text(gmrp_tree, tvb,
- attr_start, 0, " Attribute %d", attr_index + 1);
+ attr_start, -1, " Attribute %d", attr_index + 1);
proto_tree_add_uint(gmrp_tree, hf_gmrp_attribute_length,
tvb, attr_start, sizeof(guint8), octet);
* Routines for GVRP (GARP VLAN Registration Protocol) dissection
* Copyright 2000, Kevin Shi <techishi@ms22.hinet.net>
*
- * $Id: packet-gvrp.c,v 1.8 2001/12/10 00:25:28 guy Exp $
+ * $Id: packet-gvrp.c,v 1.9 2002/01/20 22:12:26 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
offset += sizeof(guint8);
length -= sizeof(guint8);
- msg_item = proto_tree_add_text(gvrp_tree, tvb, msg_start, 0,
+ msg_item = proto_tree_add_text(gvrp_tree, tvb, msg_start, -1,
"Message %d", msg_index + 1);
proto_tree_add_uint(gvrp_tree, hf_gvrp_attribute_type, tvb,
length -= sizeof(guint8);
attr_item = proto_tree_add_text(gvrp_tree, tvb,
- attr_start, 0, " Attribute %d", attr_index + 1);
+ attr_start, -1, " Attribute %d", attr_index + 1);
proto_tree_add_uint(gvrp_tree, hf_gvrp_attribute_length,
tvb, attr_start, sizeof(guint8), octet);
/* packet-igmp.c 2001 Ronnie Sahlberg <See AUTHORS for email>
* Routines for IGMP packet disassembly
*
- * $Id: packet-igmp.c,v 1.15 2001/12/23 21:36:57 guy Exp $
+ * $Id: packet-igmp.c,v 1.16 2002/01/20 22:12:26 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
guint32 ip;
tvb_memcpy(tvb, (guint8 *)&ip, offset+4, 4);
- item = proto_tree_add_text(parent_tree, tvb, offset, 0,
+ item = proto_tree_add_text(parent_tree, tvb, offset, -1,
"Group Record : %s %s",
ip_to_str((gchar*)&ip),
val_to_str(tvb_get_guint8(tvb, offset), vs_record_type,"")
unsigned char type;
guint32 dst;
- item = proto_tree_add_item(parent_tree, proto_igmp, tvb, offset, 0, FALSE);
+ item = proto_tree_add_item(parent_tree, proto_igmp, tvb, offset, -1, FALSE);
tree = proto_item_add_subtree(item, ett_igmp);
*
* Conforms to the protocol described in: draft-ietf-ips-iscsi-08.txt
*
- * $Id: packet-iscsi.c,v 1.20 2002/01/16 20:25:07 guy Exp $
+ * $Id: packet-iscsi.c,v 1.21 2002/01/20 22:12:26 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
/* create display subtree for the protocol */
ti = proto_tree_add_protocol_format(tree, proto_iscsi, tvb,
- offset, 0, "iSCSI (%s)",
+ offset, -1, "iSCSI (%s)",
(char *)opcode_str);
proto_tree_add_uint(ti, hf_iscsi_Opcode, tvb,
/* packet-isis-lsp.c
* Routines for decoding isis lsp packets and their CLVs
*
- * $Id: packet-isis-lsp.c,v 1.23 2001/12/26 21:37:21 guy Exp $
+ * $Id: packet-isis-lsp.c,v 1.24 2002/01/20 22:12:26 guy Exp $
* Stuart Stanley <stuarts@mxmail.net>
*
* Ethereal - Network traffic analyzer
bit_length = ctrl_info & 0x3f;
byte_length = (bit_length + 7) / 8;
tvb_memcpy (tvb, prefix, offset+5, byte_length);
- pi = proto_tree_add_text (tree, tvb, offset, 0,
+ pi = proto_tree_add_text (tree, tvb, offset, -1,
"IPv4 prefix: %s/%d",
ip_to_str (prefix),
bit_length );
bit_length = tvb_get_guint8(tvb, offset+5);
byte_length = (bit_length + 7) / 8;
tvb_memcpy (tvb, prefix.s6_addr, offset+6, byte_length);
- ti = proto_tree_add_text (tree, tvb, offset, 0,
+ ti = proto_tree_add_text (tree, tvb, offset, -1,
"IP prefix: %s /%d",
ip6_to_str (&prefix),
bit_length );
if (!tree) return;
while (length > 0) {
- ti = proto_tree_add_text (tree, tvb, offset, 0,
+ ti = proto_tree_add_text (tree, tvb, offset, -1,
"IS neighbor: %s",
print_system_id (tvb_get_ptr(tvb, offset, 7), 7) );
ntree = proto_item_add_subtree (ti,
mt_desc,
mt_block&0xfff );
- ti = proto_tree_add_text (tree, tvb, offset+2, 0,
+ ti = proto_tree_add_text (tree, tvb, offset+2, -1,
"IS neighbor: %s",
print_system_id(tvb_get_ptr(tvb, offset+2, 7), 7) );
int inx, q, some, value, len;
if (tree) {
- ti = proto_tree_add_text(tree, tvb, offset,
- tvb_length_remaining(tvb, offset), PROTO_STRING_LSP);
+ ti = proto_tree_add_text(tree, tvb, offset, -1,
+ PROTO_STRING_LSP);
lsp_tree = proto_item_add_subtree(ti, ett_isis_lsp);
}
/* packet-ldp.c
* Routines for LDP (RFC 3036) packet disassembly
*
- * $Id: packet-ldp.c,v 1.23 2001/12/10 00:25:30 guy Exp $
+ * $Id: packet-ldp.c,v 1.24 2002/01/20 22:12:26 guy Exp $
*
* Copyright (c) November 2000 by Richard Sharpe <rsharpe@ns.aus.com>
*
if (tree) { /* Build the tree info ..., this is wrong! FIXME */
- ldp_item = proto_tree_add_item(tree, proto_ldp, tvb, offset,
- tvb_length_remaining(tvb, offset), FALSE);
+ ldp_item = proto_tree_add_item(tree, proto_ldp, tvb, offset, -1, FALSE);
ldp_tree = proto_item_add_subtree(ldp_item, ett_ldp);
}
* Routines for IEEE 802.2 LLC layer
* Gilbert Ramirez <gram@alumni.rice.edu>
*
- * $Id: packet-llc.c,v 1.93 2001/12/10 00:25:30 guy Exp $
+ * $Id: packet-llc.c,v 1.94 2002/01/20 22:12:26 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
dsap = tvb_get_guint8(tvb, 0);
if (tree) {
- ti = proto_tree_add_item(tree, proto_llc, tvb, 0, 0, FALSE);
+ ti = proto_tree_add_item(tree, proto_llc, tvb, 0, -1, FALSE);
llc_tree = proto_item_add_subtree(ti, ett_llc);
proto_tree_add_uint(llc_tree, hf_llc_dsap, tvb, 0,
1, dsap & SAP_MASK);
* Copyright 2001, Jeff Morriss <jeff.morriss[AT]ulticom.com>,
* updated by Michael Tuexen <michael.tuexen[AT]icn.siemens.de>
*
- * $Id: packet-m2pa.c,v 1.4 2001/12/10 00:25:30 guy Exp $
+ * $Id: packet-m2pa.c,v 1.5 2002/01/20 22:12:26 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
if (m2pa_tree) {
message_data_length = tvb_length(message_data_tvb);
- proto_tree_add_bytes(m2pa_tree, hf_m2pa_proving_data,
- message_data_tvb, 0, message_data_length,
- tvb_get_ptr(message_data_tvb, 0, message_data_length));
+ proto_tree_add_item(m2pa_tree, hf_m2pa_proving_data,
+ message_data_tvb, 0, message_data_length, FALSE);
};
}
if (m2pa_tree) {
message_data_length = tvb_length(message_data_tvb);
- proto_tree_add_bytes(m2pa_tree, hf_m2pa_unknown_data,
- message_data_tvb, 0, message_data_length,
- tvb_get_ptr(message_data_tvb, 0, message_data_length));
+ proto_tree_add_item(m2pa_tree, hf_m2pa_unknown_data,
+ message_data_tvb, 0, message_data_length, FALSE);
};
}
necessary to generate protocol tree items. */
if (tree) {
/* create the m2pa protocol tree */
- m2pa_item = proto_tree_add_item(tree, proto_m2pa, tvb, 0, tvb_length(tvb), FALSE);
+ m2pa_item = proto_tree_add_item(tree, proto_m2pa, tvb, 0, -1, FALSE);
m2pa_tree = proto_item_add_subtree(m2pa_item, ett_m2pa);
} else {
m2pa_item = NULL;
/* packet-mount.c
* Routines for mount dissection
*
- * $Id: packet-mount.c,v 1.28 2002/01/12 10:24:46 guy Exp $
+ * $Id: packet-mount.c,v 1.29 2002/01/20 22:12:26 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
if (tree) {
lock_item = proto_tree_add_item(tree, hf_mount_mountlist, tvb,
- offset, tvb_length_remaining(tvb, offset), FALSE);
+ offset, -1, FALSE);
if (lock_item)
lock_tree = proto_item_add_subtree(lock_item, ett_mount_mountlist);
}
group_names_len=0;
if (tree) {
exportlist_item = proto_tree_add_item(tree, hf_mount_exportlist, tvb,
- offset, tvb_length_remaining(tvb, offset), FALSE);
+ offset, -1, FALSE);
if (exportlist_item)
exportlist_tree = proto_item_add_subtree(exportlist_item, ett_mount_exportlist);
}
if (tree) {
groups_item = proto_tree_add_item(exportlist_tree, hf_mount_groups, tvb,
- offset, tvb_length_remaining(tvb, offset), FALSE);
+ offset, -1, FALSE);
if (groups_item)
groups_tree = proto_item_add_subtree(groups_item, ett_mount_groups);
}
/* packet-mrdisc.c 2001 Ronnie Sahlberg <See AUTHORS for email>
* Routines for IGMP/MRDISC packet disassembly
*
- * $Id: packet-mrdisc.c,v 1.4 2001/12/23 21:36:57 guy Exp $
+ * $Id: packet-mrdisc.c,v 1.5 2002/01/20 22:12:26 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
int old_offset = offset;
item = proto_tree_add_item(parent_tree, hf_options,
- tvb, offset, 0, FALSE);
+ tvb, offset, -1, FALSE);
tree = proto_item_add_subtree(item, ett_options);
type = tvb_get_guint8(tvb, offset);
/* packet-msnip.c 2001 Ronnie Sahlberg <See AUTHORS for email>
* Routines for IGMP/MSNIP packet disassembly
*
- * $Id: packet-msnip.c,v 1.3 2001/12/23 21:36:57 guy Exp $
+ * $Id: packet-msnip.c,v 1.4 2002/01/20 22:12:26 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
int old_offset = offset;
item = proto_tree_add_item(parent_tree, hf_groups,
- tvb, offset, 0, FALSE);
+ tvb, offset, -1, FALSE);
tree = proto_item_add_subtree(item, ett_groups);
/* record type */
int old_offset = offset;
item = proto_tree_add_item(parent_tree, hf_groups,
- tvb, offset, 0, FALSE);
+ tvb, offset, -1, FALSE);
tree = proto_item_add_subtree(item, ett_groups);
/* multicast group */
return offset+tvb_length_remaining(tvb, offset);
}
- item = proto_tree_add_item(parent_tree, proto_msnip, tvb, offset, 0, FALSE);
+ item = proto_tree_add_item(parent_tree, proto_msnip, tvb, offset, -1, FALSE);
tree = proto_item_add_subtree(item, ett_msnip);
&ett_groups,
};
- proto_msnip = proto_register_protocol("MSNIP : Multicast Source Notification of Interest Protocol",
+ proto_msnip = proto_register_protocol("MSNIP: Multicast Source Notification of Interest Protocol",
"MSNIP", "msnip");
proto_register_field_array(proto_msnip, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
/* packet-mtp2.c
* Routines for MTP2 dissection
* It is hopefully (needs testing) compliant to
- * ITU-T Q. 703
+ * ITU-T Q.703
*
* Copyright 2001, Michael Tuexen <michael.tuexen[AT]icn.siemens.de>
*
- * $Id: packet-mtp2.c,v 1.1 2001/12/11 03:04:26 gram Exp $
+ * $Id: packet-mtp2.c,v 1.2 2002/01/20 22:12:26 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
col_set_str(pinfo->cinfo, COL_PROTOCOL, "MTP2");
if (tree) {
- mtp2_item = proto_tree_add_item(tree, proto_mtp2, tvb, 0, tvb_length(tvb), FALSE);
+ mtp2_item = proto_tree_add_item(tree, proto_mtp2, tvb, 0, -1, FALSE);
mtp2_tree = proto_item_add_subtree(mtp2_item, ett_mtp2);
};
* Routines for NetBIOS over IPX packet disassembly
* Gilbert Ramirez <gram@alumni.rice.edu>
*
- * $Id: packet-nbipx.c,v 1.44 2001/12/10 00:25:30 guy Exp $
+ * $Id: packet-nbipx.c,v 1.45 2002/01/20 22:12:26 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
if (tree) {
ti = proto_tree_add_item(tree, proto_nbipx, tvb, 0,
- 0, FALSE);
+ -1, FALSE);
nbipx_tree = proto_item_add_subtree(ti, ett_nbipx);
}
* to when it had only NBNS)
* Guy Harris <guy@alum.mit.edu>
*
- * $Id: packet-nbns.c,v 1.70 2002/01/19 23:59:03 guy Exp $
+ * $Id: packet-nbns.c,v 1.71 2002/01/20 22:12:26 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
start_off = cur_off;
if (nbns_tree != NULL) {
- ti = proto_tree_add_text(nbns_tree, tvb, start_off, 0, "Queries");
+ ti = proto_tree_add_text(nbns_tree, tvb, start_off, -1, "Queries");
qatree = proto_item_add_subtree(ti, ett_nbns_qry);
}
while (count-- > 0) {
start_off = cur_off;
if (nbns_tree != NULL) {
- ti = proto_tree_add_text(nbns_tree, tvb, start_off, 0, name);
+ ti = proto_tree_add_text(nbns_tree, tvb, start_off, -1, name);
qatree = proto_item_add_subtree(ti, ett_nbns_ans);
}
while (count-- > 0) {
}
if (tree) {
- ti = proto_tree_add_item(tree, proto_nbns, tvb, offset,
- tvb_length(tvb), FALSE);
+ ti = proto_tree_add_item(tree, proto_nbns, tvb, offset, -1,
+ FALSE);
nbns_tree = proto_item_add_subtree(ti, ett_nbns);
if (flags & F_RESPONSE) {
}
if (tree) {
- ti = proto_tree_add_item(tree, proto_nbdgm, tvb, offset,
- tvb_length_remaining(tvb, offset), FALSE);
+ ti = proto_tree_add_item(tree, proto_nbdgm, tvb, offset, -1,
+ FALSE);
nbdgm_tree = proto_item_add_subtree(ti, ett_nbdgm);
proto_tree_add_uint(nbdgm_tree, hf_nbdgm_type, tvb,
* Routines for NDMP dissection
* 2001 Ronnie Sahlberg (see AUTHORS for email)
*
- * $Id: packet-ndmp.c,v 1.8 2002/01/18 22:37:56 guy Exp $
+ * $Id: packet-ndmp.c,v 1.9 2002/01/20 22:12:26 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
char *name;
if (parent_tree) {
- item = proto_tree_add_text(parent_tree, tvb, offset, 0,
- "File ");
+ item = proto_tree_add_text(parent_tree, tvb, offset, -1,
+ "File");
tree = proto_item_add_subtree(item, ett_ndmp_file_name);
}
nstime_t ns;
if (parent_tree) {
- item = proto_tree_add_text(parent_tree, tvb, offset, 0,
+ item = proto_tree_add_text(parent_tree, tvb, offset, -1,
"Stats:");
tree = proto_item_add_subtree(item, ett_ndmp_file_stats);
}
int old_offset=offset;
if (parent_tree) {
- item = proto_tree_add_text(parent_tree, tvb, offset, 0,
+ item = proto_tree_add_text(parent_tree, tvb, offset, -1,
"File:");
tree = proto_item_add_subtree(item, ett_ndmp_file);
}
* Copyright 1999, Uwe Girlich <Uwe.Girlich@philosys.de>
* Copyright 2000-2001, Mike Frisch <frisch@hummingbird.com> (NFSv4 decoding)
*
- * $Id: packet-nfs.c,v 1.63 2002/01/14 13:16:31 girlich Exp $
+ * $Id: packet-nfs.c,v 1.64 2002/01/20 22:12:26 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
int old_offset = offset;
if (tree) {
- fattr_item = proto_tree_add_text(tree, tvb, offset,
- tvb_length_remaining(tvb, offset), "%s", name);
+ fattr_item = proto_tree_add_text(tree, tvb, offset, -1,
+ "%s", name);
fattr_tree = proto_item_add_subtree(fattr_item, ett_nfs_fattr);
}
int old_offset = offset;
if (tree) {
- sattr_item = proto_tree_add_text(tree, tvb, offset,
- tvb_length_remaining(tvb, offset), "%s", name);
+ sattr_item = proto_tree_add_text(tree, tvb, offset, -1,
+ "%s", name);
sattr_tree = proto_item_add_subtree(sattr_item, ett_nfs_sattr);
}
int old_offset = offset;
if (tree) {
- diropargs_item = proto_tree_add_text(tree, tvb, offset,
- tvb_length_remaining(tvb, offset), "%s", name);
+ diropargs_item = proto_tree_add_text(tree, tvb, offset, -1,
+ "%s", name);
diropargs_tree = proto_item_add_subtree(diropargs_item, ett_nfs_diropargs);
}
if (tree) {
entry_item = proto_tree_add_item(tree, hf_nfs_readdir_entry, tvb,
- offset+0, tvb_length_remaining(tvb, offset), FALSE);
+ offset+0, -1, FALSE);
entry_tree = proto_item_add_subtree(entry_item, ett_nfs_readdir_entry);
}
guint32 type;
if (tree) {
- fattr3_item = proto_tree_add_text(tree, tvb, offset,
- tvb_length_remaining(tvb, offset), "%s", name);
+ fattr3_item = proto_tree_add_text(tree, tvb, offset, -1,
+ "%s", name);
fattr3_tree = proto_item_add_subtree(fattr3_item, ett_nfs_fattr3);
}
guint32 attributes_follow;
if (tree) {
- post_op_attr_item = proto_tree_add_text(tree, tvb, offset,
- tvb_length_remaining(tvb, offset), "%s", name);
+ post_op_attr_item = proto_tree_add_text(tree, tvb, offset, -1,
+ "%s", name);
post_op_attr_tree = proto_item_add_subtree(post_op_attr_item,
ett_nfs_post_op_attr);
}
int old_offset = offset;
if (tree) {
- wcc_attr_item = proto_tree_add_text(tree, tvb, offset,
- tvb_length_remaining(tvb, offset), "%s", name);
+ wcc_attr_item = proto_tree_add_text(tree, tvb, offset, -1,
+ "%s", name);
wcc_attr_tree = proto_item_add_subtree(wcc_attr_item,
ett_nfs_wcc_attr);
}
guint32 attributes_follow;
if (tree) {
- pre_op_attr_item = proto_tree_add_text(tree, tvb, offset,
- tvb_length_remaining(tvb, offset), "%s", name);
+ pre_op_attr_item = proto_tree_add_text(tree, tvb, offset, -1,
+ "%s", name);
pre_op_attr_tree = proto_item_add_subtree(pre_op_attr_item,
ett_nfs_pre_op_attr);
}
int old_offset = offset;
if (tree) {
- wcc_data_item = proto_tree_add_text(tree, tvb, offset,
- tvb_length_remaining(tvb, offset), "%s", name);
+ wcc_data_item = proto_tree_add_text(tree, tvb, offset, -1,
+ "%s", name);
wcc_data_tree = proto_item_add_subtree(wcc_data_item,
ett_nfs_wcc_data);
}
guint32 handle_follows;
if (tree) {
- post_op_fh3_item = proto_tree_add_text(tree, tvb, offset,
- tvb_length_remaining(tvb, offset), "%s", name);
+ post_op_fh3_item = proto_tree_add_text(tree, tvb, offset, -1,
+ "%s", name);
post_op_fh3_tree = proto_item_add_subtree(post_op_fh3_item,
ett_nfs_post_op_fh3);
}
set_it_name = val_to_str(set_it,value_follows,"Unknown");
if (tree) {
- set_mode3_item = proto_tree_add_text(tree, tvb, offset,
- tvb_length_remaining(tvb, offset), "%s: %s",
- name, set_it_name);
+ set_mode3_item = proto_tree_add_text(tree, tvb, offset, -1,
+ "%s: %s", name, set_it_name);
set_mode3_tree = proto_item_add_subtree(set_mode3_item,
ett_nfs_set_mode3);
}
set_it_name = val_to_str(set_it,value_follows,"Unknown");
if (tree) {
- set_uid3_item = proto_tree_add_text(tree, tvb, offset,
- tvb_length_remaining(tvb, offset), "%s: %s",
- name, set_it_name);
+ set_uid3_item = proto_tree_add_text(tree, tvb, offset, -1,
+ "%s: %s", name, set_it_name);
set_uid3_tree = proto_item_add_subtree(set_uid3_item,
ett_nfs_set_uid3);
}
set_it_name = val_to_str(set_it,value_follows,"Unknown");
if (tree) {
- set_gid3_item = proto_tree_add_text(tree, tvb, offset,
- tvb_length_remaining(tvb, offset), "%s: %s",
- name, set_it_name);
+ set_gid3_item = proto_tree_add_text(tree, tvb, offset, -1,
+ "%s: %s", name, set_it_name);
set_gid3_tree = proto_item_add_subtree(set_gid3_item,
ett_nfs_set_gid3);
}
set_it_name = val_to_str(set_it,value_follows,"Unknown");
if (tree) {
- set_size3_item = proto_tree_add_text(tree, tvb, offset,
- tvb_length_remaining(tvb, offset), "%s: %s",
- name, set_it_name);
+ set_size3_item = proto_tree_add_text(tree, tvb, offset, -1,
+ "%s: %s", name, set_it_name);
set_size3_tree = proto_item_add_subtree(set_size3_item,
ett_nfs_set_size3);
}
set_it_name = val_to_str(set_it,time_how,"Unknown");
if (tree) {
- set_atime_item = proto_tree_add_text(tree, tvb, offset,
- tvb_length_remaining(tvb, offset), "%s: %s",
- name, set_it_name);
+ set_atime_item = proto_tree_add_text(tree, tvb, offset, -1,
+ "%s: %s", name, set_it_name);
set_atime_tree = proto_item_add_subtree(set_atime_item,
ett_nfs_set_atime);
}
set_it_name = val_to_str(set_it,time_how,"Unknown");
if (tree) {
- set_mtime_item = proto_tree_add_text(tree, tvb, offset,
- tvb_length_remaining(tvb, offset), "%s: %s",
- name, set_it_name);
+ set_mtime_item = proto_tree_add_text(tree, tvb, offset, -1,
+ "%s: %s", name, set_it_name);
set_mtime_tree = proto_item_add_subtree(set_mtime_item,
ett_nfs_set_mtime);
}
int old_offset = offset;
if (tree) {
- sattr3_item = proto_tree_add_text(tree, tvb, offset,
- tvb_length_remaining(tvb, offset), "%s", name);
+ sattr3_item = proto_tree_add_text(tree, tvb, offset, -1,
+ "%s", name);
sattr3_tree = proto_item_add_subtree(sattr3_item, ett_nfs_sattr3);
}
int name_offset, name_len;
if (tree) {
- diropargs3_item = proto_tree_add_text(tree, tvb, offset,
- tvb_length_remaining(tvb, offset), "%s", name);
+ diropargs3_item = proto_tree_add_text(tree, tvb, offset, -1,
+ "%s", name);
diropargs3_tree = proto_item_add_subtree(diropargs3_item,
ett_nfs_diropargs3);
}
check_name = val_to_str(check,value_follows,"Unknown");
if (tree) {
- sattrguard3_item = proto_tree_add_text(tree, tvb, offset,
- tvb_length_remaining(tvb, offset), "%s: %s",
- name, check_name);
+ sattrguard3_item = proto_tree_add_text(tree, tvb, offset, -1,
+ "%s: %s", name, check_name);
sattrguard3_tree = proto_item_add_subtree(sattrguard3_item,
ett_nfs_sattrguard3);
}
if (tree) {
entry_item = proto_tree_add_item(tree, hf_nfs_readdir_entry, tvb,
- offset+0, tvb_length_remaining(tvb, offset), FALSE);
+ offset+0, -1, FALSE);
entry_tree = proto_item_add_subtree(entry_item, ett_nfs_readdir_entry);
}
if (tree) {
entry_item = proto_tree_add_item(tree, hf_nfs_readdir_entry, tvb,
- offset+0, tvb_length_remaining(tvb, offset), FALSE);
+ offset+0, -1, FALSE);
entry_tree = proto_item_add_subtree(entry_item, ett_nfs_readdir_entry);
}
/* packet-nisplus.c
* 2001 Ronnie Sahlberg <See AUTHORS for email>
*
- * $Id: packet-nisplus.c,v 1.9 2001/12/23 21:36:57 guy Exp $
+ * $Id: packet-nisplus.c,v 1.10 2002/01/20 22:12:27 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
int old_offset = offset;
lock_item = proto_tree_add_item(tree, hf_nisplus_group,
- tvb, offset, 0, FALSE);
+ tvb, offset, -1, FALSE);
lock_tree = proto_item_add_subtree(lock_item, ett_nisplus_group);
int old_offset = offset;
lock_item = proto_tree_add_item(tree, hf_nisplus_table_col,
- tvb, offset, 0,
- FALSE);
+ tvb, offset, -1, FALSE);
lock_tree = proto_item_add_subtree(lock_item, ett_nisplus_table_col);
int old_offset = offset;
lock_item = proto_tree_add_item(tree, hf_nisplus_table,
- tvb, offset, 0, FALSE);
+ tvb, offset, -1, FALSE);
lock_tree = proto_item_add_subtree(lock_item, ett_nisplus_table);
int old_offset = offset;
lock_item = proto_tree_add_item(tree, hf_nisplus_entry_col,
- tvb, offset, 0, FALSE);
+ tvb, offset, -1, FALSE);
lock_tree = proto_item_add_subtree(lock_item, ett_nisplus_entry_col);
int old_offset = offset;
lock_item = proto_tree_add_item(tree, hf_nisplus_entry,
- tvb, offset, 0, FALSE);
+ tvb, offset, -1, FALSE);
lock_tree = proto_item_add_subtree(lock_item, ett_nisplus_entry);
int old_offset = offset;
lock_item = proto_tree_add_item(tree, hf_nisplus_attr,
- tvb, offset, 0, FALSE);
+ tvb, offset, -1, FALSE);
lock_tree = proto_item_add_subtree(lock_item, ett_nisplus_attr);
int old_offset = offset;
lock_item = proto_tree_add_item(tree, hf_nisplus_link,
- tvb, offset, 0, FALSE);
+ tvb, offset, -1, FALSE);
lock_tree = proto_item_add_subtree(lock_item, ett_nisplus_link);
int old_offset = offset;
lock_item = proto_tree_add_item(tree, hf_nisplus_endpoint,
- tvb, offset, 0, FALSE);
+ tvb, offset, -1, FALSE);
lock_tree = proto_item_add_subtree(lock_item, ett_nisplus_endpoint);
int old_offset = offset;
lock_item = proto_tree_add_item(tree, hf_nisplus_server,
- tvb, offset, 0, FALSE);
+ tvb, offset, -1, FALSE);
lock_tree = proto_item_add_subtree(lock_item, ett_nisplus_server);
int old_offset = offset;
lock_item = proto_tree_add_item(tree, hf_nisplus_directory_mask,
- tvb, offset, 0, FALSE);
+ tvb, offset, -1, FALSE);
lock_tree = proto_item_add_subtree(lock_item, ett_nisplus_directory_mask);
int old_offset = offset;
lock_item = proto_tree_add_item(tree, hf_nisplus_directory,
- tvb, offset, 0, FALSE);
+ tvb, offset, -1, FALSE);
lock_tree = proto_item_add_subtree(lock_item, ett_nisplus_directory);
int old_offset = offset;
lock_item = proto_tree_add_item(tree, hf_nisplus_oid, tvb,
- offset, 0, FALSE);
+ offset, -1, FALSE);
lock_tree = proto_item_add_subtree(lock_item, ett_nisplus_oid);
int old_offset = offset;
lock_item = proto_tree_add_item(tree, hf_nisplus_object, tvb,
- offset, 0, FALSE);
+ offset, -1, FALSE);
lock_tree = proto_item_add_subtree(lock_item, ett_nisplus_object);
int old_offset = offset;
lock_item = proto_tree_add_item(tree, hf_nisplus_tag, tvb,
- offset, 0, FALSE);
+ offset, -1, FALSE);
lock_tree = proto_item_add_subtree(lock_item, ett_nisplus_tag);
int old_offset = offset;
lock_item = proto_tree_add_item(tree, hf_nisplus_log_entry,
- tvb, offset, 0, FALSE);
+ tvb, offset, -1, FALSE);
lock_tree = proto_item_add_subtree(lock_item, ett_nisplus_log_entry);
/* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
- callback protocol for NIS
+ callback protocol for NIS+
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx */
static int proto_nispluscb = -1;
int old_offset = offset;
lock_item = proto_tree_add_item(tree, hf_nispluscb_entry,
- tvb, offset, 0, FALSE);
+ tvb, offset, -1, FALSE);
lock_tree = proto_item_add_subtree(lock_item, ett_nispluscb_entry);
/* packet-pcnfsd.c
* Routines for PCNFSD dissection
*
- * $Id: packet-pcnfsd.c,v 1.3 2001/11/07 07:05:58 girlich Exp $
+ * $Id: packet-pcnfsd.c,v 1.4 2002/01/20 22:12:27 guy Exp $
*
* Ethereal - Network traffic analyzer
- * By Gerald Combs <gerald@zing.org>
+ * By Gerald Combs <gerald@ethereal.com>
* Copyright 1998 Gerald Combs
*
* Copied from packet-ypbind.c
if (tree) {
ident_item = proto_tree_add_text(tree, tvb,
- offset, tvb_length_remaining(tvb, offset),
- "Authentication Ident");
+ offset, -1, "Authentication Ident");
if (ident_item)
ident_tree = proto_item_add_subtree(
ident_item, ett_pcnfsd_auth_ident);
if (tree) {
password_item = proto_tree_add_text(tree, tvb,
- offset, tvb_length_remaining(tvb, offset),
- "Authentication Password");
+ offset, -1, "Authentication Password");
if (password_item)
password_tree = proto_item_add_subtree(
password_item, ett_pcnfsd_auth_password);
/* packet-portmap.c
* Routines for portmap dissection
*
- * $Id: packet-portmap.c,v 1.32 2001/12/10 00:25:32 guy Exp $
+ * $Id: packet-portmap.c,v 1.33 2002/01/20 22:12:27 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
if (tree) {
rpcb_item = proto_tree_add_item(tree, hf_portmap_rpcb, tvb,
- offset, tvb_length(tvb), FALSE);
+ offset, -1, FALSE);
if (rpcb_item)
rpcb_tree = proto_item_add_subtree(rpcb_item, ett_portmap_rpcb);
}
/* packet-ppp.c
* Routines for ppp packet disassembly
*
- * $Id: packet-ppp.c,v 1.85 2002/01/11 21:37:10 guy Exp $
+ * $Id: packet-ppp.c,v 1.86 2002/01/20 22:12:27 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
val_to_str(PPP_COMP, ppp_vals, "Unknown"));
if (tree) {
- ti = proto_tree_add_item(tree, proto_comp_data, tvb, 0, tvb_length(tvb), FALSE);
+ ti = proto_tree_add_item(tree, proto_comp_data, tvb, 0, -1, FALSE);
comp_data_tree = proto_item_add_subtree(ti, ett_comp_data);
}
}
if (check_col(pinfo->cinfo, COL_INFO))
col_set_str(pinfo->cinfo, COL_INFO, "PPP Multiplexing");
- length_remaining = tvb_length(tvb);
+ length_remaining = tvb_reported_length(tvb);
if (tree) {
- ti = proto_tree_add_item(tree, proto_pppmux, tvb, 0, length_remaining,
- FALSE);
+ ti = proto_tree_add_item(tree, proto_pppmux, tvb, 0, -1, FALSE);
mux_tree = proto_item_add_subtree(ti,ett_pppmux);
while (length_remaining > 0) {
proto_tree *fh_tree = NULL;
if(tree) {
- ti = proto_tree_add_item(tree, proto_ppp, tvb, 0, 0, FALSE);
+ ti = proto_tree_add_item(tree, proto_ppp, tvb, 0, -1, FALSE);
fh_tree = proto_item_add_subtree(ti, ett_ppp);
}
* Routines for rpc dissection
* Copyright 1999, Uwe Girlich <Uwe.Girlich@philosys.de>
*
- * $Id: packet-rpc.c,v 1.83 2002/01/20 01:13:41 guy Exp $
+ * $Id: packet-rpc.c,v 1.84 2002/01/20 22:12:27 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
return offset;
}
- lock_item = proto_tree_add_item(tree, hfindex, tvb, offset,
- tvb_length_remaining(tvb, offset), FALSE);
+ lock_item = proto_tree_add_item(tree, hfindex, tvb, offset, -1, FALSE);
lock_tree = proto_item_add_subtree(lock_item, ett_rpc_array);
col_set_str(pinfo->cinfo, COL_INFO, "Continuation");
if (tree) {
- rpc_item = proto_tree_add_item(tree, proto_rpc, tvb, 0,
- tvb_length(tvb), FALSE);
+ rpc_item = proto_tree_add_item(tree, proto_rpc, tvb, 0, -1,
+ FALSE);
rpc_tree = proto_item_add_subtree(rpc_item, ett_rpc);
- proto_tree_add_text(rpc_tree, tvb, 0, tvb_length(tvb),
- "Continuation data");
+ proto_tree_add_text(rpc_tree, tvb, 0, -1, "Continuation data");
}
}
col_clear(pinfo->cinfo, COL_INFO);
if (tree) {
- rpc_item = proto_tree_add_item(tree, proto_rpc, tvb, 0,
- tvb_length(tvb), FALSE);
+ rpc_item = proto_tree_add_item(tree, proto_rpc, tvb, 0, -1,
+ FALSE);
if (rpc_item) {
rpc_tree = proto_item_add_subtree(rpc_item, ett_rpc);
}
/* create here the program specific sub-tree */
if (tree) {
- pitem = proto_tree_add_item(tree, proto, tvb,
- offset, tvb_length(tvb) - offset, FALSE);
+ pitem = proto_tree_add_item(tree, proto, tvb, offset, -1,
+ FALSE);
if (pitem) {
ptree = proto_item_add_subtree(pitem, ett);
}
* We don't know the authentication flavor, so we can't
* dissect the payload.
*/
- proto_tree_add_text(ptree, tvb, offset, tvb_length_remaining(tvb, offset),
+ proto_tree_add_text(ptree, tvb, offset, -1,
"Unknown authentication flavor - cannot dissect");
return TRUE;
* procedure and service information, so we can't dissect
* the payload.
*/
- proto_tree_add_text(ptree, tvb, offset, tvb_length_remaining(tvb, offset),
+ proto_tree_add_text(ptree, tvb, offset, -1,
"GSS-API authentication, but procedure and service unknown - cannot dissect");
return TRUE;
/* packet-rtcp.c
*
- * $Id: packet-rtcp.c,v 1.28 2002/01/10 22:21:13 guy Exp $
+ * $Id: packet-rtcp.c,v 1.29 2002/01/20 22:12:27 guy Exp $
*
* Routines for RTCP dissection
* RTCP = Real-time Transport Control Protocol
start_offset = offset;
ssrc = tvb_get_ntohl( tvb, offset );
- sdes_item = proto_tree_add_text(tree, tvb, offset, 0,
+ sdes_item = proto_tree_add_text(tree, tvb, offset, -1,
"Chunk %u, SSRC/CSRC %u", chunk, ssrc);
sdes_tree = proto_item_add_subtree( sdes_item, ett_sdes );
/* Create a subtree for the SDES items; we don't yet know
the length */
items_start_offset = offset;
- ti = proto_tree_add_text(sdes_tree, tvb, offset, 0,
+ ti = proto_tree_add_text(sdes_tree, tvb, offset, -1,
"SDES items" );
sdes_item_tree = proto_item_add_subtree( ti, ett_sdes_item );
* Jason Lango <jal@netapp.com>
* Liberally copied from packet-http.c, by Guy Harris <guy@alum.mit.edu>
*
- * $Id: packet-rtsp.c,v 1.45 2001/12/10 00:25:33 guy Exp $
+ * $Id: packet-rtsp.c,v 1.46 2002/01/20 22:12:27 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
orig_offset = offset;
rtsp_tree = NULL;
if (tree) {
- ti = proto_tree_add_item(tree, proto_rtsp, tvb, offset,
- tvb_length_remaining(tvb, offset), FALSE);
+ ti = proto_tree_add_item(tree, proto_rtsp, tvb, offset, -1,
+ FALSE);
rtsp_tree = proto_item_add_subtree(ti, ett_rtsp);
}
* Based on routines from tcpdump patches by
* Ken Hornstein <kenh@cmf.nrl.navy.mil>
*
- * $Id: packet-rx.c,v 1.29 2001/12/10 00:25:34 guy Exp $
+ * $Id: packet-rx.c,v 1.30 2002/01/20 22:12:27 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
int i;
guint32 callnumber;
- item = proto_tree_add_item(parent_tree, hf_rx_encrypted, tvb, offset, 0, FALSE);
+ item = proto_tree_add_item(parent_tree, hf_rx_encrypted, tvb, offset, -1, FALSE);
tree = proto_item_add_subtree(item, ett_rx_encrypted);
/* epoch : 4 bytes */
);
}
- item = proto_tree_add_item(parent_tree, hf_rx_response, tvb, offset, 0, FALSE);
+ item = proto_tree_add_item(parent_tree, hf_rx_response, tvb, offset, -1, FALSE);
tree = proto_item_add_subtree(item, ett_rx_response);
version = tvb_get_ntohl(tvb, offset);
);
}
- item = proto_tree_add_item(parent_tree, hf_rx_challenge, tvb, offset, 0, FALSE);
+ item = proto_tree_add_item(parent_tree, hf_rx_challenge, tvb, offset, -1, FALSE);
tree = proto_item_add_subtree(item, ett_rx_challenge);
version = tvb_get_ntohl(tvb, offset);
);
}
- item = proto_tree_add_item(parent_tree, hf_rx_ack, tvb, offset, 0, FALSE);
+ item = proto_tree_add_item(parent_tree, hf_rx_ack, tvb, offset, -1, FALSE);
tree = proto_item_add_subtree(item, ett_rx_ack);
* - support for reassembly
* - code cleanup
*
- * $Id: packet-sctp.c,v 1.27 2002/01/15 23:05:36 guy Exp $
+ * $Id: packet-sctp.c,v 1.28 2002/01/20 22:12:27 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
tvbuff_t *parameter_tvb;
offset = 0;
- while(tvb_length_remaining(parameter_list_tvb, offset)) {
+ while(tvb_reported_length_remaining(parameter_list_tvb, offset)) {
length = tvb_get_ntohs(parameter_list_tvb, offset + PARAMETER_LENGTH_OFFSET);
padding_length = nr_of_padding_bytes(length);
total_length = length + padding_length;
tvbuff_t *error_cause_tvb;
offset = PARAMETER_VALUE_OFFSET;
- while(tvb_length_remaining(parameter_tvb, offset)) {
+ while(tvb_reported_length_remaining(parameter_tvb, offset)) {
length = tvb_get_ntohs(parameter_tvb, offset + CAUSE_LENGTH_OFFSET);
padding_length = nr_of_padding_bytes(length);
total_length = length + padding_length;
if (chunk_tree) {
number_of_causes = 0;
offset = ABORT_CHUNK_FIRST_ERROR_CAUSE_OFFSET;
- while(tvb_length_remaining(chunk_tvb, offset)) {
- length = tvb_get_ntohs(chunk_tvb, offset + CAUSE_LENGTH_OFFSET);
- padding_length = nr_of_padding_bytes(length);
- total_length = length + padding_length;
- /* create a tvb for the chunk including the padding bytes */
- cause_tvb = tvb_new_subset(chunk_tvb, offset, total_length, total_length);
- dissect_error_cause(cause_tvb, pinfo, chunk_tree);
- /* get rid of the handled parameter */
- offset += total_length;
- number_of_causes++;
+ while(tvb_reported_length_remaining(chunk_tvb, offset)) {
+ length = tvb_get_ntohs(chunk_tvb, offset + CAUSE_LENGTH_OFFSET);
+ padding_length = nr_of_padding_bytes(length);
+ total_length = length + padding_length;
+ /* create a tvb for the chunk including the padding bytes */
+ cause_tvb = tvb_new_subset(chunk_tvb, offset, total_length, total_length);
+ dissect_error_cause(cause_tvb, pinfo, chunk_tree);
+ /* get rid of the handled parameter */
+ offset += total_length;
+ number_of_causes++;
};
proto_item_set_text(chunk_item, "Abort chunk with %u cause%s",
/* get rid of the handled parameter */
offset += total_length;
number_of_causes++;
- } while(tvb_length_remaining(chunk_tvb, offset));
+ } while(tvb_reported_length_remaining(chunk_tvb, offset));
proto_item_set_text(chunk_item, "Error chunk with %u cause%s",
number_of_causes, plurality(number_of_causes, "", "s"));
offset += ASCONF_ADDR_LENGTH;
proto_item_set_text(chunk_item, "ASCONF chunk");
- while(tvb_length_remaining(chunk_tvb, offset)) {
+ while(tvb_reported_length_remaining(chunk_tvb, offset)) {
correlation_id = tvb_get_ntohl(chunk_tvb, offset);
proto_tree_add_uint(chunk_tree, hf_sctp_asconf_correlation_id, chunk_tvb, offset, CORRELATION_ID_LENGTH, correlation_id);
offset += CORRELATION_ID_LENGTH;
proto_item_set_text(chunk_item, "ASCONF-ACK chunk");
offset = SERIAL_NUMBER_OFFSET + SERIAL_NUMBER_LENGTH;
- while(tvb_length_remaining(chunk_tvb, offset)) {
+ while(tvb_reported_length_remaining(chunk_tvb, offset)) {
correlation_id = tvb_get_ntohl(chunk_tvb, offset);
proto_tree_add_uint(chunk_tree, hf_sctp_asconf_ack_correlation_id, chunk_tvb, offset, CORRELATION_ID_LENGTH, correlation_id);
offset += CORRELATION_ID_LENGTH;
if (tree) {
/* create proto_tree stuff */
- chunk_item = proto_tree_add_text(sctp_tree, chunk_tvb, CHUNK_HEADER_OFFSET, tvb_length(chunk_tvb), "Incomplete chunk");
+ chunk_item = proto_tree_add_text(sctp_tree, chunk_tvb, CHUNK_HEADER_OFFSET, -1, "Incomplete chunk");
chunk_tree = proto_item_add_subtree(chunk_item, ett_sctp_chunk);
/* then insert the chunk header components into the protocol tree */
offset = COMMON_HEADER_LENGTH;
sctp_item_length_set = FALSE;
- while(tvb_length_remaining(tvb, offset) > 0) {
+ while(tvb_reported_length_remaining(tvb, offset) > 0) {
/* extract the chunk length and compute number of padding bytes */
length = tvb_get_ntohs(tvb, offset + CHUNK_LENGTH_OFFSET);
padding_length = nr_of_padding_bytes(length);
sctp_item_length_set = TRUE;
offset += total_length;
last_offset = offset;
- if (tvb_length_remaining(tvb, offset) > 0) {
- sctp_item = proto_tree_add_item(tree, proto_sctp, tvb, offset, 0, FALSE);
+ if (tvb_reported_length_remaining(tvb, offset) > 0) {
+ sctp_item = proto_tree_add_item(tree, proto_sctp, tvb, offset, -1, FALSE);
sctp_tree = proto_item_add_subtree(sctp_item, ett_sctp);
sctp_item_length_set = FALSE;
}
necessary to generate protocol tree items. */
if (tree) {
/* create the sctp protocol tree */
- sctp_item = proto_tree_add_item(tree, proto_sctp, tvb, 0, 0, FALSE);
+ sctp_item = proto_tree_add_item(tree, proto_sctp, tvb, 0, -1, FALSE);
sctp_tree = proto_item_add_subtree(sctp_item, ett_sctp);
/* add the components of the common header to the protocol tree */
* Routines for SMB mailslot packet dissection
* Copyright 2000, Jeffrey C. Foster <jfoste@woodward.com>
*
- * $Id: packet-smb-mailslot.c,v 1.29 2001/12/10 00:25:34 guy Exp $
+ * $Id: packet-smb-mailslot.c,v 1.30 2002/01/20 22:12:28 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
if (parent_tree) {
item = proto_tree_add_item(parent_tree, proto_smb_msp, mshdr_tvb,
- 0, tvb_length(mshdr_tvb), FALSE);
+ 0, -1, FALSE);
tree = proto_item_add_subtree(item, ett_smb_msp);
}
* significant rewrite to tvbuffify the dissector, Ronnie Sahlberg and
* Guy Harris 2001
*
- * $Id: packet-smb-pipe.c,v 1.64 2002/01/17 06:29:16 guy Exp $
+ * $Id: packet-smb-pipe.c,v 1.65 2002/01/20 22:12:28 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
int offset)
{
if (tree) {
- return proto_tree_add_text(tree, tvb, offset,
- tvb_length_remaining(tvb, offset),
+ return proto_tree_add_text(tree, tvb, offset, -1,
"Available Shares");
} else
return NULL;
int offset)
{
if (tree) {
- return proto_tree_add_text(tree, tvb, offset,
- tvb_length_remaining(tvb, offset),
+ return proto_tree_add_text(tree, tvb, offset, -1,
"Share %.13s", tvb_get_ptr(tvb, offset, 13));
} else
return NULL;
int offset)
{
if (tree) {
- return proto_tree_add_text(tree, tvb, offset,
- tvb_length_remaining(tvb, offset), "Servers");
+ return proto_tree_add_text(tree, tvb, offset, -1,
+ "Servers");
} else
return NULL;
}
int offset)
{
if (tree) {
- return proto_tree_add_text(tree, tvb, offset,
- tvb_length_remaining(tvb, offset),
+ return proto_tree_add_text(tree, tvb, offset, -1,
"Server %.16s", tvb_get_ptr(tvb, offset, 16));
} else
return NULL;
* We can't dissect the data; just show it
* as raw data.
*/
- proto_tree_add_text(tree, tvb, offset,
- tvb_length_remaining(tvb, offset),
+ proto_tree_add_text(tree, tvb, offset, -1,
"Data (no descriptor available)");
offset += tvb_length_remaining(tvb, offset);
} else {
if (parent_tree) {
item = proto_tree_add_item(parent_tree, proto_smb_lanman,
- pd_tvb, 0, tvb_length(pd_tvb), FALSE);
+ pd_tvb, 0, -1, FALSE);
tree = proto_item_add_subtree(item, ett_lanman);
}
* Copyright 1999, Richard Sharpe <rsharpe@ns.aus.com>
* 2001 Rewrite by Ronnie Sahlberg and Guy Harris
*
- * $Id: packet-smb.c,v 1.195 2002/01/17 06:29:16 guy Exp $
+ * $Id: packet-smb.c,v 1.196 2002/01/20 22:12:28 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
if(un){
old_offset = offset;
- it = proto_tree_add_text(tree, tvb, offset, 0,
+ it = proto_tree_add_text(tree, tvb, offset, -1,
"Unlocks");
tr = proto_item_add_subtree(it, ett_smb_unlocks);
while(un--){
if(ln){
old_offset = offset;
- it = proto_tree_add_text(tree, tvb, offset, 0,
+ it = proto_tree_add_text(tree, tvb, offset, -1,
"Locks");
tr = proto_item_add_subtree(it, ett_smb_locks);
while(ln--){
char str[256], *strp;
if(parent_tree){
- item = proto_tree_add_text(parent_tree, tvb, offset, 0,
+ item = proto_tree_add_text(parent_tree, tvb, offset, -1,
"NT %s SID", name);
tree = proto_item_add_subtree(item, ett_smb_sid);
}
int old_offset = offset;
if(parent_tree){
- item = proto_tree_add_text(parent_tree, tvb, offset, 0,
+ item = proto_tree_add_text(parent_tree, tvb, offset, -1,
"NT ACE: ");
tree = proto_item_add_subtree(item, ett_smb_ace);
}
guint32 num_aces;
if(parent_tree){
- item = proto_tree_add_text(parent_tree, tvb, offset, 0,
+ item = proto_tree_add_text(parent_tree, tvb, offset, -1,
"NT %s ACL", name);
tree = proto_item_add_subtree(item, ett_smb_acl);
}
(si->request)? "Request" : "Response");
}
- cmd_item = proto_tree_add_text(smb_tree, tvb, offset,
- 0, "%s %s (0x%02x)",
+ cmd_item = proto_tree_add_text(smb_tree, tvb, offset, -1,
+ "%s %s (0x%02x)",
decode_smb_name(cmd),
(si->request)?"Request":"Response",
cmd);
if (parent_tree) {
item = proto_tree_add_item(parent_tree, proto_smb, tvb, offset,
- tvb_length_remaining(tvb, 0), FALSE);
+ -1, FALSE);
tree = proto_item_add_subtree(item, ett_smb);
hitem = proto_tree_add_text(tree, tvb, offset, 32,
* Routines for SNA
* Gilbert Ramirez <gram@alumni.rice.edu>
*
- * $Id: packet-sna.c,v 1.36 2001/12/10 00:25:36 guy Exp $
+ * $Id: packet-sna.c,v 1.37 2002/01/20 22:12:29 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
/* Don't bother setting length. We'll set it later after we find
* the lengths of TH/RH/RU */
- sna_ti = proto_tree_add_item(tree, proto_sna, tvb, 0, 0, FALSE);
+ sna_ti = proto_tree_add_item(tree, proto_sna, tvb, 0, -1, FALSE);
sna_tree = proto_item_add_subtree(sna_ti, ett_sna);
/* --- TH --- */
/* Don't bother setting length. We'll set it later after we find
* the length of TH */
- th_ti = proto_tree_add_item(sna_tree, hf_sna_th, tvb, 0, 0, FALSE);
+ th_ti = proto_tree_add_item(sna_tree, hf_sna_th, tvb, 0, -1, FALSE);
th_tree = proto_item_add_subtree(th_ti, ett_sna_th);
}
/* packet-tcp.c
* Routines for TCP packet disassembly
*
- * $Id: packet-tcp.c,v 1.126 2002/01/18 22:35:19 guy Exp $
+ * $Id: packet-tcp.c,v 1.127 2002/01/20 22:12:29 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
if (tree) {
if (tcp_summary_in_tree) {
- ti = proto_tree_add_protocol_format(tree, proto_tcp, tvb, 0,
- tvb_length(tvb),
+ ti = proto_tree_add_protocol_format(tree, proto_tcp, tvb, 0, -1,
"Transmission Control Protocol, Src Port: %s (%u), Dst Port: %s (%u)",
get_tcp_port(th_sport), th_sport,
get_tcp_port(th_dport), th_dport);
}
else {
- ti = proto_tree_add_item(tree, proto_tcp, tvb, 0,
- tvb_length(tvb), FALSE);
+ ti = proto_tree_add_item(tree, proto_tcp, tvb, 0, -1, FALSE);
}
tcp_tree = proto_item_add_subtree(ti, ett_tcp);
proto_tree_add_uint_format(tcp_tree, hf_tcp_srcport, tvb, offset, 2, th_sport,
* Routines for v120 frame disassembly
* Bert Driehuis <driehuis@playbeing.org>
*
- * $Id: packet-v120.c,v 1.22 2001/12/10 00:25:41 guy Exp $
+ * $Id: packet-v120.c,v 1.23 2002/01/20 22:12:29 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
if (check_col(pinfo->cinfo, COL_INFO))
col_set_str(pinfo->cinfo, COL_INFO, "Invalid V.120 frame");
if (tree)
- ti = proto_tree_add_protocol_format(tree, proto_v120, tvb, 0, tvb_length(tvb),
+ ti = proto_tree_add_protocol_format(tree, proto_v120, tvb, 0, -1,
"Invalid V.120 frame");
return;
}
is_response = FALSE;
if (tree) {
- ti = proto_tree_add_protocol_format(tree, proto_v120, tvb, 0, 0, "V.120");
+ ti = proto_tree_add_protocol_format(tree, proto_v120, tvb, 0, -1, "V.120");
v120_tree = proto_item_add_subtree(ti, ett_v120);
addr = byte1 << 8 | byte0;
sprintf(info, "LLI: %d C/R: %s",