Export "protocol_t" as an opaque type.
authorguy <guy@f5534014-38df-0310-8fa8-9805f1628bb7>
Sun, 16 Nov 2003 23:17:27 +0000 (23:17 +0000)
committerguy <guy@f5534014-38df-0310-8fa8-9805f1628bb7>
Sun, 16 Nov 2003 23:17:27 +0000 (23:17 +0000)
Make "proto_is_protocol_enabled()" and "proto_get_protocol_short_name()"
take a "protocol_t *" as an argument, so they don't have to look up the
"protocol_t" - this will probably speed them up considerably, and
they're called on almost every dissector handoff.

Get rid of a number of "proto_is_protocol_enabled()" calls that aren't
necessary (dissectors called through handles, including those called
through dissector tables, or called as heuristic dissectors, aren't even
called if their protocol isn't enabled).

Change some direct dissector calls to go through handles.

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

42 files changed:
Makefile.am
disabled_protos.c
epan/packet.c
epan/proto.c
epan/proto.h
gtk/dfilter_expr_dlg.c
gtk/help_dlg.c
gtk/proto_dlg.c
packet-alcap.c
packet-ansi_637.c
packet-ansi_683.c
packet-ansi_a.c
packet-ansi_map.c
packet-atalk.c
packet-clnp.c
packet-dcerpc.c
packet-dcerpc.h
packet-dvmrp.c
packet-fcip.c
packet-giop.c
packet-giop.h
packet-gsm_a.c
packet-gsm_sms.c
packet-gssapi.c
packet-gssapi.h
packet-iscsi.c
packet-mrdisc.c
packet-msnip.c
packet-pim.c
packet-ppp.c
packet-rpc.c
packet-rpc.h
packet-smb-browse.c
packet-smb-browse.h
packet-smb-logon.c
packet-smb-logon.h [deleted file]
packet-smb-mailslot.c
packet-smb-pipe.c
packet-snmp.c
packet-tpkt.c
plugins/plugin_api_list.c
prefs.c

index aef364b22268cb9e85997450092df957f9f96d3c..028e1c7da7a3cd27aafd8547ae57ed0169611647 100644 (file)
@@ -1,7 +1,7 @@
 # Makefile.am
 # Automake file for Ethereal
 #
-# $Id: Makefile.am,v 1.652 2003/11/16 23:11:17 sahlberg Exp $
+# $Id: Makefile.am,v 1.653 2003/11/16 23:17:14 guy Exp $
 #
 # Ethereal - Network traffic analyzer
 # By Gerald Combs <gerald@ethereal.com>
@@ -709,7 +709,6 @@ noinst_HEADERS = \
        packet-sll.h   \
        packet-smb-browse.h \
        packet-smb-common.h \
-       packet-smb-logon.h \
        packet-smb-mailslot.h \
        packet-smb-pipe.h \
        packet-smb-sidsnooping.h \
index f2cb3ce9ec9dba0a367a2e874d1ab8c83b8b4e84..bb3c68e840542ee98d2c29b7e7c9cab56665f424 100644 (file)
@@ -1,7 +1,7 @@
 /* disabled_protos.c
  * Code for reading and writing the disabled protocols file.
  *
- * $Id: disabled_protos.c,v 1.2 2003/08/07 01:05:06 guy Exp $
+ * $Id: disabled_protos.c,v 1.3 2003/11/16 23:17:15 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -272,6 +272,7 @@ save_disabled_protos_list(char **pref_path_return, int *errno_return)
   gchar      *ff_path, *ff_path_new, *ff_name;
   FILE       *ff;
   gint        i;
+  protocol_t *protocol;
   void       *cookie;
 
   *pref_path_return = NULL;    /* assume no error */
@@ -302,7 +303,8 @@ save_disabled_protos_list(char **pref_path_return, int *errno_return)
       continue;
     }
 
