Made the protocol (but not the fields) use the new proto_tree routine,
authorgram <gram@f5534014-38df-0310-8fa8-9805f1628bb7>
Thu, 29 Jul 1999 05:47:07 +0000 (05:47 +0000)
committergram <gram@f5534014-38df-0310-8fa8-9805f1628bb7>
Thu, 29 Jul 1999 05:47:07 +0000 (05:47 +0000)
allowing users to filter on the existence of these protocols. I also
added packet-clip.c to the Nmake makefile.

git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@402 f5534014-38df-0310-8fa8-9805f1628bb7

42 files changed:
Makefile.nmake
NEWS
packet-aarp.c
packet-arp.c
packet-atalk.c
packet-bootp.c
packet-cdp.c
packet-data.c
packet-dns.c
packet-eth.c
packet-fddi.c
packet-ftp.c
packet-giop.c
packet-gre.c
packet-http.c
packet-icmpv6.c
packet-ip.c
packet-ipsec.c
packet-ipv6.c
packet-ipx.c
packet-isakmp.c
packet-llc.c
packet-nbipx.c
packet-nbns.c
packet-ncp.c
packet-nntp.c
packet-null.c
packet-osi.c
packet-ospf.c
packet-pop.c
packet-ppp.c
packet-rip.c
packet-rsvp.c
packet-rtsp.c
packet-sdp.c
packet-smb.c
packet-snmp.c
packet-telnet.c
packet-tftp.c
packet-tr.c
packet-trmac.c
proto.c

index 57e90f7f222c74f088ecd0eb2ecc2c8ea38fc9c0..6083603e7f65f998b0a6d6b8cb46598bab9b42a2 100644 (file)
@@ -23,19 +23,55 @@ CFLAGS=-DHAVE_CONFIG_H $(LOCAL_CFLAGS) /I$(GLIB_DIR) /I$(GTK_DIR) /Iwiretap \
 OBJECTS=capture.obj column.obj dfilter-grammar.obj dfilter.obj \
        display.obj ethereal.obj ethertype.obj file.obj filter.obj \
        follow.obj gtkpacket.obj menu.obj \
-       packet-aarp.obj packet-arp.obj \
-       packet-atalk.obj packet-bootp.obj packet-cdp.obj packet-data.obj \
-       packet-dns.obj packet-eth.obj packet-fddi.obj packet-ftp.obj \
-       packet-giop.obj packet-gre.obj packet-http.obj packet-icmpv6.obj \
-       packet-ip.obj packet-ipsec.obj packet-ipv6.obj packet-ipx.obj \
-       packet-isakmp.obj packet-llc.obj packet-lpd.obj packet-nbipx.obj \
-       packet-nbns.obj packet-ncp.obj packet-nntp.obj packet-null.obj \
-       packet-osi.obj packet-ospf.obj packet-pop.obj packet-ppp.obj \
-       packet-pppoe.obj packet-pptp.obj packet-radius.obj packet-raw.obj \
-       packet-rip.obj packet-rsvp.obj packet-rtsp.obj packet-sdp.obj \
-       packet-smb.obj packet-snmp.obj packet-tcp.obj packet-telnet.obj \
-       packet-tftp.obj packet-tr.obj packet-trmac.obj packet-udp.obj \
-       packet-vines.obj packet.obj prefs.obj print.obj proto.obj ps.obj \
+       packet-aarp.obj \
+       packet-arp.obj \
+       packet-atalk.obj \
+       packet-bootp.obj \
+       packet-cdp.obj \
+       packet-clip.obj \
+       packet-data.obj \
+       packet-dns.obj \
+       packet-eth.obj \
+       packet-fddi.obj \
+       packet-ftp.obj \
+       packet-giop.obj \
+       packet-gre.obj \
+       packet-http.obj \
+       packet-icmpv6.obj \
+       packet-ip.obj \
+       packet-ipsec.obj \
+       packet-ipv6.obj \
+       packet-ipx.obj \
+       packet-isakmp.obj \
+       packet-llc.obj \
+       packet-lpd.obj \
+       packet-nbipx.obj \
+       packet-nbns.obj \
+       packet-ncp.obj \
+       packet-nntp.obj \
+       packet-null.obj \
+       packet-osi.obj \
+       packet-ospf.obj \
+       packet-pop.obj \
+       packet-ppp.obj \
+       packet-pppoe.obj \
+       packet-pptp.obj \
+       packet-radius.obj \
+       packet-raw.obj \
+       packet-rip.obj \
+       packet-rsvp.obj \
+       packet-rtsp.obj \
+       packet-sdp.obj \
+       packet-smb.obj \
+       packet-snmp.obj \
+       packet-tcp.obj \
+       packet-telnet.obj \
+       packet-tftp.obj \
+       packet-tr.obj \
+       packet-trmac.obj \
+       packet-udp.obj \
+       packet-vines.obj \
+       packet.obj prefs.obj print.obj proto.obj ps.obj \
        resolv.obj snprintf.obj strerror.obj summary.obj util.obj
 
 LIBS= wiretap\libwtap.lib wsock32.lib \
diff --git a/NEWS b/NEWS
index e8a9b74b9872fb88aadf3df51a48966ea6c8c44b..105d14c9debffecbf1a034fe762d3b8444194eb6 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -6,6 +6,10 @@ Overview of changes in Ethereal 0.7.0:
 * Display filter text-entry does auto-reload (Guy)
 * Now compiles on Win32 (Gilbert)
 * Removed support for GTK+-1.[01].x (Gilbert)
+* Column re-sizing changes (Guy)
+* Linux ATM Classical IP support (Theirry)
+* X.25 support in wiretap iptrace routine (Olivier)
+* Wiretap fix for "-S" ethereal option (Laurent)
 
 Overview of changes in Ethereal 0.6.3:
 * Capture dialogue window data bug-fix (Guy)
index 053ab0b3ba3472cd4f9f50017133e6fd60bfe99c..148dd93ceb8faae335490f0b96ccbd5920d3151e 100644 (file)
@@ -31,6 +31,8 @@
 #include "packet.h"
 #include "etypes.h"
 
+static int proto_aarp = -1;
+
 typedef struct _e_ether_aarp {
         guint16 htype, ptype;
         guint8  halen, palen;
@@ -96,9 +98,9 @@ dissect_aarp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) {
   
   if (tree) {
     if ((op_str = match_strval(ea.op, op_vals)))
-      ti = proto_tree_add_text(tree, offset, 28, op_str);
+      ti = proto_tree_add_item_format(tree, proto_aarp, offset, 28, NULL, op_str);
     else
-      ti = proto_tree_add_text(tree, offset, 28,
+      ti = proto_tree_add_item_format(tree, proto_aarp, offset, 28, NULL,
         "Unknown AARP (opcode 0x%04x)", ea.op);
     aarp_tree = proto_item_add_subtree(ti, ETT_AARP);
     proto_tree_add_text(aarp_tree, offset,      2,
@@ -145,3 +147,15 @@ dissect_aarp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) {
     }
   }
 }
+
+void
+proto_register_aarp(void)
+{
+/*        static hf_register_info hf[] = {
+                { &variable,
+                { "Name",           "aarp.abbreviation", TYPE, VALS_POINTER }},
+        };*/
+
+        proto_aarp = proto_register_protocol("Appletalk Address Resolution Protocol", "aarp");
+ /*       proto_register_field_array(proto_aarp, hf, array_length(hf));*/
+}
index b3ddf2149dec2b35f97dc1103008c9d6825e7f49..4ae66b30cab002056d1262389628441d515ae48c 100644 (file)
@@ -1,7 +1,7 @@
 /* packet-arp.c
  * Routines for ARP packet disassembly
  *
- * $Id: packet-arp.c,v 1.14 1999/07/07 22:51:40 gram Exp $
+ * $Id: packet-arp.c,v 1.15 1999/07/29 05:46:52 gram Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@zing.org>
@@ -35,6 +35,8 @@
 #include "packet.h"
 #include "etypes.h"
 
+static int proto_arp = -1;
+
 /* Definitions taken from Linux "linux/if_arp.h" header file, and from
 
        http://www.isi.edu/in-notes/iana/assignments/arp-parameters
@@ -216,10 +218,10 @@ dissect_arp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) {
 
   if (tree) {
     if ((op_str = match_strval(ar_op, op_vals)))
-      ti = proto_tree_add_text(tree, offset, 8 + 2*ar_hln + 2*ar_pln,
+      ti = proto_tree_add_item_format(tree, proto_arp, offset, 8 + 2*ar_hln + 2*ar_pln,
         op_str);
     else
-      ti = proto_tree_add_text(tree, offset, 8 + 2*ar_hln + 2*ar_pln,
+      ti = proto_tree_add_item_format(tree, proto_arp, offset, 8 + 2*ar_hln + 2*ar_pln,
         "Unknown ARP (opcode 0x%04x)", ar_op);
     arp_tree = proto_item_add_subtree(ti, ETT_ARP);
     proto_tree_add_text(arp_tree, offset + AR_HRD, 2,
@@ -242,3 +244,15 @@ dissect_arp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) {
       "Target protocol address: %s", tpa_str);
   }
 }
+
+void
+proto_register_arp(void)
+{
+/*        static hf_register_info hf[] = {
+                { &variable,
+                { "Name",           "arp.abbreviation", TYPE, VALS_POINTER }},
+        };*/
+
+        proto_arp = proto_register_protocol("Address Resolution Protocol", "arp");
+ /*       proto_register_field_array(proto_arp, hf, array_length(hf));*/
+}
index 726d91cde4a3c4c374fdf52873cecc71978d369f..27dd68448347a6386ad53b209c3502c0c6e2939a 100644 (file)
@@ -35,6 +35,8 @@
 
 extern packet_info pi;
 
+static int proto_ddp = -1;
+
 /* P = Padding, H = Hops, L = Len */
 #if BYTE_ORDER == BIG_ENDIAN
  /* PPHHHHLL LLLLLLLL */
@@ -91,7 +93,7 @@ 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_text(tree, offset, 13, "Datagram Delivery Protocol");
+    ti = proto_tree_add_item(tree, proto_ddp, offset, 13, NULL);
     ddp_tree = proto_item_add_subtree(ti, ETT_IP);
     proto_tree_add_text(ddp_tree, offset,      1, "Hop count: %d", ddp_hops(ddp.hops_len));
     proto_tree_add_text(ddp_tree, offset,          2, "Datagram length: %d", ddp_len(ddp.hops_len));
@@ -108,3 +110,15 @@ dissect_ddp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) {
   offset += 13;
 
 }
+
+void
+proto_register_atalk(void)
+{
+/*        static hf_register_info hf[] = {
+                { &variable,
+                { "Name",           "ddp.abbreviation", TYPE, VALS_POINTER }},
+        };*/
+
+        proto_ddp = proto_register_protocol("Datagram Delivery Protocol", "ddp");
+ /*       proto_register_field_array(proto_ddp, hf, array_length(hf));*/
+}
index 19fcf4f4dc39916862a5c66257a70c39aae89f4b..94d13636f39ab478246d6471751e8bbc3bedf776 100644 (file)
@@ -2,7 +2,7 @@
  * Routines for BOOTP/DHCP packet disassembly
  * Gilbert Ramirez <gram@verdict.uthscsa.edu>
  *
