From 6287e86539fe79adfe1f9e2899c4fda749dc4b25 Mon Sep 17 00:00:00 2001 From: Guy Harris Date: Sun, 22 Jul 2001 10:12:11 +0000 Subject: Add a bunch of routines used by GIOP plugins to the plugin address table. svn path=/trunk/; revision=3764 --- epan/plugins.c | 11 ++++++++++- plugins/plugin_api.c | 10 +++++++++- plugins/plugin_api.h | 13 +++++++++++-- plugins/plugin_table.h | 24 +++++++++++++++++++++--- 4 files changed, 51 insertions(+), 7 deletions(-) diff --git a/epan/plugins.c b/epan/plugins.c index 38ef929b3d..929038215c 100644 --- a/epan/plugins.c +++ b/epan/plugins.c @@ -1,7 +1,7 @@ /* plugins.c * plugin routines * - * $Id: plugins.c,v 1.24 2001/04/25 08:41:21 guy Exp $ + * $Id: plugins.c,v 1.25 2001/07/22 10:12:08 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -63,6 +63,7 @@ #include "prefs.h" #ifdef PLUGINS_NEED_ADDRESS_TABLE +#include "packet-giop.h" #include "plugins/plugin_table.h" static plugin_address_table_t patable; #endif @@ -404,6 +405,14 @@ init_plugins(const char *plugin_dir) patable.p_prefs_register_uint_preference = prefs_register_uint_preference; patable.p_prefs_register_bool_preference = prefs_register_bool_preference; patable.p_prefs_register_enum_preference = prefs_register_enum_preference; + + patable.p_register_giop_user = register_giop_user; + patable.p_is_big_endian = is_big_endian; + patable.p_get_CDR_string = get_CDR_string; + patable.p_get_CDR_ulong = get_CDR_ulong; + patable.p_get_CDR_enum = get_CDR_enum; + patable.p_get_CDR_object = get_CDR_object; + patable.p_get_CDR_boolean = get_CDR_boolean; #endif plugins_scan_dir(std_plug_dir); diff --git a/plugins/plugin_api.c b/plugins/plugin_api.c index 184733cac6..a2c8eff5b4 100644 --- a/plugins/plugin_api.c +++ b/plugins/plugin_api.c @@ -1,7 +1,7 @@ /* plugin_api.c * Routines for Ethereal plugins. * - * $Id: plugin_api.c,v 1.19 2001/04/25 08:41:22 guy Exp $ + * $Id: plugin_api.c,v 1.20 2001/07/22 10:12:11 guy Exp $ * * Ethereal - Network traffic analyzer * Copyright 2000 by Gilbert Ramirez @@ -137,4 +137,12 @@ plugin_address_table_init(plugin_address_table_t *pat) p_prefs_register_uint_preference = pat->p_prefs_register_uint_preference; p_prefs_register_bool_preference = pat->p_prefs_register_bool_preference; p_prefs_register_enum_preference = pat->p_prefs_register_enum_preference; + p_register_giop_user = pat->p_register_giop_user; + p_is_big_endian = pat->p_is_big_endian; + p_get_CDR_string = pat->p_get_CDR_string; + p_get_CDR_ulong = pat->p_get_CDR_ulong; + p_get_CDR_enum = pat->p_get_CDR_enum; + p_get_CDR_object = pat->p_get_CDR_object; + p_get_CDR_boolean = pat->p_get_CDR_boolean; + } diff --git a/plugins/plugin_api.h b/plugins/plugin_api.h index df19223ba5..596c4d610d 100644 --- a/plugins/plugin_api.h +++ b/plugins/plugin_api.h @@ -1,7 +1,7 @@ /* plugin_api.h * Routines for Ethereal plugins. * - * $Id: plugin_api.h,v 1.19 2001/04/25 08:41:22 guy Exp $ + * $Id: plugin_api.h,v 1.20 2001/07/22 10:12:11 guy Exp $ * * Ethereal - Network traffic analyzer * Copyright 2000 by Gilbert Ramirez @@ -155,12 +155,21 @@ #define prefs_register_bool_preference (*p_prefs_register_bool_preference) #define prefs_register_enum_preference (*p_prefs_register_enum_preference) -#define pi (*p_pi) +#define register_giop_user (*p_register_giop_user) +#define is_big_endian (*p_is_big_endian) +#define get_CDR_string (*p_get_CDR_string) +#define get_CDR_ulong (*p_get_CDR_ulong) +#define get_CDR_enum (*p_get_CDR_enum) +#define get_CDR_object (*p_get_CDR_object) +#define get_CDR_boolean (*p_get_CDR_boolean) + +#define pi (*p_pi) #endif #include "packet.h" #include "prefs.h" +#include "packet-giop.h" #include "plugin_table.h" diff --git a/plugins/plugin_table.h b/plugins/plugin_table.h index 0ff112893b..0f9308c5d2 100644 --- a/plugins/plugin_table.h +++ b/plugins/plugin_table.h @@ -1,7 +1,7 @@ /* plugin_table.h * Table of exported addresses for Ethereal plugins. * - * $Id: plugin_table.h,v 1.20 2001/04/25 08:41:22 guy Exp $ + * $Id: plugin_table.h,v 1.21 2001/07/22 10:12:11 guy Exp $ * * Ethereal - Network traffic analyzer * Copyright 2000 by Gilbert Ramirez @@ -114,11 +114,11 @@ typedef proto_item* (*addr_proto_tree_add_notext)(proto_tree*, tvbuff_t*, gint, typedef tvbuff_t* (*addr_tvb_new_subset)(tvbuff_t*, gint, gint, gint); typedef guint (*addr_tvb_length)(tvbuff_t*); -typedef guint (*addr_tvb_length_remaining)(tvbuff_t*, gint); +typedef gint (*addr_tvb_length_remaining)(tvbuff_t*, gint); typedef gboolean (*addr_tvb_bytes_exist)(tvbuff_t*, gint, gint); typedef gboolean (*addr_tvb_offset_exists)(tvbuff_t*, gint); typedef guint (*addr_tvb_reported_length)(tvbuff_t*); -typedef guint (*addr_tvb_reported_length_remaining)(tvbuff_t*, gint); +typedef gint (*addr_tvb_reported_length_remaining)(tvbuff_t*, gint); typedef guint8 (*addr_tvb_get_guint8)(tvbuff_t*, gint); @@ -169,6 +169,16 @@ typedef void (*addr_prefs_register_enum_preference)(struct pref_module *, const char *, const char *, const char *, gint *, const enum_val_t *, gboolean); +typedef void (*addr_register_giop_user)(giop_sub_dissector_t *, gchar *, int); +typedef gboolean (*addr_is_big_endian)(MessageHeader *); +typedef guint32 (*addr_get_CDR_string)(tvbuff_t *, gchar **, int *, gboolean, + int); +typedef guint32 (*addr_get_CDR_ulong)(tvbuff_t *, int *, gboolean, int); +typedef guint32 (*addr_get_CDR_enum)(tvbuff_t *, int *, gboolean, int); +typedef void (*addr_get_CDR_object)(tvbuff_t *, packet_info *, proto_tree *, + int *, gboolean, int); +typedef gboolean (*addr_get_CDR_boolean)(tvbuff_t *, int *); + typedef struct { addr_check_col p_check_col; addr_col_clear p_col_clear; @@ -292,6 +302,14 @@ typedef struct { addr_prefs_register_uint_preference p_prefs_register_uint_preference; addr_prefs_register_bool_preference p_prefs_register_bool_preference; addr_prefs_register_enum_preference p_prefs_register_enum_preference; + + addr_register_giop_user p_register_giop_user; + addr_is_big_endian p_is_big_endian; + addr_get_CDR_string p_get_CDR_string; + addr_get_CDR_ulong p_get_CDR_ulong; + addr_get_CDR_enum p_get_CDR_enum; + addr_get_CDR_object p_get_CDR_object; + addr_get_CDR_boolean p_get_CDR_boolean; } plugin_address_table_t; #else /* ! PLUGINS_NEED_ACCESS_TABLE */ -- cgit v1.2.3