aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2003-11-16 23:17:27 +0000
committerGuy Harris <guy@alum.mit.edu>2003-11-16 23:17:27 +0000
commit7bd2e232a9994756ba0f97d4d93ce64fe885e7df (patch)
tree564e732958fa7b21a0ce2aaf6f0123b674ea3a71
parent21313199e4282797e5cbebb039c417cf8fca739f (diff)
Export "protocol_t" as an opaque type.
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. svn path=/trunk/; revision=8979
-rw-r--r--Makefile.am3
-rw-r--r--disabled_protos.c6
-rw-r--r--epan/packet.c44
-rw-r--r--epan/proto.c28
-rw-r--r--epan/proto.h31
-rw-r--r--gtk/dfilter_expr_dlg.c9
-rw-r--r--gtk/help_dlg.c12
-rw-r--r--gtk/proto_dlg.c16
-rw-r--r--packet-alcap.c8
-rw-r--r--packet-ansi_637.c14
-rw-r--r--packet-ansi_683.c8
-rw-r--r--packet-ansi_a.c16
-rw-r--r--packet-ansi_map.c8
-rw-r--r--packet-atalk.c19
-rw-r--r--packet-clnp.c4
-rw-r--r--packet-dcerpc.c9
-rw-r--r--packet-dcerpc.h5
-rw-r--r--packet-dvmrp.c4
-rw-r--r--packet-fcip.c5
-rw-r--r--packet-giop.c6
-rw-r--r--packet-giop.h4
-rw-r--r--packet-gsm_a.c20
-rw-r--r--packet-gsm_sms.c8
-rw-r--r--packet-gssapi.c4
-rw-r--r--packet-gssapi.h4
-rw-r--r--packet-iscsi.c5
-rw-r--r--packet-mrdisc.c4
-rw-r--r--packet-msnip.c4
-rw-r--r--packet-pim.c4
-rw-r--r--packet-ppp.c32
-rw-r--r--packet-rpc.c17
-rw-r--r--packet-rpc.h5
-rw-r--r--packet-smb-browse.c23
-rw-r--r--packet-smb-browse.h8
-rw-r--r--packet-smb-logon.c12
-rw-r--r--packet-smb-logon.h32
-rw-r--r--packet-smb-mailslot.c20
-rw-r--r--packet-smb-pipe.c6
-rw-r--r--packet-snmp.c4
-rw-r--r--packet-tpkt.c4
-rw-r--r--plugins/plugin_api_list.c6
-rw-r--r--prefs.c11
42 files changed, 201 insertions, 291 deletions
diff --git a/Makefile.am b/Makefile.am
index aef364b222..028e1c7da7 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -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 \
diff --git a/disabled_protos.c b/disabled_protos.c
index f2cb3ce9ec..bb3c68e840 100644
--- a/disabled_protos.c
+++ b/disabled_protos.c
@@ -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;
}
diff --git a/epan/packet.c b/epan/packet.c
index bc15ec865f..b99cbd5c5e 100644
--- a/epan/packet.c
+++ b/epan/packet.c
@@ -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);
}
diff --git a/epan/proto.c b/epan/proto.c
index 23d14ebd7b..8e1aa05e04 100644
--- a/epan/proto.c
+++ b/epan/proto.c
@@ -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;
}
diff --git a/epan/proto.h b/epan/proto.h
index 610b00e5be..d0a47ff5bb 100644
--- a/epan/proto.h
+++ b/epan/proto.h
@@ -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);
diff --git a/gtk/dfilter_expr_dlg.c b/gtk/dfilter_expr_dlg.c
index 7318583fbb..8eb655b578 100644
--- a/gtk/dfilter_expr_dlg.c
+++ b/gtk/dfilter_expr_dlg.c
@@ -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);
diff --git a/gtk/help_dlg.c b/gtk/help_dlg.c
index b48a67040f..c139d74632 100644
--- a/gtk/help_dlg.c
+++ b/gtk/help_dlg.c
@@ -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;
diff --git a/gtk/proto_dlg.c b/gtk/proto_dlg.c
index 1477bb0c2e..7c54f08d94 100644
--- a/gtk/proto_dlg.c
+++ b/gtk/proto_dlg.c
@@ -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);
diff --git a/packet-alcap.c b/packet-alcap.c
index ae90a787fd..cf40b82a3c 100644
--- a/packet-alcap.c
+++ b/packet-alcap.c
@@ -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;
/*
diff --git a/packet-ansi_637.c b/packet-ansi_637.c
index 88fbc3cddc..36f0ea4eb4 100644
--- a/packet-ansi_637.c
+++ b/packet-ansi_637.c
@@ -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);
diff --git a/packet-ansi_683.c b/packet-ansi_683.c
index 6b8e05aa00..b87ae2bb50 100644
--- a/packet-ansi_683.c
+++ b/packet-ansi_683.c
@@ -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))
diff --git a/packet-ansi_a.c b/packet-ansi_a.c
index c85042918c..1f9643ac9f 100644
--- a/packet-ansi_a.c
+++ b/packet-ansi_a.c
@@ -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)
diff --git a/packet-ansi_map.c b/packet-ansi_map.c
index 407539f4a9..0141aa1d1a 100644
--- a/packet-ansi_map.c
+++ b/packet-ansi_map.c
@@ -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;
/*
diff --git a/packet-atalk.c b/packet-atalk.c
index 05d9a317d4..6ede79e757 100644
--- a/packet-atalk.c
+++ b/packet-atalk.c
@@ -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;
diff --git a/packet-clnp.c b/packet-clnp.c
index aa1311048f..14c5c726bc 100644
--- a/packet-clnp.c
+++ b/packet-clnp.c
@@ -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? */
diff --git a/packet-dcerpc.c b/packet-dcerpc.c
index 31030733e0..0963a06191 100644
--- a/packet-dcerpc.c
+++ b/packet-dcerpc.c
@@ -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) {
diff --git a/packet-dcerpc.h b/packet-dcerpc.h
index d21888b2a9..20568f76a0 100644
--- a/packet-dcerpc.h
+++ b/packet-dcerpc.h
@@ -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;
diff --git a/packet-dvmrp.c b/packet-dvmrp.c
index 7158d4f7d4..dbbb89dfb7 100644
--- a/packet-dvmrp.c
+++ b/packet-dvmrp.c
@@ -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)
*/
diff --git a/packet-fcip.c b/packet-fcip.c
index 5cc7bef5bf..9406096717 100644
--- a/packet-fcip.c
+++ b/packet-fcip.c
@@ -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;
}
diff --git a/packet-giop.c b/packet-giop.c
index 263968bed2..49de0bfdc4 100644
--- a/packet-giop.c
+++ b/packet-giop.c
@@ -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);
diff --git a/packet-giop.h b/packet-giop.h
index ad4d67eaee..96a63a5aff 100644
--- a/packet-giop.h
+++ b/packet-giop.h
@@ -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 */
diff --git a/packet-gsm_a.c b/packet-gsm_a.c
index b5022c1319..da130b0660 100644
--- a/packet-gsm_a.c
+++ b/packet-gsm_a.c
@@ -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)
diff --git a/packet-gsm_sms.c b/packet-gsm_sms.c
index 29f8b5f959..f8b963074b 100644
--- a/packet-gsm_sms.c
+++ b/packet-gsm_sms.c
@@ -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))
diff --git a/packet-gssapi.c b/packet-gssapi.c
index 3be922300b..643cbb1069 100644
--- a/packet-gssapi.c
+++ b/packet-gssapi.c
@@ -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;
diff --git a/packet-gssapi.h b/packet-gssapi.h
index 105261e778..f55f20998f 100644
--- a/packet-gssapi.h
+++ b/packet-gssapi.h
@@ -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;
diff --git a/packet-iscsi.c b/packet-iscsi.c
index a4531f7465..bc3d083f89 100644
--- a/packet-iscsi.c
+++ b/packet-iscsi.c
@@ -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)) {
diff --git a/packet-mrdisc.c b/packet-mrdisc.c
index 525fab1fa2..c0975730db 100644
--- a/packet-mrdisc.c
+++ b/packet-mrdisc.c
@@ -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)
*/
diff --git a/packet-msnip.c b/packet-msnip.c
index 7a1a93fa2f..40d0dcd222 100644
--- a/packet-msnip.c
+++ b/packet-msnip.c
@@ -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)
*/
diff --git a/packet-pim.c b/packet-pim.c
index e629f41f63..c86d4eadd1 100644
--- a/packet-pim.c
+++ b/packet-pim.c
@@ -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).
diff --git a/packet-ppp.c b/packet-ppp.c
index d77ef8a92b..75fcea0592 100644
--- a/packet-ppp.c
+++ b/packet-ppp.c
@@ -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) {
diff --git a/packet-rpc.c b/packet-rpc.c
index c2a44bc5d2..ea19cd0a04 100644
--- a/packet-rpc.c
+++ b/packet-rpc.c
@@ -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);
diff --git a/packet-rpc.h b/packet-rpc.h
index b01f2b469a..2a26246db7 100644
--- a/packet-rpc.h
+++ b/packet-rpc.h
@@ -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;
diff --git a/packet-smb-browse.c b/packet-smb-browse.c
index 9f5f424f3c..2c864f0030 100644
--- a/packet-smb-browse.c
+++ b/packet-smb-browse.c
@@ -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);
}
diff --git a/packet-smb-browse.h b/packet-smb-browse.h
index 546af5a1b2..136668347e 100644
--- a/packet-smb-browse.h
+++ b/packet-smb-browse.h
@@ -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>
@@ -26,12 +26,6 @@
#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,
diff --git a/packet-smb-logon.c b/packet-smb-logon.c
index a927de74f7..b995af6eab 100644
--- a/packet-smb-logon.c
+++ b/packet-smb-logon.c
@@ -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
index 525cb6af98..0000000000
--- a/packet-smb-logon.h
+++ /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
diff --git a/packet-smb-mailslot.c b/packet-smb-mailslot.c
index a99def1937..ce33a8d922 100644
--- a/packet-smb-mailslot.c
+++ b/packet-smb-mailslot.c
@@ -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");
}
diff --git a/packet-smb-pipe.c b/packet-smb-pipe.c
index a5946de45c..3062ce6db4 100644
--- a/packet-smb-pipe.c
+++ b/packet-smb-pipe.c
@@ -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";
diff --git a/packet-snmp.c b/packet-snmp.c
index b8b9b4f08d..19026b8cdb 100644
--- a/packet-snmp.c
+++ b/packet-snmp.c
@@ -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) {
diff --git a/packet-tpkt.c b/packet-tpkt.c
index 34396e32be..708191be80 100644
--- a/packet-tpkt.c
+++ b/packet-tpkt.c
@@ -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 */
diff --git a/plugins/plugin_api_list.c b/plugins/plugin_api_list.c
index 8a43c57868..6ee9e95338 100644
--- a/plugins/plugin_api_list.c
+++ b/plugins/plugin_api_list.c
@@ -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 c495b63eef..648d84d883 100644
--- 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;
}