- * $Id: packet-bootp.c,v 1.17 1999/07/07 22:51:40 gram Exp $
+ * $Id: packet-bootp.c,v 1.18 1999/07/29 05:46:52 gram Exp $
  *
  * The information used comes from:
  * RFC 2132: DHCP Options and BOOTP Vendor Extensions
@@ -40,6 +40,8 @@
 #include <glib.h>
 #include "packet.h"
 
+static int proto_bootp = -1;
+
 enum field_type { none, ipv4, string, toggle, yes_no, special, opaque,
        time_in_secs,
        val_u_byte, val_u_short, val_u_long,
@@ -452,8 +454,7 @@ dissect_bootp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree)
        }
 
        if (tree) {
-               ti = proto_tree_add_text(tree, offset, END_OF_FRAME,
-                 "Bootstrap Protocol");
+               ti = proto_tree_add_item(tree, proto_bootp, offset, END_OF_FRAME, NULL);
                bp_tree = proto_item_add_subtree(ti, ETT_BOOTP);
 
                proto_tree_add_text(bp_tree, offset, 1, pd[offset] == 1 ?
@@ -524,3 +525,14 @@ dissect_bootp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree)
        }
 }
 
+void
+proto_register_bootp(void)
+{
+/*        static hf_register_info hf[] = {
+                { &variable,
+                { "Name",           "bootp.abbreviation", TYPE, VALS_POINTER }},
+        };*/
+
+        proto_bootp = proto_register_protocol("Bootstrap Protocol", "bootp");
+ /*       proto_register_field_array(proto_bootp, hf, array_length(hf));*/
+}
index 8874e048e26210d530371268dc1bd74ffc1c9a71..7d545cacd18ddca50c6a87962cc45dc4e9cfefdc 100644 (file)
@@ -2,7 +2,7 @@
  * Routines for the disassembly of the "Cisco Discovery Protocol"
  * (c) Copyright Hannes R. Boehm <hannes@boehm.org>
  *
- * $Id: packet-cdp.c,v 1.9 1999/07/07 22:51:41 gram Exp $
+ * $Id: packet-cdp.c,v 1.10 1999/07/29 05:46:52 gram Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@zing.org>
@@ -40,6 +40,8 @@
 #define        TLV_TYPE        0
 #define        TLV_LENGTH      2
 
+static int proto_cdp = -1;
+
 static void
 add_multi_line_string_to_tree(proto_tree *tree, gint start, gint len,
   const gchar *prefix, const gchar *string);
@@ -66,8 +68,7 @@ dissect_cdp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) {
         col_add_str(fd, COL_INFO, "Cisco Discovery Protocol"); 
 
     if(tree){
-        ti = proto_tree_add_text(tree, offset, (fd->cap_len - offset), 
-                                                          "Cisco Discovery Protocol");
+        ti = proto_tree_add_item(tree, proto_cdp, offset, (fd->cap_len - offset), NULL);
        cdp_tree = proto_item_add_subtree(ti, ETT_CDP);
        
        /* CDP header */
@@ -187,3 +188,15 @@ add_multi_line_string_to_tree(proto_tree *tree, gint start, gint len,
        prefix = blanks;
     }
 }
+
+void
+proto_register_cdp(void)
+{
+/*        static hf_register_info hf[] = {
+                { &variable,
+                { "Name",           "cdp.abbreviation", TYPE, VALS_POINTER }},
+        };*/
+
+        proto_cdp = proto_register_protocol("Cisco Discovery Protocol", "cdp");
+ /*       proto_register_field_array(proto_cdp, hf, array_length(hf));*/
+}
index f28300f16a8b3e61785e316264c0f057caee6bb8..ef719327c3a1cad720115aede7b2d4773afbcc87 100644 (file)
@@ -2,7 +2,7 @@
  * Routines for raw data (default case)
  * Gilbert Ramirez <gram@verdict.uthscsa.edu>
  *
- * $Id: packet-data.c,v 1.9 1999/07/07 22:51:41 gram Exp $
+ * $Id: packet-data.c,v 1.10 1999/07/29 05:46:53 gram Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@unicom.net>
@@ -35,6 +35,9 @@
 #include <glib.h>
 #include "packet.h"
 
+/* proto_data cannot be static because it's referenced in the
+ * print routines
+ */
 int proto_data = -1;
 
 void
index 66eec34107bf48885f5c04560cbdb8327871e0d3..7ff4b7f1139f50af4a1c3b3e02a54960ea6e730f 100644 (file)
@@ -1,7 +1,7 @@
 /* packet-dns.c
  * Routines for DNS packet disassembly
  *
- * $Id: packet-dns.c,v 1.19 1999/07/07 22:51:41 gram Exp $
+ * $Id: packet-dns.c,v 1.20 1999/07/29 05:46:53 gram Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@zing.org>
@@ -40,6 +40,7 @@
 #include "packet-dns.h"
 #include "util.h"
 
+static int proto_dns = -1;
 
 /* DNS structs and definitions */
 
@@ -706,7 +707,7 @@ dissect_dns(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) {
   }
   
   if (tree) {
-    ti = proto_tree_add_text(tree, offset, 4,
+    ti = proto_tree_add_item_format(tree, proto_dns, offset, 4, NULL,
                          (flags & F_RESPONSE) ? "DNS response" : "DNS query");
     
     dns_tree = proto_item_add_subtree(ti, ETT_DNS);
@@ -781,3 +782,15 @@ dissect_dns(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) {
           dns_tree, "Additional records");
   }
 }
+
+void
+proto_register_dns(void)
+{
+/*        static hf_register_info hf[] = {
+                { &variable,
+                { "Name",           "dns.abbreviation", TYPE, VALS_POINTER }},
+        };*/
+
+        proto_dns = proto_register_protocol("Domain Name Service", "dns");
+ /*       proto_register_field_array(proto_dns, hf, array_length(hf));*/
+}
index af24e3bb8873fdfa187b6be2c4a870bdd9bdec79..3a06b413cc81a8a79041b3f4f0f8700dcdf7cec0 100644 (file)
@@ -1,7 +1,7 @@
 /* packet-eth.c
  * Routines for ethernet packet disassembly
  *
- * $Id: packet-eth.c,v 1.12 1999/07/15 15:32:40 gram Exp $
+ * $Id: packet-eth.c,v 1.13 1999/07/29 05:46:54 gram Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@zing.org>
 extern const value_string etype_vals[];
 
 /* protocols and header fields */
-int proto_eth = -1;
-int hf_eth_dst = -1;
-int hf_eth_dst_vendor = -1;
-int hf_eth_src = -1;
-int hf_eth_src_vendor = -1;
-int hf_eth_len = -1;
-int hf_eth_type = -1;
+static int proto_eth = -1;
+static int hf_eth_dst = -1;
+static int hf_eth_dst_vendor = -1;
+static int hf_eth_src = -1;
+static int hf_eth_src_vendor = -1;
+static int hf_eth_len = -1;
+static int hf_eth_type = -1;
 
 #define IEEE_802_3_MAX_LEN 1500
 
index 32a4f1a1d42cee59ee2dcc3281572e9124567ce6..159024dcf843beb072a99eaf0f3955c13b083df3 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Laurent Deniel <deniel@worldnet.fr>
  *
- * $Id: packet-fddi.c,v 1.14 1999/07/15 15:32:41 gram Exp $
+ * $Id: packet-fddi.c,v 1.15 1999/07/29 05:46:54 gram Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@zing.org>
 #include "packet.h"
 #include "resolv.h"
 
-int proto_fddi = -1;
-int hf_fddi_fc = -1;
-int hf_fddi_dst = -1;
-int hf_fddi_dst_vendor = -1;
-int hf_fddi_src = -1;
-int hf_fddi_src_vendor = -1;
+static int proto_fddi = -1;
+static int hf_fddi_fc = -1;
+static int hf_fddi_dst = -1;
+static int hf_fddi_dst_vendor = -1;
+static int hf_fddi_src = -1;
+static int hf_fddi_src_vendor = -1;
 
 /* FDDI Frame Control values */
 
index 7dddacd7a3df0eb9f9152fd20986b944aba1b9c7..9db88105ebda76cb9847367a57b4161890706471 100644 (file)
@@ -2,7 +2,7 @@
  * Routines for ftp packet dissection
  * Copyright 1999, Richard Sharpe <rsharpe@ns.aus.com>
  *
- * $Id: packet-ftp.c,v 1.4 1999/07/07 22:51:43 gram Exp $
+ * $Id: packet-ftp.c,v 1.5 1999/07/29 05:46:54 gram Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@unicom.net>
@@ -46,6 +46,8 @@
 
 extern packet_info pi;
 
+static int proto_ftp = -1;
+
 void
 dissect_ftp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, int max_data)
 {
@@ -92,8 +94,7 @@ dissect_ftp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, int
 
        if (tree) {
 
-         ti = proto_tree_add_text(tree, offset, END_OF_FRAME,
-                               "File Transfer Protocol");
+         ti = proto_tree_add_item(tree, proto_ftp, offset, END_OF_FRAME, NULL);
          ftp_tree = proto_item_add_subtree(ti, ETT_FTP);
 
          if (pi.match_port == pi.destport) { /* Request */
@@ -135,8 +136,14 @@ dissect_ftpdata(const u_char *pd, int offset, frame_data *fd, proto_tree *tree,
        }
 }
 
+void
+proto_register_ftp(void)
+{
+/*        static hf_register_info hf[] = {
+                { &variable,
+                { "Name",           "ftp.abbreviation", TYPE, VALS_POINTER }},
+        };*/
 
-
-
-
-
+        proto_ftp = proto_register_protocol("File Transfer Protocol", "ftp");
+ /*       proto_register_field_array(proto_ftp, hf, array_length(hf));*/
+}
index 376afe8cba3691b56b996aa2aa28aefc8aa2af86..45558b667b61497dc68a39c6806aa6f92033e0c7 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Laurent Deniel <deniel@worldnet.fr>
  *
- * $Id: packet-giop.c,v 1.3 1999/07/07 22:51:43 gram Exp $
+ * $Id: packet-giop.c,v 1.4 1999/07/29 05:46:54 gram Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@zing.org>
@@ -40,6 +40,8 @@
 #include <glib.h>
 #include "packet.h"
 
+static int proto_giop = -1;
+
 /*
  * GIOP / IIOP types definition - OMG CORBA 2.x / GIOP 1.[01]
  * See OMG WEB site <http://www.omg.org> - CORBA+IIOP 2.2 (98-02-01.ps)
@@ -258,9 +260,8 @@ void dissect_giop(const u_char *pd, int offset, frame_data *fd, proto_tree *tree
   }
 
   if (tree) {
-    ti = proto_tree_add_text(tree, offset, 
-                         GIOP_HEADER_SIZE + message_size,
-                         "General Inter-ORB Protocol");
+    ti = proto_tree_add_item(tree, proto_giop, offset, 
+                         GIOP_HEADER_SIZE + message_size, NULL);
     clnp_tree = proto_item_add_subtree(ti, ETT_GIOP);
     proto_tree_add_text(clnp_tree, offset,      4,
                     "Magic number: %s", GIOP_MAGIC);
@@ -696,3 +697,14 @@ void dissect_giop(const u_char *pd, int offset, frame_data *fd, proto_tree *tree
 
 } /* dissect_giop */
 
+void
+proto_register_giop(void)
+{
+/*        static hf_register_info hf[] = {
+                { &variable,
+                { "Name",           "giop.abbreviation", TYPE, VALS_POINTER }},
+        };*/
+
+        proto_giop = proto_register_protocol("General Inter-ORB Protocol", "giop");
+ /*       proto_register_field_array(proto_giop, hf, array_length(hf));*/
+}
index 5dc32047971255a721695ec69b83a28f5f606025..21d3b02ef4c3bc420292ee1371876fa06980c625 100644 (file)
@@ -2,7 +2,7 @@
  * Routines for the Generic Routing Encapsulation (GRE) protocol
  * Brad Robel-Forrest <brad.robel-forrest@watchguard.com>
  *
- * $Id: packet-gre.c,v 1.3 1999/07/13 02:52:51 gram Exp $
+ * $Id: packet-gre.c,v 1.4 1999/07/29 05:46:55 gram Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@unicom.net>
@@ -38,6 +38,8 @@
 #include <glib.h>
 #include "packet.h"
 
+static int proto_gre = -1;
+
 /* bit positions for flags in header */
 #define GH_B_C         0x8000
 #define GH_B_R         0x4000
@@ -82,15 +84,14 @@ dissect_gre(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) {
 
     if (type == GRE_PPP) {
       is_ppp = 1;
-      ti = proto_tree_add_text(tree, offset, calc_len(flags_and_ver, 1),
-       "Generic Routing Encapsulation (PPP)");
+      ti = proto_tree_add_item_format(tree, proto_gre, offset, calc_len(flags_and_ver, 1),
+       NULL, "Generic Routing Encapsulation (PPP)");
       gre_tree = proto_item_add_subtree(ti, ETT_GRE);
       add_flags_and_ver(gre_tree, flags_and_ver, offset, 1);
     }
     else {
       is_ppp = 0;
-      ti = proto_tree_add_text(tree, offset, calc_len(flags_and_ver, 1),
-       "Generic Routing Encapsulation");
+      ti = proto_tree_add_item(tree, proto_gre, offset, calc_len(flags_and_ver, 1), NULL);
       gre_tree = proto_item_add_subtree(ti, ETT_GRE);
       add_flags_and_ver(gre_tree, flags_and_ver, offset, 0);
     }
@@ -234,3 +235,14 @@ add_flags_and_ver(proto_tree *tree, guint16 flags_and_ver, int offset, int is_pp
                                              "Version: %u"));
  }
  
+void
+proto_register_gre(void)
+{
+/*        static hf_register_info hf[] = {
+                { &variable,
+                { "Name",           "gre.abbreviation", TYPE, VALS_POINTER }},
+        };*/
+
+        proto_gre = proto_register_protocol("Generic Routing Encapsulation", "gre");
+ /*       proto_register_field_array(proto_gre, hf, array_length(hf));*/
+}
index b904329978f12db5776833ce82d0b9c21f6ea58a..816cf4571ee7082afaf4f48427f3c19d62eac752 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Guy Harris <guy@netapp.com>
  *
- * $Id: packet-http.c,v 1.5 1999/07/13 02:52:51 gram Exp $
+ * $Id: packet-http.c,v 1.6 1999/07/29 05:46:55 gram Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@zing.org>
@@ -41,6 +41,8 @@
 #include <glib.h>
 #include "packet.h"
 
+static int proto_http = -1;
+
 static int is_http_request_or_reply(const u_char *data, int linelen);
 
 void dissect_http(const u_char *pd, int offset, frame_data *fd, proto_tree *tree)
@@ -72,8 +74,7 @@ void dissect_http(const u_char *pd, int offset, frame_data *fd, proto_tree *tree
        }
 
        if (tree) {
-               ti = proto_tree_add_text(tree, offset, END_OF_FRAME,
-                 "Hypertext Transfer Protocol");
+               ti = proto_tree_add_item(tree, proto_http, offset, END_OF_FRAME, NULL);
                http_tree = proto_item_add_subtree(ti, ETT_HTTP);
 
                while (data < dataend) {
@@ -207,3 +208,15 @@ is_http_request_or_reply(const u_char *data, int linelen)
        }
        return FALSE;
 }
+
+void
+proto_register_http(void)
+{
+/*        static hf_register_info hf[] = {
+                { &variable,
+                { "Name",           "http.abbreviation", TYPE, VALS_POINTER }},
+        };*/
+
+        proto_http = proto_register_protocol("Hyptertext Transfer Protocol", "http");
+ /*       proto_register_field_array(proto_http, hf, array_length(hf));*/
+}
index e7a5615a2610f44ef005b04d316f71f98763da59..f4c734c77d0efbb6c4b8fe336ce29915d7a57d8c 100644 (file)
@@ -1,7 +1,7 @@
 /* packet-icmpv6.c
  * Routines for ICMPv6 packet disassembly 
  *
- * $Id: packet-icmpv6.c,v 1.6 1999/07/28 02:32:25 gerald Exp $
+ * $Id: packet-icmpv6.c,v 1.7 1999/07/29 05:46:55 gram Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@zing.org>
@@ -63,6 +63,8 @@
 #define        offsetof(type, member)  ((size_t)(&((type *)0)->member))
 #endif
 
+static int proto_icmpv6 = -1;
+
 static void
 dissect_icmpv6opt(const u_char *pd, int offset, frame_data *fd, proto_tree *tree)
 {
@@ -336,8 +338,7 @@ dissect_icmpv6(const u_char *pd, int offset, frame_data *fd, proto_tree *tree)
 
     if (tree) {
        /* !!! specify length */
-       ti = proto_tree_add_text(tree, offset, len,
-           "ICMPv6");
+       ti = proto_tree_add_item(tree, proto_icmpv6, offset, len, NULL);
        icmp6_tree = proto_item_add_subtree(ti, ETT_ICMPv6);
 
        proto_tree_add_text(icmp6_tree,
@@ -565,3 +566,15 @@ dissect_icmpv6(const u_char *pd, int offset, frame_data *fd, proto_tree *tree)
        }
     }
 }
