From eedea6fcd4895372632e14ad187f37ab7d92e8fc Mon Sep 17 00:00:00 2001 From: Guy Harris Date: Wed, 15 Mar 2000 19:09:52 +0000 Subject: Give all the Ethereal APIs available to plugins their own function pointers, and call the APIs by calling through the function pointers - the old technique of using wrappers didn't work, as the underlying function they all called no longer exists. svn path=/trunk/; revision=1724 --- plugins/plugin_api.c | 158 +++++++++------------------------------------------ 1 file changed, 27 insertions(+), 131 deletions(-) (limited to 'plugins/plugin_api.c') diff --git a/plugins/plugin_api.c b/plugins/plugin_api.c index 4262c7ca58..4da934b3af 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.4 2000/02/12 11:24:24 guy Exp $ + * $Id: plugin_api.c,v 1.5 2000/03/15 19:09:16 guy Exp $ * * Ethereal - Network traffic analyzer * Copyright 2000 by Gilbert Ramirez @@ -31,139 +31,35 @@ #include "plugin_api.h" -static plugin_address_table_t *patable = NULL; packet_info *p_pi = NULL; - -#ifdef pi -#undef pi -#endif - void plugin_address_table_init(plugin_address_table_t *pat) { - patable = pat; - p_pi = pat->pi; -} - -gint -check_col(frame_data* fd, gint col) -{ - return patable->check_col(fd, col); -} - -/*void col_add_fstr(frame_data*, gint, gchar*, ...); -void col_append_fstr(frame_data*, gint, gchar*, ...);*/ - -void -col_add_str(frame_data* fd, gint col, const gchar* str) -{ - patable->col_add_str(fd, col, str); -} - -void -col_append_str(frame_data* fd, gint col, gchar* str) -{ - patable->col_append_str(fd, col, str); -} - -void -dfilter_init(void) -{ - patable->dfilter_init(); -} - -void -dfilter_cleanup(void) -{ - patable->dfilter_cleanup(); -} - -int -proto_register_protocol(char* name, char* abbrev) -{ - return patable->proto_register_protocol(name, abbrev); -} - -void -proto_register_field_array(int parent, hf_register_info* hf, int num_records) -{ - patable->proto_register_field_array(parent, hf, num_records); -} - -void -proto_register_subtree_array(int** indices, int num_indices) -{ - patable->proto_register_subtree_array(indices, num_indices); -} - -proto_tree * -proto_item_add_subtree(proto_item* pi, gint idx) -{ - return patable->proto_item_add_subtree(pi, idx); -} - -proto_item * -proto_tree_add_item(proto_tree *tree, int hfindex, gint start, gint length, ...) -{ - proto_item *pi; - va_list ap; - - va_start(ap, length); - pi = patable->_proto_tree_add_item_value(tree, hfindex, start, length, 0, 1, ap); - va_end(ap); - - return pi; -} - -proto_item * -proto_tree_add_item_hidden(proto_tree *tree, int hfindex, gint start, gint length, ...) -{ - proto_item *pi; - va_list ap; - - va_start(ap, length); - pi = patable->_proto_tree_add_item_value(tree, hfindex, start, length, 0, 0, ap); - va_end(ap); - - return pi; -} - -proto_item * -proto_tree_add_item_format(proto_tree *tree, int hfindex, gint start, gint length, ...) -{ - proto_item *pi; - va_list ap; - - va_start(ap, length); - pi = patable->_proto_tree_add_item_value(tree, hfindex, start, length, 1, 1, ap); - va_end(ap); - - return pi; -} - -proto_item * -proto_tree_add_notext(proto_tree *tree, gint start, gint length, ...) -{ - proto_item *pi; - va_list ap; - - va_start(ap, length); - pi = patable->_proto_tree_add_item_value(tree, patable->hf_text_only, start, length, 0, 1, ap); - va_end(ap); - - return pi; -} - -proto_item * -proto_tree_add_text(proto_tree *tree, gint start, gint length, ...) -{ - proto_item *pi; - va_list ap; - - va_start(ap, length); - pi = patable->_proto_tree_add_item_value(tree, patable->hf_text_only, start, length, 1, 1, ap); - va_end(ap); - - return pi; + p_pi = pat->p_pi; + p_check_col = pat->p_check_col; + p_col_add_fstr = pat->p_col_add_fstr; + p_col_append_fstr = pat->p_col_append_fstr; + p_col_add_str = pat->p_col_add_str; + p_col_append_str = pat->p_col_append_str; + p_dfilter_init = pat->p_dfilter_init; + p_dfilter_cleanup = pat->p_dfilter_cleanup; + p_proto_register_protocol = pat->p_proto_register_protocol; + p_proto_register_field_array = pat->p_proto_register_field_array; + p_proto_register_subtree_array = pat->p_proto_register_subtree_array; + p_proto_item_add_subtree = pat->p_proto_item_add_subtree; + p_proto_tree_add_item = pat->p_proto_tree_add_item; + p_proto_tree_add_item_hidden = pat->p_proto_tree_add_item_hidden; + p_proto_tree_add_protocol_format = pat->p_proto_tree_add_protocol_format; + p_proto_tree_add_bytes_format = pat->p_proto_tree_add_bytes_format; + p_proto_tree_add_time_format = pat->p_proto_tree_add_time_format; + p_proto_tree_add_ipxnet_format = pat->p_proto_tree_add_ipxnet_format; + p_proto_tree_add_ipv4_format = pat->p_proto_tree_add_ipv4_format; + p_proto_tree_add_ipv6_format = pat->p_proto_tree_add_ipv6_format; + p_proto_tree_add_ether_format = pat->p_proto_tree_add_ether_format; + p_proto_tree_add_string_format = pat->p_proto_tree_add_string_format; + p_proto_tree_add_boolean_format = pat->p_proto_tree_add_boolean_format; + p_proto_tree_add_uint_format = pat->p_proto_tree_add_uint_format; + p_proto_tree_add_text = pat->p_proto_tree_add_text; + p_proto_tree_add_notext = pat->p_proto_tree_add_notext; } -- cgit v1.2.3