-    if (proto_is_protocol_enabled(i)) {
+    protocol = find_protocol_by_id(i);
+    if (proto_is_protocol_enabled(protocol)) {
       continue;
     }
 
index bc15ec865f1ce9ad1e4c5ed6dbc5cc2eb05f353b..b99cbd5c5e75b2fbac73b573c6118c29bacbc9a6 100644 (file)
@@ -1,7 +1,7 @@
 /* packet.c
  * Routines for packet disassembly
  *
- * $Id: packet.c,v 1.97 2003/09/09 18:09:42 guy Exp $
+ * $Id: packet.c,v 1.98 2003/11/16 23:17:24 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -339,7 +339,7 @@ struct dissector_handle {
                dissector_t     old;
                new_dissector_t new;
        } dissector;
-       int             proto_index;
+       protocol_t      *protocol;
 };
 
 static int
@@ -351,9 +351,9 @@ call_dissector_through_handle(dissector_handle_t handle, tvbuff_t *tvb,
 
        saved_proto = pinfo->current_proto;
 
-       if (handle->proto_index != -1) {
+       if (handle->protocol != NULL) {
                pinfo->current_proto =
-                   proto_get_protocol_short_name(handle->proto_index);
+                   proto_get_protocol_short_name(handle->protocol);
        }
 
        if (handle->is_new)
@@ -399,8 +399,8 @@ call_dissector_work(dissector_handle_t handle, tvbuff_t *tvb,
        volatile address save_src;
        volatile address save_dst;
 
-       if (handle->proto_index != -1 &&
-           !proto_is_protocol_enabled(handle->proto_index)) {
+       if (handle->protocol != NULL &&
+           !proto_is_protocol_enabled(handle->protocol)) {
                /*
                 * The protocol isn't enabled.
                 */
@@ -419,9 +419,9 @@ call_dissector_work(dissector_handle_t handle, tvbuff_t *tvb,
         * offers this service can use it.
         */
        pinfo->can_desegment = saved_can_desegment-(saved_can_desegment>0);
-       if (handle->proto_index != -1) {
+       if (handle->protocol != NULL) {
                pinfo->current_proto =
-                   proto_get_protocol_short_name(handle->proto_index);
+                   proto_get_protocol_short_name(handle->protocol);
        }
 
        if (pinfo->in_error_pkt) {
@@ -1103,7 +1103,7 @@ dissector_table_foreach_func (gpointer key, gpointer value, gpointer user_data)
 
        dtbl_entry = value;
        if (dtbl_entry->current == NULL ||
-           dtbl_entry->current->proto_index == -1) {
+           dtbl_entry->current->protocol == NULL) {
                /*
                 * Either there is no dissector for this entry, or
                 * the dissector doesn't have a protocol associated
@@ -1362,7 +1362,7 @@ static GHashTable *heur_dissector_lists = NULL;
 
 typedef struct {
        heur_dissector_t dissector;
-       int     proto_index;
+       protocol_t *protocol;
 } heur_dtbl_entry_t;
 
 /* Finds a heuristic dissector table by field name. */
@@ -1384,7 +1384,7 @@ heur_dissector_add(const char *name, heur_dissector_t dissector, int proto)
 
        dtbl_entry = g_malloc(sizeof (heur_dtbl_entry_t));
        dtbl_entry->dissector = dissector;
-       dtbl_entry->proto_index = proto;
+       dtbl_entry->protocol = find_protocol_by_id(proto);
 
        /* do the table insertion */
        *sub_dissectors = g_slist_append(*sub_dissectors, (gpointer)dtbl_entry);
@@ -1413,17 +1413,17 @@ dissector_try_heuristic(heur_dissector_list_t sub_dissectors,
        for (entry = sub_dissectors; entry != NULL; entry = g_slist_next(entry)) {
                pinfo->can_desegment = saved_can_desegment-(saved_can_desegment>0);
                dtbl_entry = (heur_dtbl_entry_t *)entry->data;
-               if (dtbl_entry->proto_index != -1 &&
-                   !proto_is_protocol_enabled(dtbl_entry->proto_index)) {
+               if (dtbl_entry->protocol != NULL &&
+                   !proto_is_protocol_enabled(dtbl_entry->protocol)) {
                        /*
                         * No - don't try this dissector.
                         */
                        continue;
                }
 
-               if (dtbl_entry->proto_index != -1) {
+               if (dtbl_entry->protocol != NULL) {
                        pinfo->current_proto =
-                           proto_get_protocol_short_name(dtbl_entry->proto_index);
+                           proto_get_protocol_short_name(dtbl_entry->protocol);
                }
                if ((*dtbl_entry->dissector)(tvb, pinfo, tree)) {
                        status = TRUE;
@@ -1469,14 +1469,14 @@ static GHashTable *registered_dissectors = NULL;
 char *
 dissector_handle_get_short_name(dissector_handle_t handle)
 {
-       return proto_get_protocol_short_name(handle->proto_index);
+       return proto_get_protocol_short_name(handle->protocol);
 }
 
 /* Get the index of the protocol for a dissector handle. */
 int
 dissector_handle_get_protocol_index(dissector_handle_t handle)
 {
-       return handle->proto_index;
+       return proto_get_id(handle->protocol);
 }
 
 /* Find a registered dissector by name. */
@@ -1497,7 +1497,7 @@ create_dissector_handle(dissector_t dissector, int proto)
        handle->name = NULL;
        handle->is_new = FALSE;
        handle->dissector.old = dissector;
-       handle->proto_index = proto;
+       handle->protocol = find_protocol_by_id(proto);
 
        return handle;
 }
@@ -1511,7 +1511,7 @@ new_create_dissector_handle(new_dissector_t dissector, int proto)
        handle->name = NULL;
        handle->is_new = TRUE;
        handle->dissector.new = dissector;
-       handle->proto_index = proto;
+       handle->protocol = find_protocol_by_id(proto);
 
        return handle;
 }
@@ -1535,7 +1535,7 @@ register_dissector(const char *name, dissector_t dissector, int proto)
        handle->name = name;
        handle->is_new = FALSE;
        handle->dissector.old = dissector;
-       handle->proto_index = proto;
+       handle->protocol = find_protocol_by_id(proto);
 
        g_hash_table_insert(registered_dissectors, (gpointer)name,
            (gpointer) handle);
@@ -1559,7 +1559,7 @@ new_register_dissector(const char *name, new_dissector_t dissector, int proto)
        handle->name = name;
        handle->is_new = TRUE;
        handle->dissector.new = dissector;
-       handle->proto_index = proto;
+       handle->protocol = find_protocol_by_id(proto);
 
        g_hash_table_insert(registered_dissectors, (gpointer)name,
            (gpointer) handle);
@@ -1579,7 +1579,7 @@ call_dissector(dissector_handle_t handle, tvbuff_t *tvb,
                 * it.  Just dissect this packet as data.
                 */
                g_assert(data_handle != NULL);
-               g_assert(data_handle->proto_index != -1);
+               g_assert(data_handle->protocol != NULL);
                call_dissector(data_handle, tvb, pinfo, tree);
                return tvb_length(tvb);
        }
index 23d14ebd7b37792abd2acca204d5a697ea905a2f..8e1aa05e04531763a0351ec3bbc3af5d182e8db6 100644 (file)
@@ -1,7 +1,7 @@
 /* proto.c
  * Routines for protocol tree
  *
- * $Id: proto.c,v 1.102 2003/11/13 23:38:33 guy Exp $
+ * $Id: proto.c,v 1.103 2003/11/16 23:17:24 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -128,7 +128,7 @@ static int g_strcmp(gconstpointer a, gconstpointer b);
 int hf_text_only = -1;
 
 /* Structure for information about a protocol */
-typedef struct {
+struct _protocol {
        char    *name;          /* long description */
        char    *short_name;    /* short description */
        char    *filter_name;   /* name of this protocol in filters */
@@ -137,9 +137,7 @@ typedef struct {
        GList   *last_field;    /* pointer to end of list of fields */
        gboolean is_enabled;    /* TRUE if protocol is enabled */
        gboolean can_disable;   /* TRUE if protocol can be disabled */
-} protocol_t;
-
-static protocol_t *find_protocol_by_id(int proto_id);
+};
 
 /* List of all protocols */
 static GList *protocols;
@@ -2199,7 +2197,7 @@ compare_proto_id(gconstpointer proto_arg, gconstpointer id_arg)
        return (protocol->proto_id == *id_ptr) ? 0 : 1;
 }
 
-static protocol_t *
+protocol_t *
 find_protocol_by_id(int proto_id)
 {
        GList *list_entry;
@@ -2219,6 +2217,12 @@ static gint compare_filter_name(gconstpointer proto_arg,
        return (strcmp(protocol->filter_name, f_name));
 }
 
+int
+proto_get_id(protocol_t *protocol)
+{
+       return protocol->proto_id;
+}
+
 int proto_get_id_by_filter_name(gchar* filter_name)
 {
        GList *list_entry;
@@ -2242,13 +2246,10 @@ proto_get_protocol_name(int proto_id)
 }
 
 char *
-proto_get_protocol_short_name(int proto_id)
+proto_get_protocol_short_name(protocol_t *protocol)
 {
-       protocol_t *protocol;
-
-       if (proto_id == -1)
+       if (protocol == NULL)
                return "(none)";
-       protocol = find_protocol_by_id(proto_id);
        return protocol->short_name;
 }
 
@@ -2262,11 +2263,8 @@ proto_get_protocol_filter_name(int proto_id)
 }
 
 gboolean
-proto_is_protocol_enabled(int proto_id)
+proto_is_protocol_enabled(protocol_t *protocol)
 {
-       protocol_t *protocol;
-
-       protocol = find_protocol_by_id(proto_id);
        return protocol->is_enabled;
 }
 
index 610b00e5be7f5d4e9cc657fa0bb38fe9294fa9a4..d0a47ff5bb779f6632124ad254f758f6c1fed6b9 100644 (file)
@@ -1,7 +1,7 @@
 /* proto.h
  * Definitions for protocol display
  *
- * $Id: proto.h,v 1.42 2003/10/29 23:48:13 guy Exp $
+ * $Id: proto.h,v 1.43 2003/11/16 23:17:25 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -49,12 +49,16 @@ struct _value_string;
 /* ... and similarly, */
 #define TFS(x) (const struct true_false_string*)(x)
 
+struct _protocol;
+
+typedef struct _protocol protocol_t;
 /* check protocol activation */
 #define CHECK_DISPLAY_AS_X(x_handle,index, tvb, pinfo, tree) { \
-       if (!proto_is_protocol_enabled(index)) {                \
-               call_dissector(x_handle,tvb, pinfo, tree);      \
-               return;                                         \
-       }                                                       \
+       if (!proto_is_protocol_enabled(find_protocol_by_id(index))) {   \
+               call_dissector(x_handle,tvb, pinfo, tree);              \
+               return;                                                 \
+       }                                                               \
   }
 
 enum {
@@ -98,7 +102,6 @@ typedef struct hf_register_info {
        header_field_info       hfinfo;
 } hf_register_info;
 
-
 /* Contains the field information for the proto_item. */
 typedef struct field_info {
        header_field_info               *hfinfo;
@@ -538,8 +541,8 @@ extern int proto_registrar_get_parent(int n);
 /* Is item #n a protocol? */
 extern gboolean proto_registrar_is_protocol(int n);
 
-/* Is item #n decoding enabled ? */
-extern gboolean proto_is_protocol_enabled(int proto_id);
+/* Is protocol's decoding enabled ? */
+extern gboolean proto_is_protocol_enabled(protocol_t *protocol);
 
 /* Can item #n decoding be disabled? */
 extern gboolean proto_can_disable_protocol(int proto_id);
@@ -552,14 +555,20 @@ extern int proto_get_next_protocol(void **cookie);
 extern header_field_info *proto_get_first_protocol_field(int proto_id, void **cookle);
 extern header_field_info *proto_get_next_protocol_field(void **cookle);
 
-/* Given a protocol's filter_name, return it's proto_id */
+/* Given a protocol's "protocol_t", return its proto_id */
+extern int proto_get_id(protocol_t *protocol);
+
+/* Given a protocol's filter_name, return its proto_id */
 extern int proto_get_id_by_filter_name(gchar* filter_name);
 
+/* Given a protocol's item number, find the "protocol_t" structure for it */
+extern protocol_t *find_protocol_by_id(int proto_id);
+
 /* Given a protocol's item number, return its name. */
 extern char *proto_get_protocol_name(int n);
 
-/* Given a protocol's item number, return its short name. */
-extern char *proto_get_protocol_short_name(int proto_id);
+/* Given a protocol's "protocol_t", return its short name. */
+extern char *proto_get_protocol_short_name(protocol_t *protocol);
 
 /* Given a protocol's item number, return its filter name. */
 extern char *proto_get_protocol_filter_name(int proto_id);
index 7318583fbbad88925f509c867e18fd5a373715ee..8eb655b578d21392d44b7a3654facf255e8e635c 100644 (file)
@@ -7,7 +7,7 @@
  * Copyright 2000, Jeffrey C. Foster <jfoste@woodward.com> and
  * Guy Harris <guy@alum.mit.edu>
  *
- * $Id: dfilter_expr_dlg.c,v 1.42 2003/10/29 23:15:35 guy Exp $
+ * $Id: dfilter_expr_dlg.c,v 1.43 2003/11/16 23:17:25 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -1093,6 +1093,7 @@ dfilter_expr_dlg_new(GtkWidget *filter_te)
     GtkWidget *list_bb, *alignment, *accept_bt, *close_bt;
     header_field_info       *hfinfo;
     int i;
+    protocol_t *protocol;
 #if GTK_MAJOR_VERSION < 2
     int len;
     void *cookie;
@@ -1306,7 +1307,8 @@ dfilter_expr_dlg_new(GtkWidget *filter_te)
         hfinfo = proto_registrar_get_nth(i);
         /* Create a node for the protocol, and remember it for
            later use. */
-        name = proto_get_protocol_short_name(i); /* name, short_name or filter name ? */
+        protocol = find_protocol_by_id(i);
+        name = proto_get_protocol_short_name(protocol); /* name, short_name or filter name ? */
         protocol_node = gtk_ctree_insert_node(GTK_CTREE(tree),
                                               NULL, NULL,
                                               &name, 5,
@@ -1381,7 +1383,8 @@ dfilter_expr_dlg_new(GtkWidget *filter_te)
        char *strp, str[TAG_STRING_LEN+1];
 
        hfinfo = proto_registrar_get_nth(i);
-       name = proto_get_protocol_short_name(i); /* name, short_name or filter name ? */
+        protocol = find_protocol_by_id(i);
+       name = proto_get_protocol_short_name(protocol); /* name, short_name or filter name ? */
 
        gtk_tree_store_append(store, &iter, NULL);
        gtk_tree_store_set(store, &iter, 0, name, 1, hfinfo, -1);
index b48a67040fb196df7358c1ba78ac4523c459ffb3..c139d74632b24837f5c43ae7db2dd70f6de6b429 100644 (file)
@@ -1,6 +1,6 @@
 /* help_dlg.c
  *
- * $Id: help_dlg.c,v 1.35 2003/08/25 21:42:33 guy Exp $
+ * $Id: help_dlg.c,v 1.36 2003/11/16 23:17:26 guy Exp $
  *
  * Laurent Deniel <laurent.deniel@free.fr>
  *
@@ -420,6 +420,7 @@ static void set_help_text(GtkWidget *w, help_type_t type)
 #endif
   const char *type_name;
   void *cookie, *cookie2;
+  protocol_t *protocol;
   char *name, *short_name, *filter_name;
   int namel = 0, short_namel = 0, filter_namel = 0;
   int count, fcount;
@@ -449,8 +450,9 @@ static void set_help_text(GtkWidget *w, help_type_t type)
     for (i = proto_get_first_protocol(&cookie); i != -1;
          i = proto_get_next_protocol(&cookie)) {
            count++;
+           protocol = find_protocol_by_id(i);
            name = proto_get_protocol_name(i);
-           short_name = proto_get_protocol_short_name(i);
+           short_name = proto_get_protocol_short_name(protocol);
            filter_name = proto_get_protocol_filter_name(i);
            if ((len = strlen(name)) > namel)
                    namel = len;
@@ -473,8 +475,9 @@ static void set_help_text(GtkWidget *w, help_type_t type)
     /* ok, display the correctly aligned strings */
     for (i = proto_get_first_protocol(&cookie); i != -1;
          i = proto_get_next_protocol(&cookie)) {
+           protocol = find_protocol_by_id(i);
            name = proto_get_protocol_name(i);
-           short_name = proto_get_protocol_short_name(i);
+           short_name = proto_get_protocol_short_name(protocol);
            filter_name = proto_get_protocol_filter_name(i);
  
            /* the name used for sorting in the left column */
@@ -535,8 +538,9 @@ static void set_help_text(GtkWidget *w, help_type_t type)
     fcount = 0;
     for (i = proto_get_first_protocol(&cookie); i != -1;
          i = proto_get_next_protocol(&cookie)) {
+           protocol = find_protocol_by_id(i);
            name = proto_get_protocol_name(i);
-           short_name = proto_get_protocol_short_name(i);
+           short_name = proto_get_protocol_short_name(protocol);
            filter_name = proto_get_protocol_filter_name(i);
 
            count = 0;
index 1477bb0c2e3bee1b482c19706f6c45222fa9d17d..7c54f08d9405da2b5432bbe3033f43c8808b864c 100644 (file)
@@ -1,6 +1,6 @@
 /* proto_dlg.c
  *
- * $Id: proto_dlg.c,v 1.26 2003/08/07 00:41:28 guy Exp $
+ * $Id: proto_dlg.c,v 1.27 2003/11/16 23:17:26 guy Exp $
  *
  * Laurent Deniel <laurent.deniel@free.fr>
  *
@@ -501,8 +501,10 @@ set_proto_selection(GtkWidget *parent_w _U_)
 
   for (entry = protocol_list; entry != NULL; entry = g_slist_next(entry)) {
     protocol_data_t *p = entry->data;
+    protocol_t *protocol;
 
-    if (proto_is_protocol_enabled(p->hfinfo_index) != p->enabled) {
+    protocol = find_protocol_by_id(p->hfinfo_index);
+    if (proto_is_protocol_enabled(protocol) != p->enabled) {
       proto_set_decoding(p->hfinfo_index, p->enabled);
       need_redissect = TRUE;
     }
@@ -523,8 +525,10 @@ revert_proto_selection(void)
    */
   for (entry = protocol_list; entry != NULL; entry = g_slist_next(entry)) {
     protocol_data_t *p = entry->data;
+    protocol_t *protocol;
 
-    if (proto_is_protocol_enabled(p->hfinfo_index) != p->was_enabled) {
+    protocol = find_protocol_by_id(p->hfinfo_index);
+    if (proto_is_protocol_enabled(protocol) != p->was_enabled) {
       proto_set_decoding(p->hfinfo_index, p->was_enabled);
       need_redissect = TRUE;
     }
@@ -553,6 +557,7 @@ show_proto_selection(GtkListStore *proto_store)
   GSList *entry;
   gint i;
   void *cookie;
+  protocol_t *protocol;
   protocol_data_t *p;
 #if GTK_MAJOR_VERSION < 2
   gchar *proto_text[3];
@@ -564,10 +569,11 @@ show_proto_selection(GtkListStore *proto_store)
        i = proto_get_next_protocol(&cookie)) {
       if (proto_can_disable_protocol(i)) {
         p = g_malloc(sizeof(protocol_data_t));
+        protocol = find_protocol_by_id(i);
         p->name = proto_get_protocol_name(i);
-        p->abbrev = proto_get_protocol_short_name(i);
+        p->abbrev = proto_get_protocol_short_name(protocol);
         p->hfinfo_index = i;
-        p->enabled = proto_is_protocol_enabled(i);
+        p->enabled = proto_is_protocol_enabled(protocol);
        p->was_enabled = p->enabled;
         protocol_list = g_slist_insert_sorted(protocol_list,
                                            p, protocol_data_compare);
index ae90a787fdb2fe9f1fc5c8c056afffd6f241cd33..cf40b82a3cccd871e79cf7565b00d82ed782febd 100644 (file)
@@ -6,7 +6,7 @@
  * Copyright 2003, Michael Lum <mlum [AT] telostech.com>
  * In association with Telos Technology Inc.
  *
- * $Id: packet-alcap.c,v 1.3 2003/10/06 19:25:20 guy Exp $
+ * $Id: packet-alcap.c,v 1.4 2003/11/16 23:17:15 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -1666,12 +1666,6 @@ dissect_alcap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
     proto_item *alcap_item;
     proto_tree *alcap_tree = NULL;
 
-    if (!proto_is_protocol_enabled(proto_alcap))
-    {
-       call_dissector(data_handle,tvb, pinfo, tree);
-       return;
-    }
-
     g_pinfo = pinfo;
 
     /*
index 88fbc3cddcfaaed6c41a77fee2fc58f94a2941d0..36f0ea4eb4e97638143417525cd16ed4aead2ada 100644 (file)
@@ -9,7 +9,7 @@
  *   Short Message Service
  *                     3GPP2 C.S0015-0         TIA/EIA-637-A
  *
- * $Id: packet-ansi_637.c,v 1.2 2003/10/22 20:59:01 guy Exp $
+ * $Id: packet-ansi_637.c,v 1.3 2003/11/16 23:17:15 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -1674,12 +1674,6 @@ dissect_ansi_637_tele(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
     proto_tree *ansi_637_tree = NULL;
     gchar      *str = NULL;
 
-    if (!proto_is_protocol_enabled(proto_ansi_637_tele))
-    {
-       call_dissector(data_handle,tvb, pinfo, tree);
-       return;
-    }
-
     if (check_col(pinfo->cinfo, COL_PROTOCOL))
     {
        col_set_str(pinfo->cinfo, COL_PROTOCOL, ansi_proto_name_short);
@@ -1792,12 +1786,6 @@ dissect_ansi_637_trans(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
     guint8     oct;
     guint8     len;
 
-    if (!proto_is_protocol_enabled(proto_ansi_637_trans))
-    {
-       call_dissector(data_handle,tvb, pinfo, tree);
-       return;
-    }
-
     if (check_col(pinfo->cinfo, COL_PROTOCOL))
     {
        col_set_str(pinfo->cinfo, COL_PROTOCOL, ansi_proto_name_short);
index 6b8e05aa00c76876d49c357daae9b347be2cddcc..b87ae2bb50f1863c94463cac15e9c2b37a765eda 100644 (file)
@@ -4,7 +4,7 @@
  * Copyright 2003, Michael Lum <mlum [AT] telostech.com>
  * In association with Telos Technology Inc.
  *
- * $Id: packet-ansi_683.c,v 1.2 2003/10/23 00:16:20 guy Exp $
+ * $Id: packet-ansi_683.c,v 1.3 2003/11/16 23:17:16 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -2029,12 +2029,6 @@ dissect_ansi_683(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
     proto_item *ansi_683_item;
     proto_tree *ansi_683_tree = NULL;
 
-    if (!proto_is_protocol_enabled(proto_ansi_683))
-    {
-       call_dissector(data_handle,tvb, pinfo, tree);
-       return;
-    }
-
     g_pinfo = pinfo;
 
     if (check_col(pinfo->cinfo, COL_PROTOCOL))
index c85042918c5b8749ecda288fa1faf4546a55059e..1f9643ac9fb957ed33952f3894d5a938f4c216b9 100644 (file)
@@ -10,7 +10,7 @@
  *   2000 Access Network Interfaces
  *                     3GPP2 A.S0001-1         TIA/EIA-2001
  *
- * $Id: packet-ansi_a.c,v 1.9 2003/11/11 05:51:09 guy Exp $
+ * $Id: packet-ansi_a.c,v 1.10 2003/11/16 23:17:16 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -7979,13 +7979,6 @@ dissect_bsmap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
     proto_tree *bsmap_tree = NULL;
     gchar      *str;
 
-
-    if (!proto_is_protocol_enabled(proto_a_bsmap))
-    {
-       call_dissector(data_handle, tvb, pinfo, tree);
-       return;
-    }
-
     if (check_col(pinfo->cinfo, COL_INFO))
     {
        col_append_str(pinfo->cinfo, COL_INFO, "(BSMAP) ");
@@ -8081,13 +8074,6 @@ dissect_dtap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
     proto_tree *oct_1_tree = NULL;
     gchar      *str;
 
-
-    if (!proto_is_protocol_enabled(proto_a_dtap))
-    {
-       call_dissector(data_handle, tvb, pinfo, tree);
-       return;
-    }
-
     len = tvb_length(tvb);
 
     if (len < 3)
index 407539f4a9d52165c0f9bce4adc412db9091be81..0141aa1d1a60c326a01f78f144c9ab860e57a3f0 100644 (file)
@@ -79,7 +79,7 @@
  *   UIM
  *                     3GPP2 N.S0003
  *
- * $Id: packet-ansi_map.c,v 1.9 2003/11/11 05:54:06 guy Exp $
+ * $Id: packet-ansi_map.c,v 1.10 2003/11/16 23:17:16 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -13171,12 +13171,6 @@ dissect_ansi_map(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
     ASN1_SCK   asn1;
     int        offset = 0;
 
-    if (!proto_is_protocol_enabled(proto_ansi_map))
-    {
-       call_dissector(data_handle, tvb, pinfo, tree);
-       return;
-    }
-
     g_pinfo = pinfo;
 
     /*
index 05d9a317d41f413e3830fdbfb2eb11fb58573900..6ede79e757f28b34ae7339b619785961027bb8c8 100644 (file)
@@ -2,7 +2,7 @@
  * Routines for AppleTalk packet disassembly: LLAP, DDP, NBP, ATP, ASP,
  * RTMP.
  *
- * $Id: packet-atalk.c,v 1.90 2003/09/21 20:05:59 gerald Exp $
+ * $Id: packet-atalk.c,v 1.91 2003/11/16 23:17:16 guy Exp $
  *
  * Simon Wilkinson <sxw@dcs.ed.ac.uk>
  *
@@ -73,6 +73,7 @@ static int hf_ddp_dst_socket = -1;
 static int hf_ddp_src_socket = -1;
 static int hf_ddp_type = -1;
 
+static dissector_handle_t ddp_handle;
 
 /* --------------------------------------
  * ATP protocol parameters
@@ -1691,18 +1692,18 @@ dissect_llap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
 
   new_tvb = tvb_new_subset(tvb, 3, -1, -1);
 
-  if (proto_is_protocol_enabled(proto_ddp)) {
-    pinfo->current_proto = "DDP";
-    switch (type) {
+  switch (type) {
 
-    case 0x01:
+  case 0x01:
+    if (proto_is_protocol_enabled(find_protocol_by_id(proto_ddp))) {
+      pinfo->current_proto = "DDP";
       dissect_ddp_short(new_tvb, pinfo, dnode, snode, tree);
       return;
+    }
 
-    case 0x02:
-      dissect_ddp(new_tvb, pinfo, tree);
+  case 0x02:
+    if (call_dissector(ddp_handle, new_tvb, pinfo, tree))
       return;
-    }
   }
   call_dissector(data_handle,new_tvb, pinfo, tree);
 }
@@ -2254,7 +2255,7 @@ proto_register_atalk(void)
 void
 proto_reg_handoff_atalk(void)
 {
-  dissector_handle_t ddp_handle, nbp_handle, rtmp_request_handle;
+  dissector_handle_t nbp_handle, rtmp_request_handle;
   dissector_handle_t atp_handle;
   dissector_handle_t zip_ddp_handle;
   dissector_handle_t rtmp_data_handle, llap_handle;
index aa1311048fc05e9c6d160a28a916037e7272f412..14c5c726bc4fb7d044c4ea5a9c3a070edc1a8950 100644 (file)
@@ -1,7 +1,7 @@
 /* packet-clnp.c
  * Routines for ISO/OSI network and transport protocol packet disassembly
  *
- * $Id: packet-clnp.c,v 1.78 2003/10/06 20:46:50 guy Exp $
+ * $Id: packet-clnp.c,v 1.79 2003/11/16 23:17:17 guy Exp $
  * Laurent Deniel <laurent.deniel@free.fr>
  * Ralf Schneider <Ralf.Schneider@t-online.de>
  *
@@ -1621,7 +1621,7 @@ static gboolean dissect_ositp_internal(tvbuff_t *tvb, packet_info *pinfo,
   gboolean is_cltp = FALSE;
   gboolean subdissector_found = FALSE;
 
-  if (!proto_is_protocol_enabled(proto_cotp))
+  if (!proto_is_protocol_enabled(find_protocol_by_id(proto_cotp)))
     return FALSE;      /* COTP has been disabled */
   /* XXX - what about CLTP? */
 
index 31030733e0be9c7b5de2af8c2bd1fbfbc05cac9b..0963a0619124f39c168043b63a6502673a454dbc 100644 (file)
@@ -3,7 +3,7 @@
  * Copyright 2001, Todd Sabin <tas@webspan.net>
  * Copyright 2003, Tim Potter <tpot@samba.org>
  *
- * $Id: packet-dcerpc.c,v 1.154 2003/11/13 23:13:51 guy Exp $
+ * $Id: packet-dcerpc.c,v 1.155 2003/11/16 23:17:17 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -603,9 +603,10 @@ dcerpc_init_uuid (int proto, int ett, e_uuid_t *uuid, guint16 ver,
     key->uuid = *uuid;
     key->ver = ver;
 
-    value->proto = proto;
+    value->proto = find_protocol_by_id(proto);
+    value->proto_id = proto;
     value->ett = ett;
-    value->name = proto_get_protocol_short_name (proto);
+    value->name = proto_get_protocol_short_name (value->proto);
     value->procs = procs;
     value->opnum_hf = opnum_hf;
 
@@ -1809,7 +1810,7 @@ dcerpc_try_handoff (packet_info *pinfo, proto_tree *tree,
 
     if (tree) {
         proto_item *sub_item;
-        sub_item = proto_tree_add_item (tree, sub_proto->proto, tvb, 0,
+        sub_item = proto_tree_add_item (tree, sub_proto->proto_id, tvb, 0,
                                         -1, FALSE);
 
         if (sub_item) {
index d21888b2a95be0db373fb23886d8cd9cc9e50105..20568f76a02febcf666da34c661d6ab3ce6222af 100644 (file)
@@ -2,7 +2,7 @@
  * Copyright 2001, Todd Sabin <tas@webspan.net>
  * Copyright 2003, Tim Potter <tpot@samba.org>
  *
- * $Id: packet-dcerpc.h,v 1.36 2003/10/10 11:11:37 sahlberg Exp $
+ * $Id: packet-dcerpc.h,v 1.37 2003/11/16 23:17:17 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -280,7 +280,8 @@ typedef struct _dcerpc_uuid_key {
 } dcerpc_uuid_key;
 
 typedef struct _dcerpc_uuid_value {
-    int proto;
+    protocol_t *proto;
+    int proto_id;
     int ett;
     gchar *name;
     dcerpc_sub_dissector *procs;
index 7158d4f7d44900883749e8dbcca56eed0185b146..dbbb89dfb7a15fd6fe48f940f5f5f3bfffd2064f 100644 (file)
@@ -1,7 +1,7 @@
 /* packet-dvmrp.c   2001 Ronnie Sahlberg <See AUTHORS for email>
  * Routines for IGMP/DVMRP packet disassembly
  *
- * $Id: packet-dvmrp.c,v 1.13 2002/08/28 21:00:12 jmayer Exp $
+ * $Id: packet-dvmrp.c,v 1.14 2003/11/16 23:17:17 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -621,7 +621,7 @@ dissect_dvmrp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, int of
        proto_tree *tree;
        proto_item *item;
 
-       if (!proto_is_protocol_enabled(proto_dvmrp)) {
+       if (!proto_is_protocol_enabled(find_protocol_by_id(proto_dvmrp))) {
                /* we are not enabled, skip entire packet to be nice
                   to the igmp layer. (so clicking on IGMP will display the data)
                 */
index 5cc7bef5bf63cf9119b9b0cdccfc7f8fb2353ae3..9406096717d91612545017022baf4ebe8c37fc44 100644 (file)
@@ -2,7 +2,7 @@
  * Routines for FCIP dissection
  * Copyright 2001, Dinesh G Dutt (ddutt@cisco.com)
  *
- * $Id: packet-fcip.c,v 1.8 2003/10/30 02:06:11 guy Exp $
+ * $Id: packet-fcip.c,v 1.9 2003/11/16 23:17:17 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -388,9 +388,6 @@ dissect_fcip (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
     proto_tree *fcip_tree = NULL;
     tvbuff_t *next_tvb;
     
-    if (!proto_is_protocol_enabled(proto_fcip))
-       return FALSE;   /* iSCSI has been disabled */
-
     if (bytes_remaining < FCIP_ENCAP_HEADER_LEN) {
         return FALSE;
     }
index 263968bed2bd8e571be233a64e3b095f831c9772..49de0bfdc444a6a19e62d344a82cc51ed3ab6a03 100644 (file)
@@ -9,7 +9,7 @@
  * Frank Singleton <frank.singleton@ericsson.com>
  * Trevor Shepherd <eustrsd@am1.ericsson.se>
  *
- * $Id: packet-giop.c,v 1.72 2003/03/05 15:33:12 gerald Exp $
+ * $Id: packet-giop.c,v 1.73 2003/11/16 23:17:18 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -1073,7 +1073,7 @@ void register_giop_user_module(giop_sub_dissector_t *sub, gchar *name, gchar *mo
 
   module_val->subh->sub_name = name;   /* save dissector name */
   module_val->subh->sub_fn = sub;      /* save subdissector*/
-  module_val->subh->sub_proto = sub_proto;     /* save subdissector's proto_XXX value */
+  module_val->subh->sub_proto = find_protocol_by_id(sub_proto);        /* save protocol_t for subdissector's protocol */
 
   g_hash_table_insert(giop_module_hash, new_module_key, module_val);
 
@@ -1440,7 +1440,7 @@ void register_giop_user(giop_sub_dissector_t *sub, gchar *name, int sub_proto) {
 
   subh->sub_name = name;
   subh->sub_fn = sub;
-  subh->sub_proto = sub_proto; /* proto_XXX from sub dissectors's proto_register_protocol() */
+  subh->sub_proto = find_protocol_by_id(sub_proto);    /* protocol_t for sub dissectors's proto_register_protocol() */
 
   giop_sub_list = g_slist_append (giop_sub_list, subh);
 
index ad4d67eaee9572acac6ac096a91724f6dcb0d737..96a63a5affcc20da1de0b63da0a04a74f5f2dd30 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Based on CORBAv2.4.2  Chapter 15 GIOP Description.
  *
- * $Id: packet-giop.h,v 1.10 2002/08/28 21:00:13 jmayer Exp $
+ * $Id: packet-giop.h,v 1.11 2003/11/16 23:17:18 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -106,7 +106,7 @@ typedef gboolean (giop_sub_dissector_t)(tvbuff_t *, packet_info *, proto_tree *,
 typedef struct giop_sub_handle {
   giop_sub_dissector_t *sub_fn;  /* ptr to sub dissector function */
   gchar *sub_name;              /* subdissector string name */
-  int sub_proto;               /* proto_XXX value from proto_register_protocol() */
+  protocol_t *sub_proto;         /* protocol_t for subprotocol */
 } giop_sub_handle_t;
 
 /* Main GIOP entry point */
index b5022c13198b553dcf597f70dcfb9b5ae5c5dae9..da130b066070d26e434575e2e84b7a539a89f6ba 100644 (file)
@@ -38,7 +38,7 @@
  *   Formats and coding
  *   (3GPP TS 24.080 version 4.3.0 Release 4)
  *
- * $Id: packet-gsm_a.c,v 1.5 2003/11/09 22:41:55 guy Exp $
+ * $Id: packet-gsm_a.c,v 1.6 2003/11/16 23:17:18 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -10169,12 +10169,6 @@ dissect_rp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
     gchar      *str;
 
 
-    if (!proto_is_protocol_enabled(proto_a_rp))
-    {
-       call_dissector(data_handle, tvb, pinfo, tree);
-       return;
-    }
-
     if (check_col(pinfo->cinfo, COL_INFO))
     {
        col_append_str(pinfo->cinfo, COL_INFO, "(RP) ");
@@ -10271,12 +10265,6 @@ dissect_bssmap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
     gchar      *str;
 
 
-    if (!proto_is_protocol_enabled(proto_a_bssmap))
-    {
-       call_dissector(data_handle, tvb, pinfo, tree);
-       return;
-    }
-
     if (check_col(pinfo->cinfo, COL_INFO))
     {
        col_append_str(pinfo->cinfo, COL_INFO, "(BSSMAP) ");
@@ -10380,12 +10368,6 @@ dissect_dtap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
     int                hf_idx;
 
 
-    if (!proto_is_protocol_enabled(proto_a_dtap))
-    {
-       call_dissector(data_handle, tvb, pinfo, tree);
-       return;
-    }
-
     len = tvb_length(tvb);
 
     if (len < 2)
index 29f8b5f959d1a5c05bb119eba9a03bedac4ecaff..f8b963074ba65972f8ecfe2d5003ec8492e530fd 100644 (file)
@@ -11,7 +11,7 @@
  *   Technical realization of Short Message Service (SMS)
  *   (3GPP TS 23.040 version 5.4.0 Release 5)
  *
- * $Id: packet-gsm_sms.c,v 1.3 2003/10/30 11:54:21 guy Exp $
+ * $Id: packet-gsm_sms.c,v 1.4 2003/11/16 23:17:19 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -2554,12 +2554,6 @@ dissect_gsm_sms(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
     gint       ett_msg_idx;
 
 
-    if (!proto_is_protocol_enabled(proto_gsm_sms))
-    {
-       call_dissector(data_handle,tvb, pinfo, tree);
-       return;
-    }
-
     g_pinfo = pinfo;
 
     if (check_col(pinfo->cinfo, COL_PROTOCOL))
index 3be922300b39ca214323b94ecda604d707fa2070..643cbb10696765f5c266a1e28cddc6e2d94290ab 100644 (file)
@@ -4,7 +4,7 @@
  * Copyright 2002, Richard Sharpe <rsharpe@samba.org> Added a few 
  *                bits and pieces ...
  *
- * $Id: packet-gssapi.c,v 1.27 2003/07/16 04:20:32 tpot Exp $
+ * $Id: packet-gssapi.c,v 1.28 2003/11/16 23:17:19 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -84,7 +84,7 @@ gssapi_init_oid(char *oid, int proto, int ett, dissector_handle_t handle,
        char *key = g_strdup(oid);
        gssapi_oid_value *value = g_malloc(sizeof(*value));
 
-       value->proto = proto;
+       value->proto = find_protocol_by_id(proto);
        value->ett = ett;
        value->handle = handle;
        value->wrap_handle = wrap_handle;
index 105261e778bc339919ef11f84d0dbf3c49d4354e..f55f20998f7044bef3146cb0ec6cf5cd96444ccc 100644 (file)
@@ -2,7 +2,7 @@
  * Dissector for GSS-API tokens as described in rfc2078, section 3.1
  * Copyright 2002, Tim Potter <tpot@samba.org>
  *
- * $Id: packet-gssapi.h,v 1.8 2002/11/28 06:48:41 guy Exp $
+ * $Id: packet-gssapi.h,v 1.9 2003/11/16 23:17:19 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -29,7 +29,7 @@
 /* Structures needed outside */
 
 typedef struct _gssapi_oid_value {
-       int proto;
+       protocol_t *proto;
        int ett;
        dissector_handle_t handle;
        dissector_handle_t wrap_handle;
index a4531f746577f4f709dbd512bcc23bbc0188edeb..bc3d083f8958bcafe2627a1b9913c52b41cf285b 100644 (file)
@@ -2,7 +2,7 @@
  * Routines for iSCSI dissection
  * Copyright 2001, Eurologic and Mark Burton <markb@ordern.com>
  *
- * $Id: packet-iscsi.c,v 1.47 2003/09/09 09:54:13 sahlberg Exp $
+ * $Id: packet-iscsi.c,v 1.48 2003/11/16 23:17:19 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -1626,9 +1626,6 @@ dissect_iscsi(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gboolean chec
     guint offset = 0;
     guint32 available_bytes = tvb_length_remaining(tvb, offset);
 
-    if (!proto_is_protocol_enabled(proto_iscsi))
-       return FALSE;   /* iSCSI has been disabled */
-
     /* quick check to see if the packet is long enough to contain the
      * minimum amount of information we need */
     if (available_bytes < 48 && (!iscsi_desegment || available_bytes < 8)) {
index 525fab1fa29c795a9b8423a108a79679a71b3426..c0975730db76628ba23fd90123ea4ae79c00d09e 100644 (file)
@@ -1,7 +1,7 @@
 /* packet-mrdisc.c   2001 Ronnie Sahlberg <See AUTHORS for email>
  * Routines for IGMP/MRDISC packet disassembly
  *
- * $Id: packet-mrdisc.c,v 1.9 2002/08/28 21:00:22 jmayer Exp $
+ * $Id: packet-mrdisc.c,v 1.10 2003/11/16 23:17:19 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -188,7 +188,7 @@ dissect_mrdisc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, int o
        proto_item *item;
        guint8 type;
 
-       if (!proto_is_protocol_enabled(proto_mrdisc)) {
+       if (!proto_is_protocol_enabled(find_protocol_by_id(proto_mrdisc))) {
                /* we are not enabled, skip entire packet to be nice
                   to the igmp layer. (so clicking on IGMP will display the data)
                 */
index 7a1a93fa2f6caa18f20955f8e6ad0853ebf48c31..40d0dcd22272aade62633551682c85a42724b1a4 100644 (file)
@@ -1,7 +1,7 @@
 /* packet-msnip.c   2001 Ronnie Sahlberg <See AUTHORS for email>
  * Routines for IGMP/MSNIP packet disassembly
  *
- * $Id: packet-msnip.c,v 1.8 2002/08/28 21:00:22 jmayer Exp $
+ * $Id: packet-msnip.c,v 1.9 2003/11/16 23:17:20 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -222,7 +222,7 @@ dissect_msnip(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, int of
        proto_item *item;
        guint8 type;
 
-       if (!proto_is_protocol_enabled(proto_msnip)) {
+       if (!proto_is_protocol_enabled(find_protocol_by_id(proto_msnip))) {
                /* we are not enabled, skip entire packet to be nice
                   to the igmp layer. (so clicking on IGMP will display the data)
                 */
index e629f41f63a9047d85207d05a8990d5108a284a5..c86d4eadd1a1d468b3a008cc4dda938f3385ee67 100644 (file)
@@ -2,7 +2,7 @@
  * Routines for PIM disassembly
  * (c) Copyright Jun-ichiro itojun Hagino <itojun@itojun.org>
  *
- * $Id: packet-pim.c,v 1.45 2003/10/17 21:27:34 guy Exp $
+ * $Id: packet-pim.c,v 1.46 2003/11/16 23:17:20 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -113,7 +113,7 @@ dissect_pimv1(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
     proto_tree *pimopt_tree = NULL;
     proto_item *tiopt;
 
-    if (!proto_is_protocol_enabled(proto_pim)) {
+    if (!proto_is_protocol_enabled(find_protocol_by_id(proto_pim))) {
        /*
         * We are not enabled; skip entire packet to be nice to the
         * IGMP layer (so clicking on IGMP will display the data).
index d77ef8a92b676107d02816b4dd91c0e1d21d9296..75fcea0592873fdbef6333613c608e4f3f1c835d 100644 (file)
@@ -2,7 +2,7 @@
  * Routines for ppp packet disassembly
  * RFC 1661, RFC 1662
  *
- * $Id: packet-ppp.c,v 1.116 2003/08/26 06:18:18 guy Exp $
+ * $Id: packet-ppp.c,v 1.117 2003/11/16 23:17:20 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -2357,11 +2357,10 @@ dissect_cp( tvbuff_t *tvb, int proto_id, int proto_subtree_index,
 
   if(check_col(pinfo->cinfo, COL_PROTOCOL))
     col_set_str(pinfo->cinfo, COL_PROTOCOL,
-               proto_get_protocol_short_name(proto_id));
+               proto_get_protocol_short_name(find_protocol_by_id(proto_id)));
 
   if(check_col(pinfo->cinfo, COL_INFO))
-       col_add_fstr(pinfo->cinfo, COL_INFO, "%s %s",
-               proto_get_protocol_short_name(proto_id),
+       col_add_str(pinfo->cinfo, COL_INFO,
                val_to_str(code, proto_vals, "Unknown"));
 
   if(tree) {
@@ -2604,12 +2603,10 @@ dissect_bap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
   length = tvb_get_ntohs(tvb, 2);
 
   if(check_col(pinfo->cinfo, COL_PROTOCOL))
-    col_set_str(pinfo->cinfo, COL_PROTOCOL,
-               proto_get_protocol_short_name(proto_bap));
+    col_set_str(pinfo->cinfo, COL_PROTOCOL, "PPP BAP");
 
   if(check_col(pinfo->cinfo, COL_INFO))
-       col_add_fstr(pinfo->cinfo, COL_INFO, "%s %s",
-               proto_get_protocol_short_name(proto_bap),
+       col_add_str(pinfo->cinfo, COL_INFO,
                val_to_str(type, bap_vals, "Unknown"));
 
   if(tree) {
@@ -2652,13 +2649,10 @@ dissect_comp_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
   proto_tree *comp_data_tree;
 
   if (check_col(pinfo->cinfo, COL_PROTOCOL))
-    col_set_str(pinfo->cinfo, COL_PROTOCOL,
-               proto_get_protocol_short_name(proto_comp_data));
+    col_set_str(pinfo->cinfo, COL_PROTOCOL, "PPP Comp");
 
   if(check_col(pinfo->cinfo, COL_INFO))
-    col_add_fstr(pinfo->cinfo, COL_INFO, "%s %s",
-                proto_get_protocol_short_name(proto_comp_data),
-                val_to_str(PPP_COMP, ppp_vals, "Unknown"));
+    col_set_str(pinfo->cinfo, COL_INFO, "Compressed data");
 
   if (tree) {
     ti = proto_tree_add_item(tree, proto_comp_data, tvb, 0, -1, FALSE);
@@ -2982,12 +2976,10 @@ dissect_pap( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree ) {
   length = tvb_get_ntohs(tvb, 2);
 
   if(check_col(pinfo->cinfo, COL_PROTOCOL))
-    col_set_str(pinfo->cinfo, COL_PROTOCOL,
-               proto_get_protocol_short_name(proto_pap));
+    col_set_str(pinfo->cinfo, COL_PROTOCOL, "PPP PAP");
 
   if(check_col(pinfo->cinfo, COL_INFO))
-       col_add_fstr(pinfo->cinfo, COL_INFO, "%s %s",
-               proto_get_protocol_short_name(proto_pap),
+       col_add_str(pinfo->cinfo, COL_INFO,
                val_to_str(code, pap_vals, "Unknown"));
 
   if(tree) {
@@ -3082,12 +3074,10 @@ dissect_chap( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree ) {
   length = tvb_get_ntohs(tvb, 2);
 
   if(check_col(pinfo->cinfo, COL_PROTOCOL))
-    col_set_str(pinfo->cinfo, COL_PROTOCOL,
-               proto_get_protocol_short_name(proto_chap));
+    col_set_str(pinfo->cinfo, COL_PROTOCOL, "PPP CHAP");
 
   if(check_col(pinfo->cinfo, COL_INFO))
-       col_add_fstr(pinfo->cinfo, COL_INFO, "%s %s",
-               proto_get_protocol_short_name(proto_chap),
+       col_add_str(pinfo->cinfo, COL_INFO,
                val_to_str(code, chap_vals, "Unknown"));
 
   if(tree) {
index c2a44bc5d20711eb1145de4800af8c9d1cbca3a5..ea19cd0a0498621eec0db0ee5e2d6403cc6d2e3a 100644 (file)
@@ -2,7 +2,7 @@
  * Routines for rpc dissection
  * Copyright 1999, Uwe Girlich <Uwe.Girlich@philosys.de>
  *
- * $Id: packet-rpc.c,v 1.138 2003/09/05 10:26:42 sahlberg Exp $
+ * $Id: packet-rpc.c,v 1.139 2003/11/16 23:17:20 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -387,9 +387,10 @@ rpc_init_prog(int proto, guint32 prog, int ett)
        key->prog = prog;
 
        value = (rpc_prog_info_value *) g_malloc(sizeof(rpc_prog_info_value));
-       value->proto = proto;
+       value->proto = find_protocol_by_id(proto);
+       value->proto_id = proto;
        value->ett = ett;
-       value->progname = proto_get_protocol_short_name(proto);
+       value->progname = proto_get_protocol_short_name(value->proto);
        value->procedure_hfs = g_array_new(FALSE, TRUE, sizeof (int));
 
        g_hash_table_insert(rpc_progs,key,value);
@@ -1649,7 +1650,8 @@ dissect_rpc_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
        flavor_t flavor = FLAVOR_UNKNOWN;
        unsigned int gss_proc = 0;
        unsigned int gss_svc = 0;
-       int     proto = 0;
+       protocol_t *proto = NULL;
+       int     proto_id = 0;
        int     ett = 0;
        int     procedure_hf;
 
@@ -1846,6 +1848,7 @@ dissect_rpc_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
                /* we know already the proto-entry, the ETT-const,
                   and "rpc_prog" */
                proto = rpc_prog->proto;
+               proto_id = rpc_prog->proto_id;
                ett = rpc_prog->ett;
                progname = rpc_prog->progname;
 
@@ -2131,12 +2134,14 @@ dissect_rpc_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
 
                rpc_prog_key.prog = prog;
                if ((rpc_prog = g_hash_table_lookup(rpc_progs,&rpc_prog_key)) == NULL) {
-                       proto = 0;
+                       proto = NULL;
+                       proto_id = 0;
                        ett = 0;
                        progname = "Unknown";
                }
                else {
                        proto = rpc_prog->proto;
+                       proto_id = rpc_prog->proto_id;
                        ett = rpc_prog->ett;
                        progname = rpc_prog->progname;
 
@@ -2339,7 +2344,7 @@ dissect_rpc_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
 
        /* create here the program specific sub-tree */
        if (tree && (flavor != FLAVOR_AUTHGSSAPI_MSG)) {
-               pitem = proto_tree_add_item(tree, proto, tvb, offset, -1,
+               pitem = proto_tree_add_item(tree, proto_id, tvb, offset, -1,
                    FALSE);
                if (pitem) {
                        ptree = proto_item_add_subtree(pitem, ett);
index b01f2b469aad133ff5c2d18a5871d3b0168403ea..2a26246db76287c0e412fbec35cecda52992f723 100644 (file)
@@ -1,6 +1,6 @@
 /* packet-rpc.h
  *
- * $Id: packet-rpc.h,v 1.43 2003/09/05 10:26:43 sahlberg Exp $
+ * $Id: packet-rpc.h,v 1.44 2003/11/16 23:17:21 guy Exp $
  *
  * (c) 1999 Uwe Girlich
  *
@@ -163,7 +163,8 @@ typedef struct _rpc_prog_info_key {
 } rpc_prog_info_key;
 
 typedef struct _rpc_prog_info_value {
-       int proto;
+       protocol_t *proto;
+       int proto_id;
        int ett;
        char* progname;
        GArray *procedure_hfs;
index 9f5f424f3c89d617480f244923e3e9981cff7b45..2c864f0030ce7e45a2d1cfad70b542f0e9a8ed3a 100644 (file)
@@ -2,7 +2,7 @@
  * Routines for SMB Browser packet dissection
  * Copyright 1999, Richard Sharpe <rsharpe@ns.aus.com>
  *
- * $Id: packet-smb-browse.c,v 1.32 2003/09/03 20:58:09 guy Exp $
+ * $Id: packet-smb-browse.c,v 1.33 2003/11/16 23:17:21 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -563,7 +563,7 @@ dissect_smb_server_type_flags(tvbuff_t *tvb, int offset, packet_info *pinfo,
 }
 
 
-gboolean
+static gboolean
 dissect_mailslot_browse(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
 {
        int offset = 0;
@@ -577,12 +577,6 @@ dissect_mailslot_browse(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tr
        int i;
        guint32 uptime;
 
-       if (!proto_is_protocol_enabled(proto_smb_browse)) {
-               return FALSE;
-       }
-
-       pinfo->current_proto = "BROWSER";
-
        if (check_col(pinfo->cinfo, COL_PROTOCOL)) {
                col_set_str(pinfo->cinfo, COL_PROTOCOL, "BROWSER");
        }
@@ -820,7 +814,7 @@ dissect_mailslot_browse(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tr
  *
  * XXX - what other browser packets go out to that mailslot?
  */
-gboolean
+static gboolean
 dissect_mailslot_lanman(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
 {
        int offset = 0;
@@ -831,12 +825,6 @@ dissect_mailslot_lanman(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tr
        const char *host_name;
        guint namelen;
 
-       if (!proto_is_protocol_enabled(proto_smb_browse)) {
-               return FALSE;
-       }
-
-       pinfo->current_proto = "BROWSER";
-
        if (check_col(pinfo->cinfo, COL_PROTOCOL)) {
                col_set_str(pinfo->cinfo, COL_PROTOCOL, "BROWSER");
        }
@@ -1175,4 +1163,9 @@ proto_register_smb_browse(void)
 
        proto_register_field_array(proto_smb_browse, hf, array_length(hf));
        proto_register_subtree_array(ett, array_length(ett));
+
+       new_register_dissector("mailslot_browse", dissect_mailslot_browse,
+           proto_smb_browse);
+       new_register_dissector("mailslot_lanman", dissect_mailslot_lanman,
+           proto_smb_browse);
 }
index 546af5a1b266b048c99df3d383fa197c62b1c18f..136668347e4a73b65df5b992ebb71bc912cd832a 100644 (file)
@@ -2,7 +2,7 @@
  * Declaration of routines for SMB Browser packet dissection
  * Copyright 1999, Richard Sharpe <rsharpe@ns.aus.com>
  *
- * $Id: packet-smb-browse.h,v 1.6 2003/02/17 01:59:39 tpot Exp $
+ * $Id: packet-smb-browse.h,v 1.7 2003/11/16 23:17:21 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
 #ifndef _PACKET_SMB_BROWSE_H_
 #define _PACKET_SMB_BROWSE_H_
 
-gboolean
-dissect_mailslot_browse(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree);
-
-gboolean
-dissect_mailslot_lanman(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree);
-
 int
 dissect_smb_server_type_flags(tvbuff_t *tvb, int offset, packet_info *pinfo,
                              proto_tree *parent_tree, char *drep, 
index a927de74f7b8e3732065b393f6a7ee6ee712ba61..b995af6eaba111fde051c41f910e100826a163d6 100644 (file)
@@ -2,7 +2,7 @@
  * Routines for SMB net logon packet dissection
  * Copyright 2000, Jeffrey C. Foster <jfoste@woodward.com>
  *
- * $Id: packet-smb-logon.c,v 1.34 2003/06/12 08:33:30 guy Exp $
+ * $Id: packet-smb-logon.c,v 1.35 2003/11/16 23:17:21 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -26,7 +26,6 @@
  */
 
 #include "packet-smb-common.h"
-#include "packet-smb-logon.h"
 
 static int proto_smb_logon = -1;
 static int hf_command = -1;
@@ -815,7 +814,7 @@ static int (*dissect_smb_logon_cmds[])(tvbuff_t *tvb, packet_info *pinfo, proto_
 };
 
 
-gboolean
+static gboolean
 dissect_smb_logon(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
 {
        int        offset = 0;
@@ -823,11 +822,6 @@ dissect_smb_logon(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
        proto_tree *smb_logon_tree = NULL;
        proto_item *item = NULL;
 
-       if (!proto_is_protocol_enabled(proto_smb_logon))
-               return FALSE;
-
-       pinfo->current_proto = "NETLOGON";
-
        if (check_col(pinfo->cinfo, COL_PROTOCOL))
                col_set_str(pinfo->cinfo, COL_PROTOCOL, "NETLOGON");
        if (check_col(pinfo->cinfo, COL_INFO))
@@ -1035,4 +1029,6 @@ proto_register_smb_logon( void)
 
        proto_register_field_array(proto_smb_logon, hf, array_length(hf));
        proto_register_subtree_array(ett, array_length(ett));
+
+       new_register_dissector("netlogon", dissect_smb_logon, proto_smb_logon);
 }
diff --git a/packet-smb-logon.h b/packet-smb-logon.h
deleted file mode 100644 (file)
index 525cb6a..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-/* packet-smb-logon.h
- * Declaration of outines for SMB net logon packet dissection
- * Copyright 2000, Jeffrey C. Foster <jfoste@woodward.com>
- *
- * $Id: packet-smb-logon.h,v 1.3 2002/08/28 21:00:31 jmayer Exp $
- *
- * Ethereal - Network traffic analyzer
- * By Gerald Combs <gerald@ethereal.com>
- * Copyright 1998 Gerald Combs
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
- */
-
-#ifndef _PACKET_SMB_LOGON_H_
-#define _PACKET_SMB_LOGON_H_
-
-gboolean
-dissect_smb_logon(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
-
-#endif
index a99def19378a496a82a15efd3bbf8cf0cbca8b82..ce33a8d922874a1fa4da41c8635cf750d246f495 100644 (file)
@@ -2,7 +2,7 @@
  * Routines for SMB mailslot packet dissection
  * Copyright 2000, Jeffrey C. Foster <jfoste@woodward.com>
  *
- * $Id: packet-smb-mailslot.c,v 1.33 2002/08/28 21:00:31 jmayer Exp $
+ * $Id: packet-smb-mailslot.c,v 1.34 2003/11/16 23:17:21 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -29,7 +29,6 @@
 #include "packet-smb-common.h"
 #include "packet-smb-mailslot.h"
 #include "packet-smb-browse.h"
-#include "packet-smb-logon.h"
 #include "packet-smb-pipe.h"
 
 static int proto_smb_msp = -1;
@@ -41,6 +40,9 @@ static int hf_name = -1;
 
 static int ett_smb_msp = -1;
 
+static dissector_handle_t mailslot_browse_handle;
+static dissector_handle_t mailslot_lanman_handle;
+static dissector_handle_t netlogon_handle;
 static dissector_handle_t data_handle;
 
 #define MAILSLOT_UNKNOWN              0
@@ -85,7 +87,7 @@ dissect_mailslot_smb(tvbuff_t *mshdr_tvb, tvbuff_t *setup_tvb,
        int             len;
        gboolean        dissected;
 
-       if (!proto_is_protocol_enabled(proto_smb_msp)) {
+       if (!proto_is_protocol_enabled(find_protocol_by_id(proto_smb_msp))) {
                return FALSE;
        }
        pinfo->current_proto = "SMB Mailslot";
@@ -185,15 +187,18 @@ dissect_mailslot_smb(tvbuff_t *mshdr_tvb, tvbuff_t *setup_tvb,
        dissected = FALSE;
        switch(trans_subcmd){
        case MAILSLOT_BROWSE:
-               dissected = dissect_mailslot_browse(tvb, pinfo, parent_tree);
+               dissected = call_dissector(mailslot_browse_handle, tvb, pinfo,
+                   parent_tree);
                break;
        case MAILSLOT_LANMAN:
-               dissected = dissect_mailslot_lanman(tvb, pinfo, parent_tree);
+               dissected = call_dissector(mailslot_lanman_handle, tvb, pinfo,
+                   parent_tree);
                break;
        case MAILSLOT_NET:
        case MAILSLOT_TEMP_NETLOGON:
        case MAILSLOT_MSSP:
-               dissected = dissect_smb_logon(tvb, pinfo, parent_tree);
+               dissected = call_dissector(netlogon_handle, tvb, pinfo,
+                   parent_tree);
                break;
        }
        if (!dissected) {
@@ -247,5 +252,8 @@ proto_register_smb_mailslot(void)
 void
 proto_reg_handoff_smb_mailslot(void)
 {
+       mailslot_browse_handle = find_dissector("mailslot_browse");
+       mailslot_lanman_handle = find_dissector("mailslot_lanman");
+       netlogon_handle = find_dissector("netlogon");
        data_handle = find_dissector("data");
 }
index a5946de45c7856d436a8d6951b51dd2f61ea7ab7..3062ce6db4694000150eaa7de674b6af000e0295 100644 (file)
@@ -8,7 +8,7 @@ XXX  Fixme : shouldnt show [malformed frame] for long packets
  * significant rewrite to tvbuffify the dissector, Ronnie Sahlberg and
  * Guy Harris 2001
  *
- * $Id: packet-smb-pipe.c,v 1.96 2003/09/03 20:58:09 guy Exp $
+ * $Id: packet-smb-pipe.c,v 1.97 2003/11/16 23:17:22 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -2598,7 +2598,7 @@ dissect_pipe_lanman(tvbuff_t *pd_tvb, tvbuff_t *p_tvb, tvbuff_t *d_tvb,
        proto_item *data_item;
        proto_tree *data_tree;
 
-       if (!proto_is_protocol_enabled(proto_smb_lanman))
+       if (!proto_is_protocol_enabled(find_protocol_by_id(proto_smb_lanman)))
                return FALSE;
        if (smb_info->request && p_tvb == NULL) {
                /*
@@ -3494,7 +3494,7 @@ dissect_pipe_smb(tvbuff_t *sp_tvb, tvbuff_t *s_tvb, tvbuff_t *pd_tvb,
        int fid = -1;
        guint16 info_level;
 
-       if (!proto_is_protocol_enabled(proto_smb_pipe))
+       if (!proto_is_protocol_enabled(find_protocol_by_id(proto_smb_pipe)))
                return FALSE;
        pinfo->current_proto = "SMB Pipe";
 
index b8b9b4f08d6da73ac64651043d42b70d2882c86b..19026b8cdb3192ce2454c0c0e809e14c8761ca08 100644 (file)
@@ -10,7 +10,7 @@
  *
  * See RFCs 2570-2576 for SNMPv3
  *
- * $Id: packet-snmp.c,v 1.122 2003/11/02 23:12:31 gerald Exp $
+ * $Id: packet-snmp.c,v 1.123 2003/11/16 23:17:22 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -1653,7 +1653,7 @@ dissect_snmp_pdu(tvbuff_t *tvb, int offset, packet_info *pinfo,
 
        if (check_col(pinfo->cinfo, COL_PROTOCOL)) {
                col_set_str(pinfo->cinfo, COL_PROTOCOL,
-                   proto_get_protocol_short_name(proto));
+                   proto_get_protocol_short_name(find_protocol_by_id(proto)));
        }
 
        if (tree) {
index 34396e32be7b993e61a854b0e22170c1bc5d182f..708191be801eb8740a68e4686275c3077a231db0 100644 (file)
@@ -7,7 +7,7 @@
  * Routine to dissect RFC 1006 TPKT packet containing OSI TP PDU
  * Copyright 2001, Martin Thomas <Martin_A_Thomas@yahoo.com>
  *
- * $Id: packet-tpkt.c,v 1.22 2002/08/28 21:00:36 jmayer Exp $
+ * $Id: packet-tpkt.c,v 1.23 2003/11/16 23:17:22 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -77,7 +77,7 @@ is_tpkt(tvbuff_t *tvb, int min_len)
         * If TPKT is disabled, don't dissect it, just return -1, meaning
         * "this isn't TPKT".
         */
-       if (!proto_is_protocol_enabled(proto_tpkt))
+       if (!proto_is_protocol_enabled(find_protocol_by_id(proto_tpkt)))
                return -1;
 
        /* There should at least be 4 bytes left in the frame */
index 8a43c5786848342eed20ba75bcdf62a3aea5787f..6ee9e953383885d645960327795305abefba1801 100644 (file)
@@ -1,7 +1,7 @@
 /* plugin_api_list.c
  * Used to generate various included files for plugin API
  *
- * $Id: plugin_api_list.c,v 1.14 2003/11/11 06:10:07 guy Exp $
+ * $Id: plugin_api_list.c,v 1.15 2003/11/16 23:17:27 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -84,7 +84,7 @@ void tcp_dissect_pdus(tvbuff_t *, packet_info *, proto_tree *,
     gboolean, guint, guint (*)(tvbuff_t *, int),
     void (*)(tvbuff_t *, packet_info *, proto_tree *));
 
-gboolean proto_is_protocol_enabled(int);
+gboolean proto_is_protocol_enabled(protocol_t *);
 
 int proto_item_get_len(proto_item*);
 void proto_item_set_len(proto_item*, gint);
@@ -262,7 +262,7 @@ gchar*      abs_time_to_str(nstime_t*);
 
 int proto_get_id_by_filter_name(gchar* filter_name);
 char *proto_get_protocol_name(int n);
-char *proto_get_protocol_short_name(int proto_id);
+char *proto_get_protocol_short_name(protocol_t *);
 char *proto_get_protocol_filter_name(int proto_id);
 
 void prefs_register_obsolete_preference(module_t *, const char *);
diff --git a/prefs.c b/prefs.c
index c495b63eef926b3f714bd97649c0ae1654abf0c7..648d84d883d889f9fc07b0543a8e0c6427510a00 100644 (file)
--- a/prefs.c
+++ b/prefs.c
@@ -1,7 +1,7 @@
 /* prefs.c
  * Routines for handling preferences
  *
- * $Id: prefs.c,v 1.112 2003/11/09 01:36:21 guy Exp $
+ * $Id: prefs.c,v 1.113 2003/11/16 23:17:22 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -245,6 +245,8 @@ module_t *protocols_module;
 module_t *
 prefs_register_protocol(int id, void (*apply_cb)(void))
 {
+       protocol_t *protocol;
+
        /*
         * Have we yet created the "Protocols" subtree?
         */
@@ -254,9 +256,10 @@ prefs_register_protocol(int id, void (*apply_cb)(void))
                 */
                protocols_module = prefs_register_subtree(NULL, "Protocols");
        }
+       protocol = find_protocol_by_id(id);
        return prefs_register_module(protocols_module,
            proto_get_protocol_filter_name(id),
-           proto_get_protocol_short_name(id), apply_cb);
+           proto_get_protocol_short_name(protocol), apply_cb);
 }
 
 /*
@@ -267,6 +270,7 @@ module_t *
 prefs_register_protocol_obsolete(int id)
 {
        module_t *module;
+       protocol_t *protocol;
 
        /*
         * Have we yet created the "Protocols" subtree?
@@ -277,9 +281,10 @@ prefs_register_protocol_obsolete(int id)
                 */
                protocols_module = prefs_register_subtree(NULL, "Protocols");
        }
+       protocol = find_protocol_by_id(id);
        module = prefs_register_module(protocols_module,
            proto_get_protocol_filter_name(id),
-           proto_get_protocol_short_name(id), NULL);
+           proto_get_protocol_short_name(protocol), NULL);
        module->obsolete = TRUE;
        return module;
 }