+
+void
+proto_register_icmpv6(void)
+{
+/*        static hf_register_info hf[] = {
+                { &variable,
+                { "Name",           "icmpv6.abbreviation", TYPE, VALS_POINTER }},
+        };*/
+
+        proto_icmpv6 = proto_register_protocol("ICMPv6", "icmpv6");
+ /*       proto_register_field_array(proto_icmpv6, hf, array_length(hf));*/
+}
index 1ed42f66978e51fd13ee902439204f9375a86c2f..ddf05cbe99c1a173a31553b8b58d53b82ec5230f 100644 (file)
@@ -1,7 +1,7 @@
 /* packet-ip.c
  * Routines for IP and miscellaneous IP protocol packet disassembly
  *
- * $Id: packet-ip.c,v 1.30 1999/07/17 04:19:03 gram Exp $
+ * $Id: packet-ip.c,v 1.31 1999/07/29 05:46:55 gram Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@zing.org>
 
 extern packet_info pi;
        
-int proto_ip = -1;
-int hf_ip_version = -1;
-int hf_ip_hdr_len = -1;
-int hf_ip_tos = -1;
-int hf_ip_tos_precedence = -1;
-int hf_ip_len = -1;
-int hf_ip_id = -1;
-int hf_ip_dst = -1;
-int hf_ip_src = -1;
-int hf_ip_addr = -1;
-               
-int proto_igmp = -1;
-int hf_igmp_version = -1;
-int hf_igmp_type = -1;
-int hf_igmp_unused = -1;
-int hf_igmp_checksum = -1;
-int hf_igmp_group = -1;
+static int proto_ip = -1;
+static int hf_ip_version = -1;
+static int hf_ip_hdr_len = -1;
+static int hf_ip_tos = -1;
+static int hf_ip_tos_precedence = -1;
+static int hf_ip_len = -1;
+static int hf_ip_id = -1;
+static int hf_ip_dst = -1;
+static int hf_ip_src = -1;
+static int hf_ip_addr = -1;
+
+static int proto_igmp = -1;
+static int hf_igmp_version = -1;
+static int hf_igmp_type = -1;
+static int hf_igmp_unused = -1;
+static int hf_igmp_checksum = -1;
+static int hf_igmp_group = -1;
+
+static int proto_icmp = -1;
+
 
 /* ICMP structs and definitions */
 typedef struct _e_icmp {
@@ -911,8 +914,7 @@ dissect_icmp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) {
     col_add_str(fd, COL_INFO, type_str);
 
   if (tree) {
-    ti = proto_tree_add_text(tree, offset, 4,
-      "Internet Control Message Protocol");
+    ti = proto_tree_add_item(tree, proto_icmp, offset, 4, NULL);
     icmp_tree = proto_item_add_subtree(ti, ETT_ICMP);
     proto_tree_add_text(icmp_tree, offset,      1, "Type: %d (%s)",
       ih.icmp_type, type_str);
@@ -1136,3 +1138,9 @@ proto_register_ip(void)
        proto_ip = proto_register_protocol ("Internet Protocol", "ip");
        proto_register_field_array(proto_ip, hf, array_length(hf));
 }
+
+void
+proto_register_icmp(void)
+{
+       proto_icmp = proto_register_protocol ("Internet Control Message Protocol", "icmp");
+}
index c4b54e4e5f0b0ff5f23115206c009c096978c199..c525d1142602c6694e79b4238379d9a5aced540f 100644 (file)
@@ -1,7 +1,7 @@
 /* packet-ipsec.c
  * Routines for IPsec packet disassembly 
  *
- * $Id: packet-ipsec.c,v 1.2 1999/07/07 22:51:45 gram Exp $
+ * $Id: packet-ipsec.c,v 1.3 1999/07/29 05:46:56 gram Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@zing.org>
@@ -41,6 +41,9 @@
 #include "packet.h"
 #include "resolv.h"
 
+static int proto_ah = -1;
+static int proto_esp = -1;
+
 struct newah {
        guint8  ah_nxt;         /* Next Header */
        guint8  ah_len;         /* Length of data + 1, in 32bit */
@@ -85,7 +88,7 @@ dissect_ah(const u_char *pd, int offset, frame_data *fd, proto_tree *tree)
 
     if (tree) {
        /* !!! specify length */
-       ti = proto_tree_add_text(tree, offset, advance, "Authentication Header");
+       ti = proto_tree_add_item(tree, proto_ah, offset, advance, NULL);
        ah_tree = proto_item_add_subtree(ti, ETT_AH);
 
        proto_tree_add_text(ah_tree, offset + offsetof(struct newah, ah_nxt), 1,
@@ -129,7 +132,7 @@ dissect_esp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree)
      * (ie none)
      */
     if(tree) {
-       ti = proto_tree_add_text(tree, 0, 0, "Encapsulated Security Payload");
+       ti = proto_tree_add_item(tree, proto_esp, 0, 0, NULL);
        esp_tree = proto_item_add_subtree(ti, ETT_ESP);
        proto_tree_add_text(esp_tree, offset + offsetof(struct newesp, esp_spi), 4,
            "SPI: %08x", (guint32)ntohl(esp.esp_spi));
@@ -137,3 +140,16 @@ dissect_esp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree)
            "Sequence?: %08x", (guint32)ntohl(esp.esp_seq));
     }
 }
+
+void
+proto_register_ipsec(void)
+{
+/*        static hf_register_info hf[] = {
+                { &variable,
+                { "Name",           "ah.abbreviation", TYPE, VALS_POINTER }},
+        };*/
+
+        proto_ah = proto_register_protocol("Authentication Header", "ah");
+        proto_esp = proto_register_protocol("Encapsulated Security Payload", "esp");
+ /*       proto_register_field_array(proto_ah, hf, array_length(hf));*/
+}
index c88fd1b8dd18bc4357f5ad026f3c5f5e0f2ecffd..70d367d024eedd5becb4c18886fa0f0a0383fd6f 100644 (file)
@@ -1,7 +1,7 @@
 /* packet-ipv6.c
  * Routines for IPv6 packet disassembly 
  *
- * $Id: packet-ipv6.c,v 1.10 1999/07/13 02:52:52 gram Exp $
+ * $Id: packet-ipv6.c,v 1.11 1999/07/29 05:46:56 gram Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@zing.org>
@@ -48,6 +48,8 @@
 #include "etypes.h"
 #include "resolv.h"
 
+static int proto_ipv6 = -1;
+
 #ifndef offsetof
 #define        offsetof(type, member)  ((size_t)(&((type *)0)->member))
 #endif
@@ -127,7 +129,7 @@ dissect_ipv6(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) {
 
   if (tree) {
     /* !!! specify length */
-    ti = proto_tree_add_text(tree, offset, 40, "Internet Protocol Version 6");
+    ti = proto_tree_add_item(tree, proto_ipv6, offset, 40, NULL);
     ipv6_tree = proto_item_add_subtree(ti, ETT_IPv6);
 
     /* !!! warning: version also contains 4 Bit priority */
@@ -402,3 +404,14 @@ inet_ntop6(src, dst, size)
        return (dst);
 }
 
+void
+proto_register_ipv6(void)
+{
+/*        static hf_register_info hf[] = {
+                { &variable,
+                { "Name",           "ipv6.abbreviation", TYPE, VALS_POINTER }},
+        };*/
+
+        proto_ipv6 = proto_register_protocol("Internet Protocol Version 6", "ipv6");
+ /*       proto_register_field_array(proto_ipv6, hf, array_length(hf));*/
+}
index 641fb80f58372f95e7a86ba43d9ad8291bb69d5d..8490555de897186f5a21ea60568caf76028d0f85 100644 (file)
@@ -2,7 +2,7 @@
  * Routines for NetWare's IPX
  * Gilbert Ramirez <gram@verdict.uthscsa.edu>
  *
- * $Id: packet-ipx.c,v 1.23 1999/07/20 02:56:44 gram Exp $
+ * $Id: packet-ipx.c,v 1.24 1999/07/29 05:46:57 gram Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@unicom.net>
 
 */
        
-int proto_ipx = -1;
-int hf_ipx_checksum = -1;
-int hf_ipx_len = -1;
-int hf_ipx_hops = -1;
-int hf_ipx_dnode = -1;
-int hf_ipx_snode = -1;
-
-int proto_spx = -1;
-int proto_ipxrip = -1;
-int proto_sap = -1;
+static int proto_ipx = -1;
+static int hf_ipx_checksum = -1;
+static int hf_ipx_len = -1;
+static int hf_ipx_hops = -1;
+static int hf_ipx_dnode = -1;
+static int hf_ipx_snode = -1;
+
+static int proto_spx = -1;
+static int proto_ipxrip = -1;
+static int proto_sap = -1;
 
 static void
 dissect_spx(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, int max_data);
index 5e2b936ec7fc220ca478b05b7071bbd18ae1a5db..c6267a0904e403ac9daeb01711918f4af303714a 100644 (file)
@@ -2,7 +2,7 @@
  * Routines for the Internet Security Association and Key Management Protocol (ISAKMP)
  * Brad Robel-Forrest <brad.robel-forrest@watchguard.com>
  *
- * $Id: packet-isakmp.c,v 1.6 1999/07/13 02:52:52 gram Exp $
+ * $Id: packet-isakmp.c,v 1.7 1999/07/29 05:46:57 gram Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@unicom.net>
@@ -50,6 +50,8 @@
 # include "snprintf.h"
 #endif
 
+static int proto_isakmp = -1;
+
 #define NUM_PROTO_TYPES        5
 #define proto2str(t)   \
   ((t < NUM_PROTO_TYPES) ? prototypestr[t] : "UNKNOWN-PROTO-TYPE")
@@ -291,8 +293,7 @@ void dissect_isakmp(const u_char *pd, int offset, frame_data *fd, proto_tree *tr
     proto_item *       ti;
     proto_tree *       isakmp_tree;
     
-    ti = proto_tree_add_text(tree, offset, len,
-                            "Internet Security Association and Key Management Protocol");
+    ti = proto_tree_add_item(tree, proto_isakmp, offset, len, NULL);
     isakmp_tree = proto_item_add_subtree(ti, ETT_ISAKMP);
     
     proto_tree_add_text(isakmp_tree, offset, sizeof(hdr->icookie),
@@ -1049,3 +1050,14 @@ num2str(const guint8 *pd, guint16 len) {
   return numstr;
 }
 
+void
+proto_register_isakmp(void)
+{
+/*        static hf_register_info hf[] = {
+                { &variable,
+                { "Name",           "isakmp.abbreviation", TYPE, VALS_POINTER }},
+        };*/
+
+        proto_isakmp = proto_register_protocol("Internet Security Association and Key Management Protocol", "isakmp");
+ /*       proto_register_field_array(proto_isakmp, hf, array_length(hf));*/
+}
index edbdf2c227369eb14a948ccd4e421a3b79ef00c0..afd9bc20ccbfd6bd3573c497b7cb6d10aad7b6bd 100644 (file)
@@ -2,7 +2,7 @@
  * Routines for IEEE 802.2 LLC layer
  * Gilbert Ramirez <gramirez@tivoli.com>
  *
- * $Id: packet-llc.c,v 1.16 1999/07/15 15:32:42 gram Exp $
+ * $Id: packet-llc.c,v 1.17 1999/07/29 05:46:58 gram Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@unicom.net>
 #include <glib.h>
 #include "packet.h"
        
-int proto_llc = -1;
-int hf_llc_dsap = -1;
-int hf_llc_ssap = -1;
-int hf_llc_ctrl = -1;
-int hf_llc_type = -1;
-int hf_llc_oui = -1;
+static int proto_llc = -1;
+static int hf_llc_dsap = -1;
+static int hf_llc_ssap = -1;
+static int hf_llc_ctrl = -1;
+static int hf_llc_type = -1;
+static int hf_llc_oui = -1;
 
 typedef void (capture_func_t)(const u_char *, int, guint32, packet_counts *);
 typedef void (dissect_func_t)(const u_char *, int, frame_data *, proto_tree *);
index 8a2b973f40796b2d125cd941fc18b4087ff90106..4555d267912593616becba1708990d85e4ebb030 100644 (file)
@@ -2,7 +2,7 @@
  * Routines for NetBIOS over IPX packet disassembly
  * Gilbert Ramirez <gram@verdict.uthscsa.edu>
  *
- * $Id: packet-nbipx.c,v 1.8 1999/07/07 22:51:47 gram Exp $
+ * $Id: packet-nbipx.c,v 1.9 1999/07/29 05:46:58 gram Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@zing.org>
 # include <sys/types.h>
 #endif
 
-/*#include <memory.h>*/
 #include <glib.h>
 #include "packet.h"
 #include "packet-ipx.h" /* for ipxnet_to_string() */
 
+static int proto_nbipx = -1;
+
 enum nbipx_protocol {
        NETBIOS_NETWARE,
        NETBIOS_NWLINK
@@ -141,8 +142,7 @@ nbipx_ns(const u_char *pd, int offset, frame_data *fd, proto_tree *tree,
        }
 
        if (tree) {
-               ti = proto_tree_add_text(tree, offset, 68,
-                               "NetBIOS over IPX");
+               ti = proto_tree_add_item(tree, proto_nbipx, offset, 68, NULL);
                nbipx_tree = proto_item_add_subtree(ti, ETT_NBIPX);
 
                if (header.packet_type <= 1) {
@@ -194,6 +194,14 @@ nbipx_ns(const u_char *pd, int offset, frame_data *fd, proto_tree *tree,
        }
 }
 
+void
+proto_register_nbipx(void)
+{
+/*        static hf_register_info hf[] = {
+                { &variable,
+                { "Name",           "nbipx.abbreviation", TYPE, VALS_POINTER }},
+        };*/
 
-
-
+        proto_nbipx = proto_register_protocol("NetBIOS over IPX", "nbipx");
+ /*       proto_register_field_array(proto_nbipx, hf, array_length(hf));*/
+}
index c44de19a97e255d87bc75db01bf65299f3343255..cbc3514c82664ee5731526e84db206030d054b22 100644 (file)
@@ -4,7 +4,7 @@
  * Gilbert Ramirez <gram@verdict.uthscsa.edu>
  * Much stuff added by Guy Harris <guy@netapp.com>
  *
- * $Id: packet-nbns.c,v 1.22 1999/07/07 22:51:47 gram Exp $
+ * $Id: packet-nbns.c,v 1.23 1999/07/29 05:46:58 gram Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@zing.org>
 #include "packet-dns.h"
 #include "util.h"
 
+static int proto_nbns = -1;
+static int proto_nbdgm = -1;
+static int proto_nbss = -1;
+
 /* Packet structure taken from RFC 1002. See also RFC 1001.
  * Opcode, flags, and rcode treated as "flags", similarly to DNS,
  * to make it easier to lift the dissection code from "packet-dns.c". */
@@ -906,8 +910,7 @@ dissect_nbns(const u_char *pd, int offset, frame_data *fd, proto_tree *tree)
        }
 
        if (tree) {
-               ti = proto_tree_add_text(tree, offset, END_OF_FRAME,
-                               "NetBIOS Name Service");
+               ti = proto_tree_add_item(tree, proto_nbns, offset, END_OF_FRAME, NULL);
                nbns_tree = proto_item_add_subtree(ti, ETT_NBNS);
 
                proto_tree_add_text(nbns_tree, offset + NBNS_ID, 2,
@@ -1045,8 +1048,7 @@ dissect_nbdgm(const u_char *pd, int offset, frame_data *fd, proto_tree *tree,
        }
 
        if (tree) {
-               ti = proto_tree_add_text(tree, offset, header.dgm_length,
-                               "NetBIOS Datagram Service");
+               ti = proto_tree_add_item(tree, proto_nbdgm, offset, header.dgm_length, NULL);
                nbdgm_tree = proto_item_add_subtree(ti, ETT_NBDGM);
 
                proto_tree_add_text(nbdgm_tree, offset, 1, "Message Type: %s",
@@ -1184,8 +1186,7 @@ dissect_nbss_packet(const u_char *pd, int offset, frame_data *fd, proto_tree *tr
                length += 65536;
 
        if (tree) {
-         ti = proto_tree_add_text(tree, offset, length + 4,
-                                  "NetBIOS Session Service");
+         ti = proto_tree_add_item(tree, proto_nbss, offset, length + 4, NULL);
          nbss_tree = proto_item_add_subtree(ti, ETT_NBSS);
          
          proto_tree_add_text(nbss_tree, offset, 1, "Message Type: %s",
@@ -1289,3 +1290,17 @@ dissect_nbss(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, int
        }
 
 }
+
+void
+proto_register_nbt(void)
+{
+/*        static hf_register_info hf[] = {
+                { &variable,
+                { "Name",           "nbipx.abbreviation", TYPE, VALS_POINTER }},
+        };*/
+
+        proto_nbns = proto_register_protocol("NetBIOS Name Service", "nbns");
+        proto_nbdgm = proto_register_protocol("NetBIOS Datagram Service", "nbdgm");
+        proto_nbss = proto_register_protocol("NetBIOS Session Service", "nbss");
+ /*       proto_register_field_array(proto_nbipx, hf, array_length(hf));*/
+}
index 6b2d9225bb8b4453ce10263247766f2247ce0a2b..cc17ed6687597ca5456abe3d6b04b4267a938344 100644 (file)
@@ -2,7 +2,7 @@
  * Routines for NetWare Core Protocol
  * Gilbert Ramirez <gram@verdict.uthscsa.edu>
  *
- * $Id: packet-ncp.c,v 1.17 1999/07/13 02:52:52 gram Exp $
+ * $Id: packet-ncp.c,v 1.18 1999/07/29 05:46:59 gram Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@unicom.net>
@@ -43,6 +43,8 @@
 #include "packet-ipx.h"
 #include "packet-ncp.h"
 
+static int proto_ncp = -1;
+
 struct svc_record;
 
 static void
@@ -449,8 +451,7 @@ dissect_ncp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree,
        nw_ncp_type = header.type;
 
        if (tree) {
-               ti = proto_tree_add_text(tree, offset, END_OF_FRAME,
-                       "NetWare Core Protocol");
+               ti = proto_tree_add_item(tree, proto_ncp, offset, END_OF_FRAME, NULL);
                ncp_tree = proto_item_add_subtree(ti, ETT_NCP);
 
                proto_tree_add_text(ncp_tree, offset,      2,
@@ -847,3 +848,15 @@ ncp_completion_code(guint8 ccode, enum nfamily family)
                        return "I don't know how to parse this completion code. Please send this packet trace to Gilbert Ramirez <gram@xiexie.org> for analysis";
        }
 }
+
+void
+proto_register_ncp(void)
+{
+/*        static hf_register_info hf[] = {
+                { &variable,
+                { "Name",           "ncp.abbreviation", TYPE, VALS_POINTER }},
+        };*/
+
+        proto_ncp = proto_register_protocol("NetWare Core Protocol", "ncp");
+ /*       proto_register_field_array(proto_ncp, hf, array_length(hf));*/
+}
index d4fd4900aa9f629953fa9488d03db14e5552d1cc..01dd9da4d5e41ece2b014e1664f84c429a9a23ef 100644 (file)
@@ -2,7 +2,7 @@
  * Routines for nntp packet dissection
  * Copyright 1999, Richard Sharpe <rsharpe@ns.aus.com>
  *
- * $Id: packet-nntp.c,v 1.2 1999/07/07 22:51:49 gram Exp $
+ * $Id: packet-nntp.c,v 1.3 1999/07/29 05:47:00 gram Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@unicom.net>
@@ -43,6 +43,8 @@
 
 extern packet_info pi;
 
+static int proto_nntp = -1;
+
 void
 dissect_nntp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, int max_data)
 {
@@ -77,8 +79,7 @@ dissect_nntp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, int
 
        if (tree) {
 
-         ti = proto_tree_add_text(tree, offset, END_OF_FRAME,
-                               "Network News Transfer Protocol");
+         ti = proto_tree_add_item(tree, proto_nntp, offset, END_OF_FRAME, NULL);
          nntp_tree = proto_item_add_subtree(ti, ETT_NNTP);
 
          /*
@@ -106,3 +107,15 @@ dissect_nntp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, int
          }
        }
 }
+
+void
+proto_register_nntp(void)
+{
+/*        static hf_register_info hf[] = {
+                { &variable,
+                { "Name",           "nntp.abbreviation", TYPE, VALS_POINTER }},
+        };*/
+
+        proto_nntp = proto_register_protocol("Network News Transfer Protocol", "nntp");
+ /*       proto_register_field_array(proto_nntp, hf, array_length(hf));*/
+}
index ec43d1bc6915c21ffe46e9ed15f16babe64e61e7..493012bab0e86e73ebf2f92f30f34cfe3efbb849 100644 (file)
@@ -1,7 +1,7 @@
 /* packet-null.c
  * Routines for null packet disassembly
  *
- * $Id: packet-null.c,v 1.9 1999/07/13 02:52:53 gram Exp $
+ * $Id: packet-null.c,v 1.10 1999/07/29 05:47:00 gram Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@zing.org>
 
 #include "packet.h"
        
-int proto_null = -1;
-int hf_null_next = -1;
-int hf_null_len = -1;
-int hf_null_family = -1;
+static int proto_null = -1;
+static int hf_null_next = -1;
+static int hf_null_len = -1;
+static int hf_null_family = -1;
 
 /* Null/loopback structs and definitions */
 
index 933811b1ee8d30e49d751bcfb005f1382e296c68..79672c6d92f98bd10e47559117dc0c1dd66cd3a5 100644 (file)
@@ -1,7 +1,7 @@
 /* packet-osi.c
  * Routines for ISO/OSI network and transport protocol packet disassembly
  *
- * $Id: packet-osi.c,v 1.7 1999/07/07 22:51:49 gram Exp $
+ * $Id: packet-osi.c,v 1.8 1999/07/29 05:47:00 gram Exp $
  * Laurent Deniel <deniel@worldnet.fr>
  *
  * Ethereal - Network traffic analyzer
@@ -45,6 +45,8 @@
 #include <glib.h>
 #include "packet.h"
 
+static int proto_osi = 1;
+
 /* Network layer protocol identifiers */
 
 #define ISO8473_CLNP           0x81
@@ -245,7 +247,7 @@ static int osi_decode_DR(const u_char *pd, int offset,
            src_ref, dst_ref);
 
   if (tree) {
-    ti = proto_tree_add_text(tree, offset, li + 1, "ISO COTP");
+    ti = proto_tree_add_item(tree, proto_osi, offset, li + 1, NULL);
     cotp_tree = proto_item_add_subtree(ti, ETT_COTP);
     proto_tree_add_text(cotp_tree, offset,      1,
                     "Length indicator: %d", li);
@@ -337,7 +339,7 @@ static int osi_decode_DT(const u_char *pd, int offset,
            (fragment)? "(fragment)" : "");
 
   if (tree) {
-    ti = proto_tree_add_text(tree, offset, li + 1, "ISO COTP");
+    ti = proto_tree_add_item(tree, proto_osi, offset, li + 1, NULL);
     cotp_tree = proto_item_add_subtree(ti, ETT_COTP);
     proto_tree_add_text(cotp_tree, offset,      1,
                     "Length indicator: %d", li);
@@ -471,7 +473,7 @@ static int osi_decode_ED(const u_char *pd, int offset,
     col_add_fstr(fd, COL_INFO, "ED TPDU (%d) dst-ref: 0x%04x", tpdu_nr, dst_ref);
 
   if (tree) {
-    ti = proto_tree_add_text(tree, offset, li + 1, "ISO COTP");
+    ti = proto_tree_add_item(tree, proto_osi, offset, li + 1, NULL);
     cotp_tree = proto_item_add_subtree(ti, ETT_COTP);
     proto_tree_add_text(cotp_tree, offset,      1,
                     "Length indicator: %d", li);
@@ -553,7 +555,7 @@ static int osi_decode_RJ(const u_char *pd, int offset,
     col_add_fstr(fd, COL_INFO, "RJ TPDU (%d) dst-ref: 0x%04x", tpdu_nr, dst_ref);
 
   if (tree) {
-    ti = proto_tree_add_text(tree, offset, li + 1, "ISO COTP");
+    ti = proto_tree_add_item(tree, proto_osi, offset, li + 1, NULL);
     cotp_tree = proto_item_add_subtree(ti, ETT_COTP);
     proto_tree_add_text(cotp_tree, offset,      1,
                     "Length indicator: %d", li);
@@ -641,7 +643,7 @@ static int osi_decode_CC(const u_char *pd, int offset,
            dst_ref);
 
   if (tree) {
-    ti = proto_tree_add_text(tree, offset, li + 1, "ISO COTP");
+    ti = proto_tree_add_item(tree, proto_osi, offset, li + 1, NULL);
     cotp_tree = proto_item_add_subtree(ti, ETT_COTP);
     proto_tree_add_text(cotp_tree, offset,      1,
                     "Length indicator: %d", li);
@@ -913,7 +915,7 @@ static int osi_decode_DC(const u_char *pd, int offset,
            dst_ref);
 
   if (tree) {
-    ti = proto_tree_add_text(tree, offset, li + 1, "ISO COTP");
+    ti = proto_tree_add_item(tree, proto_osi, offset, li + 1, NULL);
     cotp_tree = proto_item_add_subtree(ti, ETT_COTP);
     proto_tree_add_text(cotp_tree, offset,      1,
                     "Length indicator: %d", li);
@@ -966,7 +968,7 @@ static int osi_decode_AK(const u_char *pd, int offset,
              tpdu_nr, dst_ref);
     
     if (tree) {
-      ti = proto_tree_add_text(tree, offset, li + 1, "ISO COTP");
+      ti = proto_tree_add_item(tree, proto_osi, offset, li + 1, NULL);
       cotp_tree = proto_item_add_subtree(ti, ETT_COTP);
       proto_tree_add_text(cotp_tree, offset,      1,
                       "Length indicator: %d", li);
@@ -1072,7 +1074,7 @@ static int osi_decode_AK(const u_char *pd, int offset,
              tpdu_nr, dst_ref);
     
     if (tree) {
-      ti = proto_tree_add_text(tree, offset, li + 1, "ISO COTP");
+      ti = proto_tree_add_item(tree, proto_osi, offset, li + 1, NULL);
       cotp_tree = proto_item_add_subtree(ti, ETT_COTP);
       proto_tree_add_text(cotp_tree, offset,      1,
                       "Length indicator: %d", li);
@@ -1224,7 +1226,7 @@ static int osi_decode_EA(const u_char *pd, int offset,
     col_add_fstr(fd, COL_INFO, "EA TPDU (%d) dst-ref: 0x%04x", tpdu_nr, dst_ref);
 
   if (tree) {
-    ti = proto_tree_add_text(tree, offset, li + 1, "ISO COTP");
+    ti = proto_tree_add_item(tree, proto_osi, offset, li + 1, NULL);
     cotp_tree = proto_item_add_subtree(ti, ETT_COTP);
     proto_tree_add_text(cotp_tree, offset,      1,
                     "Length indicator: %d", li);
@@ -1309,7 +1311,7 @@ static int osi_decode_ER(const u_char *pd, int offset,
     col_add_fstr(fd, COL_INFO, "ER TPDU dst-ref: 0x%04x", dst_ref);
 
   if (tree) {
-    ti = proto_tree_add_text(tree, offset, li + 1, "ISO COTP");
+    ti = proto_tree_add_item(tree, proto_osi, offset, li + 1, NULL);
     cotp_tree = proto_item_add_subtree(ti, ETT_COTP);
     proto_tree_add_text(cotp_tree, offset,      1,
                     "Length indicator: %d", li);
@@ -1603,3 +1605,14 @@ void dissect_osi(const u_char *pd, int offset, frame_data *fd, proto_tree *tree)
   
 } /* dissect_osi */
 
+void
+proto_register_osi(void)
+{
+/*        static hf_register_info hf[] = {
+                { &variable,
+                { "Name",           "osi.abbreviation", TYPE, VALS_POINTER }},
+        };*/
+
+        proto_osi = proto_register_protocol("ISO COTP", "osi");
+ /*       proto_register_field_array(proto_osi, hf, array_length(hf));*/
+}
index f4fd8b2584b4b582a850e69fbd11bca1b4e162a9..fe5d6f0d7a2e5b69040460f85d0ce97c2d9ebde0 100644 (file)
@@ -2,7 +2,7 @@
  * Routines for OSPF packet disassembly
  * (c) Copyright Hannes R. Boehm <hannes@boehm.org>
  *
- * $Id: packet-ospf.c,v 1.11 1999/07/07 22:51:50 gram Exp $
+ * $Id: packet-ospf.c,v 1.12 1999/07/29 05:47:01 gram Exp $
  *
  * At this time, this module is able to analyze OSPF
  * packets as specified in RFC2328. MOSPF (RFC1584) and other
@@ -50,6 +50,7 @@
 #include "packet.h"
 #include "packet-ospf.h"
 
+static int proto_ospf = -1;
 
 void 
 dissect_ospf(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) {
@@ -80,7 +81,7 @@ dissect_ospf(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) {
     }  
 
     if (tree) {
-       ti = proto_tree_add_text(tree, offset, ntohs(ospfh.length), "Open Shortest Path First"); 
+       ti = proto_tree_add_item(tree, proto_ospf, offset, ntohs(ospfh.length), NULL);
        ospf_tree = proto_item_add_subtree(ti, ETT_OSPF);
 
        ti = proto_tree_add_text(ospf_tree, offset, OSPF_HEADER_LENGTH, "OSPF Header"); 
@@ -572,3 +573,15 @@ dissect_ospf_lsa(const u_char *pd, int offset, frame_data *fd, proto_tree *tree,
     /* return the length of this LSA */
     return ntohs(lsa_hdr.length);
 }
+
+void
+proto_register_ospf(void)
+{
+/*        static hf_register_info hf[] = {
+                { &variable,
+                { "Name",           "ospf.abbreviation", TYPE, VALS_POINTER }},
+        };*/
+
+        proto_ospf = proto_register_protocol("Open Shortest Path First", "ospf");
+ /*       proto_register_field_array(proto_ospf, hf, array_length(hf));*/
+}
index 6a0485b2bdd37c26afbb0cf227ac81f78a5973b5..ff8547639b1470ac791ff52ccc5e2d527b4e9b23 100644 (file)
@@ -2,7 +2,7 @@
  * Routines for pop packet dissection
  * Copyright 1999, Richard Sharpe <rsharpe@ns.aus.com>
  *
- * $Id: packet-pop.c,v 1.4 1999/07/07 22:51:50 gram Exp $
+ * $Id: packet-pop.c,v 1.5 1999/07/29 05:47:01 gram Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@unicom.net>
@@ -46,6 +46,8 @@
 
 extern packet_info pi;
 
+static int proto_pop = -1;
+
 void
 dissect_pop(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, int max_data)
 {
@@ -81,8 +83,7 @@ dissect_pop(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, int
 
        if (tree) {
 
-         ti = proto_tree_add_text(tree, offset, END_OF_FRAME,
-                               "Post Office Protocol");
+         ti = proto_tree_add_item(tree, proto_pop, offset, END_OF_FRAME, NULL);
          pop_tree = proto_item_add_subtree(ti, ETT_POP);
 
          if (pi.match_port == pi.destport) { /* Request */
@@ -102,8 +103,14 @@ dissect_pop(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, int
        }
 }
 
+void
+proto_register_pop(void)
+{
+/*        static hf_register_info hf[] = {
+                { &variable,
+                { "Name",           "pop.abbreviation", TYPE, VALS_POINTER }},
+        };*/
 
-
-
-
-
+        proto_pop = proto_register_protocol("Post Office Protocol", "pop");
+ /*       proto_register_field_array(proto_pop, hf, array_length(hf));*/
+}
index 4dc8cc2c1ed442960caada771dcc29a56ac142af..9fdd14bb0393c04b6f53b5f95402e5574e7600f4 100644 (file)
@@ -1,7 +1,7 @@
 /* packet-ppp.c
  * Routines for ppp packet disassembly
  *
- * $Id: packet-ppp.c,v 1.12 1999/07/07 22:51:50 gram Exp $
+ * $Id: packet-ppp.c,v 1.13 1999/07/29 05:47:01 gram Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@zing.org>
@@ -35,6 +35,8 @@
 #include <glib.h>
 #include "packet.h"
 
+static int proto_ppp = -1;
+
 /* PPP structs and definitions */
 
 typedef struct _e_ppphdr {
@@ -274,7 +276,7 @@ dissect_payload_ppp( const u_char *pd, int offset, frame_data *fd, proto_tree *t
   /* populate a tree in the second pane with the status of the link
      layer (ie none) */
   if(tree) {
-    ti = proto_tree_add_text(tree, 0+offset, 2, "Point-to-Point Protocol" );
+    ti = proto_tree_add_item(tree, proto_ppp, 0+offset, 2, NULL);
     fh_tree = proto_item_add_subtree(ti, ETT_PPP);
     proto_tree_add_text(fh_tree, 0+offset, 2, "Protocol: %s (0x%04x)",
       val_to_str(ph.ppp_prot, ppp_vals, "Unknown"), ph.ppp_prot);
@@ -344,7 +346,7 @@ dissect_ppp( const u_char *pd, frame_data *fd, proto_tree *tree ) {
   /* populate a tree in the second pane with the status of the link
      layer (ie none) */
   if(tree) {
-    ti = proto_tree_add_text(tree, 0, 4, "Point-to-Point Protocol" );
+    ti = proto_tree_add_item(tree, proto_ppp, 0, 4, NULL);
     fh_tree = proto_item_add_subtree(ti, ETT_PPP);
     proto_tree_add_text(fh_tree, 0, 1, "Address: %02x", ph.ppp_addr);
     proto_tree_add_text(fh_tree, 1, 1, "Control: %02x", ph.ppp_ctl);
@@ -375,3 +377,15 @@ dissect_ppp( const u_char *pd, frame_data *fd, proto_tree *tree ) {
       break;
   }
 }
+
+void
+proto_register_ppp(void)
+{
+/*        static hf_register_info hf[] = {
+                { &variable,
+                { "Name",           "ppp.abbreviation", TYPE, VALS_POINTER }},
+        };*/
+
+        proto_ppp = proto_register_protocol("Point-to-Point Protocol", "ppp");
+ /*       proto_register_field_array(proto_ppp, hf, array_length(hf));*/
+}
index 7d1a7806382b3737b75ee3a326039a509d437071..9b05d3e8bbd0d29595b3e62d7927c9d00f887b84 100644 (file)
@@ -2,7 +2,7 @@
  * Routines for RIPv1 and RIPv2 packet disassembly
  * (c) Copyright Hannes R. Boehm <hannes@boehm.org>
  *
- * $Id: packet-rip.c,v 1.9 1999/07/07 22:51:52 gram Exp $
+ * $Id: packet-rip.c,v 1.10 1999/07/29 05:47:02 gram Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@zing.org>
@@ -38,6 +38,8 @@
 #include "packet.h"
 #include "packet-rip.h"
 
+static int proto_rip = -1;
+
 static void dissect_ip_rip_vektor(guint8 version,
     const e_rip_vektor *rip_vektor, int offset, proto_tree *tree);
 static void dissect_rip_authentication(const e_rip_authentication *rip_authentication,
@@ -90,7 +92,7 @@ dissect_rip(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) {
         col_add_str(fd, COL_INFO, packet_type[rip_header.command]); 
 
     if (tree) {
-       ti = proto_tree_add_text(tree, offset, (fd->cap_len - offset), "Routing Information Protocol"); 
+       ti = proto_tree_add_item(tree, proto_rip, offset, (fd->cap_len - offset), NULL);
        rip_tree = proto_item_add_subtree(ti, ETT_RIP);
 
        proto_tree_add_text(rip_tree, offset, 1, "Command: %d (%s)", rip_header.command, packet_type[rip_header.command]); 
@@ -175,3 +177,14 @@ dissect_rip_authentication(const e_rip_authentication *rip_authentication,
                                rip_authentication->authentication);
 }
 
+void
+proto_register_rip(void)
+{
+/*        static hf_register_info hf[] = {
+                { &variable,
+                { "Name",           "rip.abbreviation", TYPE, VALS_POINTER }},
+        };*/
+
+        proto_rip = proto_register_protocol("Routing Information Protocol", "rip");
+ /*       proto_register_field_array(proto_rip, hf, array_length(hf));*/
+}
index 9a6af6f33c22dc77f38c94cde2014add080fc74a..eebedd0cf4309bf3ad032c42fcf9b2f8223f92a2 100644 (file)
@@ -3,7 +3,7 @@
  *
  * (c) Copyright Ashok Narayanan <ashokn@cisco.com>
  *
- * $Id: packet-rsvp.c,v 1.3 1999/07/13 02:52:55 gram Exp $
+ * $Id: packet-rsvp.c,v 1.4 1999/07/29 05:47:02 gram Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@zing.org>
@@ -72,6 +72,8 @@
 #include "packet-ipv6.h"
 #include "packet-rsvp.h"
 
+static int proto_rsvp = -1;
+
 /* Stuff for IEEE float handling */
 
 #define IEEE_NUMBER_WIDTH      32      /* bits in number */
@@ -164,8 +166,7 @@ dissect_rsvp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree)
 
     if (tree) {
        msg_length = pntohs(pd+offset+6);
-       ti = proto_tree_add_text(tree, offset, msg_length, 
-                             "Resource ReserVation Protocol (RSVP)"); 
+       ti = proto_tree_add_item(tree, proto_rsvp, offset, msg_length, NULL);
        rsvp_tree = proto_item_add_subtree(ti, ETT_RSVP);
 
        ti = proto_tree_add_text(rsvp_tree, offset, 
@@ -844,3 +845,15 @@ dissect_rsvp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree)
        }
     }
 }
+
+void
+proto_register_rsvp(void)
+{
+/*        static hf_register_info hf[] = {
+                { &variable,
+                { "Name",           "rsvp.abbreviation", TYPE, VALS_POINTER }},
+        };*/
+
+        proto_rsvp = proto_register_protocol("Resource ReserVation Protocol (RSVP)", "rsvp");
+ /*       proto_register_field_array(proto_rsvp, hf, array_length(hf));*/
+}
index 350286306a66a0bb4d3f770a883b2a76487436f4..e546068d330f35ffd8bd0c362a6a96958053d1d6 100644 (file)
@@ -4,7 +4,7 @@
  * Jason Lango <jal@netapp.com>
  * Liberally copied from packet-http.c, by Guy Harris <guy@netapp.com>
  *
- * $Id: packet-rtsp.c,v 1.2 1999/07/07 22:51:53 gram Exp $
+ * $Id: packet-rtsp.c,v 1.3 1999/07/29 05:47:03 gram Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@zing.org>
@@ -40,6 +40,8 @@
 #include <glib.h>
 #include "packet.h"
 
+static int proto_rtsp = -1;
+
 static int is_rtsp_request_or_reply(const u_char *data, int linelen);
 
 static int
@@ -104,8 +106,7 @@ void dissect_rtsp(const u_char *pd, int offset, frame_data *fd,
        rtsp_tree = NULL;
 
        if (tree) {
-               ti = proto_tree_add_text(tree, offset, END_OF_FRAME,
-                       "Real Time Streaming Protocol");
+               ti = proto_tree_add_item(tree, proto_rtsp, offset, END_OF_FRAME, NULL);
                rtsp_tree = proto_item_add_subtree(ti, ETT_RTSP);
        }
 
@@ -238,3 +239,15 @@ is_rtsp_request_or_reply(const u_char *data, int linelen)
 
        return FALSE;
 }
+
+void
+proto_register_rtsp(void)
+{
+/*        static hf_register_info hf[] = {
+                { &variable,
+                { "Name",           "rtsp.abbreviation", TYPE, VALS_POINTER }},
+        };*/
+
+        proto_rtsp = proto_register_protocol("Real Time Streaming Protocol", "rtsp");
+ /*       proto_register_field_array(proto_rtsp, hf, array_length(hf));*/
+}
index c81554b7124ef031e4d03fe28f311974fd689964..8281e46321803e6bf7c3af9eae78ff36935e9758 100644 (file)
@@ -4,7 +4,7 @@
  * Jason Lango <jal@netapp.com>
  * Liberally copied from packet-http.c, by Guy Harris <guy@netapp.com>
  *
- * $Id: packet-sdp.c,v 1.2 1999/07/07 22:51:53 gram Exp $
+ * $Id: packet-sdp.c,v 1.3 1999/07/29 05:47:03 gram Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@zing.org>
@@ -40,6 +40,8 @@
 #include <glib.h>
 #include "packet.h"
 
+static int proto_sdp = -1;
+
 void dissect_sdp(const u_char *pd, int offset, frame_data *fd,
        proto_tree *tree)
 {
@@ -68,8 +70,7 @@ void dissect_sdp(const u_char *pd, int offset, frame_data *fd,
        if (!tree)
                return;
 
-       ti = proto_tree_add_text(tree, offset, END_OF_FRAME,
-               "Session Description Protocol");
+       ti = proto_tree_add_item(tree, proto_sdp, offset, END_OF_FRAME, NULL);
        sdp_tree = proto_item_add_subtree(ti, ETT_SDP);
 
        section = 0;
@@ -173,3 +174,15 @@ void dissect_sdp(const u_char *pd, int offset, frame_data *fd,
                    "Data (%d bytes)", END_OF_FRAME);
        }
 }
+
+void
+proto_register_sdp(void)
+{
+/*        static hf_register_info hf[] = {
+                { &variable,
+                { "Name",           "sdp.abbreviation", TYPE, VALS_POINTER }},
+        };*/
+
+        proto_sdp = proto_register_protocol("Session Description Protocol", "sdp");
+ /*       proto_register_field_array(proto_sdp, hf, array_length(hf));*/
+}
index 109486abe928d77edd3d0601b7ff7eda09925838..5844d41523e9fb0fe40dc573aa4f2367f043800d 100644 (file)
@@ -2,7 +2,7 @@
  * Routines for smb packet dissection
  * Copyright 1999, Richard Sharpe <rsharpe@ns.aus.com>
  *
- * $Id: packet-smb.c,v 1.20 1999/07/23 15:08:25 gram Exp $
+ * $Id: packet-smb.c,v 1.21 1999/07/29 05:47:04 gram Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@unicom.net>
@@ -48,6 +48,8 @@
 
 extern packet_info pi;
 
+static int proto_smb = -1;
+
 char *decode_smb_name(unsigned char);
 void (*dissect[256])(const u_char *, int, frame_data *, proto_tree *, int, int);
 
@@ -3197,8 +3199,7 @@ dissect_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, int
 
        if (tree) {
 
-         ti = proto_tree_add_text(tree, offset, END_OF_FRAME,
-                               "Server Message Block Protocol");
+         ti = proto_tree_add_item(tree, proto_smb, offset, END_OF_FRAME, NULL);
          smb_tree = proto_item_add_subtree(ti, ETT_SMB);
 
          /* 0xFFSMB is actually a 1 byte msg type and 3 byte server
@@ -3404,3 +3405,15 @@ dissect_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, int
 
 
 }
+
+void
+proto_register_smb(void)
+{
+/*        static hf_register_info hf[] = {
+                { &variable,
+                { "Name",           "smb.abbreviation", TYPE, VALS_POINTER }},
+        };*/
+
+        proto_smb = proto_register_protocol("Server Message Block Protocol", "smb");
+ /*       proto_register_field_array(proto_smb, hf, array_length(hf));*/
+}
index d7edc838e8f4d001d8e283dd223cf66227f2678e..d1a78aa3bcbcc093b9cc52ae93f374e7b66c7052 100644 (file)
@@ -2,7 +2,7 @@
  * Routines for SNMP (simple network management protocol)
  * D.Jorand (c) 1998
  *
- * $Id: packet-snmp.c,v 1.4 1999/07/07 22:51:54 gram Exp $
+ * $Id: packet-snmp.c,v 1.5 1999/07/29 05:47:05 gram Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@unicom.net>
@@ -63,6 +63,8 @@
 #include <ucd-snmp/snmp_impl.h>
 #include <ucd-snmp/mib.h>
 
+static int proto_snmp = -1;
+
 typedef long SNMP_INT;
 typedef unsigned  long SNMP_UINT;
 #define OID_FORMAT_STRING "%ld"
@@ -449,10 +451,10 @@ dissect_snmp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree)
                    "Unknown PDU type %#x");
                if (check_col(fd, COL_INFO))
                        col_add_str(fd, COL_INFO, pdu_type_string);
-               if(tree) {
+               if (tree) {
                        /* all_length=header_length+pdu_type_length+request_id_length+error_status_length+error_index_length; */
                        all_length=fd->pkt_len-offset;
-                       item = proto_tree_add_text(tree, offset, all_length, "Simple Network Management Protocol");
+                       item = proto_tree_add_item(tree, proto_snmp, offset, all_length, NULL);
                        snmp_tree = proto_item_add_subtree(item, ETT_SNMP);
                        proto_tree_add_text(snmp_tree, offset, header_length, "Community: \"%s\", Version: %s", community, val_to_str(version, versions, "Unknown version %#x"));
                        offset+=header_length;
@@ -480,7 +482,7 @@ dissect_snmp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree)
                        col_add_str(fd, COL_INFO, pdu_type_string);
                if(tree) {
                        all_length=fd->pkt_len-offset;
-                       item = proto_tree_add_text(tree, offset, all_length, "Simple Network Management Protocol");
+                       item = proto_tree_add_item(tree, proto_snmp, offset, all_length, NULL);
                        snmp_tree = proto_item_add_subtree(item, ETT_SNMP);
                        proto_tree_add_text(snmp_tree, offset, header_length, "Community: \"%s\", Version: %s", community, val_to_str(version, versions, "Unknown version %#x"));
                        offset+=header_length;
@@ -856,4 +858,16 @@ dissect_snmp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree)
        }
 }
 
+void
+proto_register_snmp(void)
+{
+/*        static hf_register_info hf[] = {
+                { &variable,
+                { "Name",           "snmp.abbreviation", TYPE, VALS_POINTER }},
+        };*/
+
+        proto_snmp = proto_register_protocol("Simple Network Management Protocol", "snmp");
+ /*       proto_register_field_array(proto_snmp, hf, array_length(hf));*/
+}
+
 #endif /* WITH_SNMP: CMU or UCD */
index 0f8d1204966f3990727db8a67b959fc528eece13..b1bbbdf10fd72e0cef87d675d9da36949e8088a9 100644 (file)
@@ -2,7 +2,7 @@
  * Routines for telnet packet dissection
  * Copyright 1999, Richard Sharpe <rsharpe@ns.aus.com>
  *
- * $Id: packet-telnet.c,v 1.3 1999/07/07 22:51:55 gram Exp $
+ * $Id: packet-telnet.c,v 1.4 1999/07/29 05:47:05 gram Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@unicom.net>
@@ -44,6 +44,8 @@
 #include "packet.h"
 #include "etypes.h"
 
+static int proto_telnet = -1;
+
 /* Some defines for Telnet */
 
 #define TN_IAC   255
@@ -331,8 +333,7 @@ dissect_telnet(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, i
 
          memcpy(rr, pd + offset, max_data);
 
-         ti = proto_tree_add_text(tree, offset, END_OF_FRAME,
-                               "Telnet Protocol");
+         ti = proto_tree_add_item(tree, proto_telnet, offset, END_OF_FRAME, NULL);
          telnet_tree = proto_item_add_subtree(ti, ETT_TELNET);
 
          i1 = i2 = i3 = 0;
@@ -374,8 +375,14 @@ dissect_telnet(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, i
 
 }
 
+void
+proto_register_telnet(void)
+{
+/*        static hf_register_info hf[] = {
+                { &variable,
+                { "Name",           "telnet.abbreviation", TYPE, VALS_POINTER }},
+        };*/
 
-
-
-
-
+        proto_telnet = proto_register_protocol("Telnet", "telnet");
+ /*       proto_register_field_array(proto_telnet, hf, array_length(hf));*/
+}
index 221ef1ae9e46042ab686b71c9abac4624dda3cb8..fd6815588899d2c1994f0482da89cb6698b28892 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Richard Sharpe <rsharpe@ns.aus.com>
  *
- * $Id: packet-tftp.c,v 1.4 1999/07/07 22:51:56 gram Exp $
+ * $Id: packet-tftp.c,v 1.5 1999/07/29 05:47:06 gram Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@unicom.net>
@@ -41,6 +41,8 @@
 #include <glib.h>
 #include "packet.h"
 
+static int proto_tftp = -1;
+
 #define        RRQ     1
 #define        WRQ     2
 #define        DATA    3
@@ -88,8 +90,7 @@ dissect_tftp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree)
 
        if (tree) {
 
-         ti = proto_tree_add_text(tree, offset, END_OF_FRAME,
-                               "Trivial File Transfer Protocol");
+         ti = proto_tree_add_item(tree, proto_tftp, offset, END_OF_FRAME, NULL);
          tftp_tree = proto_item_add_subtree(ti, ETT_TFTP);
 
          switch (i1 = pntohs(pd+offset)) {
@@ -142,3 +143,15 @@ dissect_tftp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree)
 
        }
 }
+
+void
+proto_register_tftp(void)
+{
+/*        static hf_register_info hf[] = {
+                { &variable,
+                { "Name",           "tftp.abbreviation", TYPE, VALS_POINTER }},
+        };*/
+
+        proto_tftp = proto_register_protocol("Trivial File Transfer Protocol", "tftp");
+ /*       proto_register_field_array(proto_tftp, hf, array_length(hf));*/
+}
index 3aa811da3a5a4529178c7c83a13f99f52039eb75..28051d30a196da6b03c05af530467c61a4bd57a9 100644 (file)
@@ -2,7 +2,7 @@
  * Routines for Token-Ring packet disassembly
  * Gilbert Ramirez <gram@verdict.uthscsa.edu>
  *
- * $Id: packet-tr.c,v 1.16 1999/07/15 15:32:42 gram Exp $
+ * $Id: packet-tr.c,v 1.17 1999/07/29 05:47:06 gram Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@unicom.net>
 #include "packet.h"
 #include "etypes.h"
        
-int proto_tr = -1;
-int hf_tr_dst = -1;
-int hf_tr_src = -1;
-int hf_tr_dst_vendor = -1;
-int hf_tr_src_vendor = -1;
-int hf_tr_sr = -1;
-int hf_tr_ac = -1;
-int hf_tr_priority = -1;
-int hf_tr_frame = -1;
-int hf_tr_monitor_cnt = -1;
-int hf_tr_priority_reservation = -1;
-int hf_tr_fc = -1;
-int hf_tr_fc_type = -1;
-int hf_tr_fc_pcf = -1;
-int hf_tr_rif_bytes = -1;
-int hf_tr_broadcast = -1;
-int hf_tr_max_frame_size = -1;
-int hf_tr_direction = -1;
-int hf_tr_rif = -1;
-int hf_tr_rif_ring = -1;
-int hf_tr_rif_bridge = -1;
+static int proto_tr = -1;
+static int hf_tr_dst = -1;
+static int hf_tr_src = -1;
+static int hf_tr_dst_vendor = -1;
+static int hf_tr_src_vendor = -1;
+static int hf_tr_sr = -1;
+static int hf_tr_ac = -1;
+static int hf_tr_priority = -1;
+static int hf_tr_frame = -1;
+static int hf_tr_monitor_cnt = -1;
+static int hf_tr_priority_reservation = -1;
+static int hf_tr_fc = -1;
+static int hf_tr_fc_type = -1;
+static int hf_tr_fc_pcf = -1;
+static int hf_tr_rif_bytes = -1;
+static int hf_tr_broadcast = -1;
+static int hf_tr_max_frame_size = -1;
+static int hf_tr_direction = -1;
+static int hf_tr_rif = -1;
+static int hf_tr_rif_ring = -1;
+static int hf_tr_rif_bridge = -1;
        
 static const value_string ac_vals[] = {
        { 0,    "Token" },
index ff58766fc8f5d740183543086386d3fd657edc39..67d6f04d5d2c7374dc7a839046c37b37b07f8c24 100644 (file)
@@ -2,7 +2,7 @@
  * Routines for Token-Ring Media Access Control
  * Gilbert Ramirez <gram@verdict.uthscsa.edu>
  *
- * $Id: packet-trmac.c,v 1.12 1999/07/07 22:51:56 gram Exp $
+ * $Id: packet-trmac.c,v 1.13 1999/07/29 05:47:06 gram Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@unicom.net>
@@ -35,6 +35,8 @@
 #include <glib.h>
 #include "packet.h"
 
+static int proto_trmac = -1;
+
 /* Major Vector */
 static value_string major_vectors[] = {
                { 0x00, "Response" },
@@ -252,12 +254,6 @@ dissect_trmac(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) {
 
        mv_length = pntohs(&pd[offset]);
 
-       if (tree) {
-               ti = proto_tree_add_text(tree, offset, mv_length,
-                       "Media Access Control");
-               mac_tree = proto_item_add_subtree(ti, ETT_TR_MAC);
-       }
-
        /* Interpret the major vector */
        mv_text = val_to_str(pd[offset+3], major_vectors, "Unknown Major Vector: %d\n");
 
@@ -268,6 +264,10 @@ dissect_trmac(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) {
                col_add_str(fd, COL_INFO, mv_text);
 
        if (tree) {
+
+               ti = proto_tree_add_item(tree, proto_trmac, offset, mv_length, NULL);
+               mac_tree = proto_item_add_subtree(ti, ETT_TR_MAC);
+
                if (mv_text)
                        proto_tree_add_text(mac_tree, offset+3, 1, "Major Vector Command: %s",
                                                        mv_text);
@@ -298,3 +298,15 @@ dissect_trmac(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) {
                }
        }
 }
+
+void
+proto_register_trmac(void)
+{
+/*        static hf_register_info hf[] = {
+                { &variable,
+                { "Name",           "trmac.abbreviation", TYPE, VALS_POINTER }},
+        };*/
+
+        proto_trmac = proto_register_protocol("Token-Ring Media Access Control", "trmac");
+ /*       proto_register_field_array(proto_trmac, hf, array_length(hf));*/
+}
diff --git a/proto.c b/proto.c
index 7ac2af629430aa8c54df591cb4da90ef87de1614..bec1c73a12b3a85fb88d87d722d8aca664b66eb8 100644 (file)
--- a/proto.c
+++ b/proto.c
@@ -1,7 +1,7 @@
 /* proto.c
  * Routines for protocol tree
  *
- * $Id: proto.c,v 1.4 1999/07/22 16:41:22 gram Exp $
+ * $Id: proto.c,v 1.5 1999/07/29 05:47:07 gram Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@zing.org>
@@ -80,17 +80,51 @@ static int proto_register_field_init(header_field_info *hfinfo, int parent);
 void dfilter_yacc_init(void);
 
 /* centralization of registration functions */
+void proto_register_aarp(void);
+void proto_register_arp(void);
+void proto_register_atalk(void);
+void proto_register_bootp(void);
+void proto_register_cdp(void);
 void proto_register_data(void);
+void proto_register_dns(void);
 void proto_register_eth(void);
 void proto_register_fddi(void);
 void proto_register_frame(void);
+void proto_register_ftp(void);
+void proto_register_giop(void);
+void proto_register_gre(void);
+void proto_register_http(void);
+void proto_register_icmp(void);
+void proto_register_icmpv6(void);
 void proto_register_igmp(void);
 void proto_register_ip(void);
+void proto_register_ipsec(void);
+void proto_register_ipv6(void);
 void proto_register_ipx(void);
+void proto_register_isakmp(void);
 void proto_register_llc(void);
+void proto_register_nbipx(void);
+void proto_register_nbt(void);
+void proto_register_ncp(void);
+void proto_register_nntp(void);
 void proto_register_null(void);
+void proto_register_osi(void);
+void proto_register_ospf(void);
+void proto_register_pop(void);
+void proto_register_ppp(void);
+void proto_register_rip(void);
+void proto_register_rsvp(void);
+void proto_register_rtsp(void);
+void proto_register_sdp(void);
+void proto_register_smb(void);
+#if defined(WITH_SNMP_CMU) || defined(WITH_SNMP_UCD)
+void proto_register_snmp(void);
+#endif
+void proto_register_telnet(void);
+void proto_register_tftp(void);
 void proto_register_tcp(void);
 void proto_register_tr(void);
+void proto_register_trmac(void);
 void proto_register_udp(void);
 
 /* special-case header field used within proto.c */
@@ -138,17 +172,51 @@ proto_init(void)
        /* Have each dissector register its protocols and fields. The
         * order doesn't matter. Put the calls in alphabetical order
         * just to make it easy. */
+       proto_register_aarp();
+       proto_register_arp();
+       proto_register_atalk();
+       proto_register_bootp();
+       proto_register_cdp();
        proto_register_data();
+       proto_register_dns();
        proto_register_eth();
        proto_register_fddi();
        proto_register_frame();
+       proto_register_ftp();
+       proto_register_giop();
+       proto_register_gre();
+       proto_register_http();
+       proto_register_icmp();
+       proto_register_icmpv6();
        proto_register_igmp();
        proto_register_ip();
+       proto_register_ipsec();
+       proto_register_ipv6();
        proto_register_ipx();
+       proto_register_isakmp();
        proto_register_llc();
+       proto_register_nbipx();
+       proto_register_nbt();
+       proto_register_ncp();
+       proto_register_nntp();
        proto_register_null();
-       proto_register_tr();
+       proto_register_osi();
+       proto_register_ospf();
+       proto_register_pop();
+       proto_register_ppp();
+       proto_register_rip();
+       proto_register_rsvp();
+       proto_register_rtsp();
+       proto_register_sdp();
+       proto_register_smb();
+#if defined(WITH_SNMP_CMU) || defined(WITH_SNMP_UCD)
+       proto_register_snmp();
+#endif
+       proto_register_telnet();
+       proto_register_tftp();
        proto_register_tcp();
+       proto_register_tr();
+       proto_register_trmac();
        proto_register_udp();
 
        /* Register one special-case FT_TEXT_ONLY field for use when