diff options
author | Gilbert Ramirez <gram@alumni.rice.edu> | 2000-05-31 18:32:15 +0000 |
---|---|---|
committer | Gilbert Ramirez <gram@alumni.rice.edu> | 2000-05-31 18:32:15 +0000 |
commit | 5a5f56ffbf26038ce6cc2a015bf98ad981ef0ddf (patch) | |
tree | 2e45d419f1e55ccbd858663996f83c0e43ff7d18 /plugins | |
parent | 5d76d969297cf8fa54364a768c3593a3fd276292 (diff) | |
download | wireshark-5a5f56ffbf26038ce6cc2a015bf98ad981ef0ddf.tar.gz wireshark-5a5f56ffbf26038ce6cc2a015bf98ad981ef0ddf.tar.bz2 wireshark-5a5f56ffbf26038ce6cc2a015bf98ad981ef0ddf.zip |
Fix plugin function table so that plugins work on Win32.
svn path=/trunk/; revision=2034
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/plugin_api.c | 82 | ||||
-rw-r--r-- | plugins/plugin_api.h | 29 | ||||
-rw-r--r-- | plugins/plugin_table.h | 91 |
3 files changed, 156 insertions, 46 deletions
diff --git a/plugins/plugin_api.c b/plugins/plugin_api.c index 7de21def62..07821dc76b 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.7 2000/05/05 09:32:34 guy Exp $ + * $Id: plugin_api.c,v 1.8 2000/05/31 18:32:14 gram Exp $ * * Ethereal - Network traffic analyzer * Copyright 2000 by Gilbert Ramirez <gram@xiexie.org> @@ -36,32 +36,56 @@ packet_info *p_pi = NULL; void plugin_address_table_init(plugin_address_table_t *pat) { - 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_dissector_add = pat->p_dissector_add; - p_heur_dissector_add = pat->p_heur_dissector_add; - 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; + 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_dissector_add = pat->p_dissector_add; + p_heur_dissector_add = pat->p_heur_dissector_add; + 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 = pat->p_proto_tree_add_bytes; + p_proto_tree_add_bytes_hidden = pat->p_proto_tree_add_bytes_hidden; + p_proto_tree_add_bytes_format = pat->p_proto_tree_add_bytes_format; + p_proto_tree_add_time = pat->p_proto_tree_add_time; + p_proto_tree_add_time_hidden = pat->p_proto_tree_add_time_hidden; + p_proto_tree_add_time_format = pat->p_proto_tree_add_time_format; + p_proto_tree_add_ipxnet = pat->p_proto_tree_add_ipxnet; + p_proto_tree_add_ipxnet_hidden = pat->p_proto_tree_add_ipxnet_hidden; + p_proto_tree_add_ipxnet_format = pat->p_proto_tree_add_ipxnet_format; + p_proto_tree_add_ipv4 = pat->p_proto_tree_add_ipv4; + p_proto_tree_add_ipv4_hidden = pat->p_proto_tree_add_ipv4_hidden; + p_proto_tree_add_ipv4_format = pat->p_proto_tree_add_ipv4_format; + p_proto_tree_add_ipv6 = pat->p_proto_tree_add_ipv6; + p_proto_tree_add_ipv6_hidden = pat->p_proto_tree_add_ipv6_hidden; + p_proto_tree_add_ipv6_format = pat->p_proto_tree_add_ipv6_format; + p_proto_tree_add_ether = pat->p_proto_tree_add_ether; + p_proto_tree_add_ether_hidden = pat->p_proto_tree_add_ether_hidden; + p_proto_tree_add_ether_format = pat->p_proto_tree_add_ether_format; + p_proto_tree_add_string = pat->p_proto_tree_add_string; + p_proto_tree_add_string_hidden = pat->p_proto_tree_add_string_hidden; + p_proto_tree_add_string_format = pat->p_proto_tree_add_string_format; + p_proto_tree_add_boolean = pat->p_proto_tree_add_boolean; + p_proto_tree_add_boolean_hidden = pat->p_proto_tree_add_boolean_hidden; + p_proto_tree_add_boolean_format = pat->p_proto_tree_add_boolean_format; + p_proto_tree_add_double = pat->p_proto_tree_add_double; + p_proto_tree_add_double_hidden = pat->p_proto_tree_add_double_hidden; + p_proto_tree_add_double_format = pat->p_proto_tree_add_double_format; + p_proto_tree_add_uint = pat->p_proto_tree_add_uint; + p_proto_tree_add_uint_hidden = pat->p_proto_tree_add_uint_hidden; + p_proto_tree_add_uint_format = pat->p_proto_tree_add_uint_format; + p_proto_tree_add_int = pat->p_proto_tree_add_int; + p_proto_tree_add_int_hidden = pat->p_proto_tree_add_int_hidden; + p_proto_tree_add_int_format = pat->p_proto_tree_add_int_format; + p_proto_tree_add_text = pat->p_proto_tree_add_text; + p_proto_tree_add_notext = pat->p_proto_tree_add_notext; } diff --git a/plugins/plugin_api.h b/plugins/plugin_api.h index c009d5bc1d..72ed298ecf 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.5 2000/05/05 09:32:35 guy Exp $ + * $Id: plugin_api.h,v 1.6 2000/05/31 18:32:14 gram Exp $ * * Ethereal - Network traffic analyzer * Copyright 2000 by Gilbert Ramirez <gram@xiexie.org> @@ -24,7 +24,10 @@ */ #ifdef PLUGINS_NEED_ADDRESS_TABLE + +#ifdef _WIN32 #define DLLEXPORT __declspec(dllexport) +#endif /* Some OSes (Win32) have DLLs that cannot reference symbols in the parent executable, so the executable needs to provide a collection of pointers @@ -56,15 +59,39 @@ #define proto_tree_add_item (*p_proto_tree_add_item) #define proto_tree_add_item_hidden (*p_proto_tree_add_item_hidden) #define proto_tree_add_protocol_format (*p_proto_tree_add_protocol_format) +#define proto_tree_add_bytes (*p_proto_tree_add_bytes) +#define proto_tree_add_bytes_hidden (*p_proto_tree_add_bytes_hidden) #define proto_tree_add_bytes_format (*p_proto_tree_add_bytes_format) +#define proto_tree_add_time (*p_proto_tree_add_time) +#define proto_tree_add_time_hidden (*p_proto_tree_add_time_hidden) #define proto_tree_add_time_format (*p_proto_tree_add_time_format) +#define proto_tree_add_ipxnet (*p_proto_tree_add_ipxnet) +#define proto_tree_add_ipxnet_hidden (*p_proto_tree_add_ipxnet_hidden) #define proto_tree_add_ipxnet_format (*p_proto_tree_add_ipxnet_format) +#define proto_tree_add_ipv4 (*p_proto_tree_add_ipv4) +#define proto_tree_add_ipv4_hidden (*p_proto_tree_add_ipv4_hidden) #define proto_tree_add_ipv4_format (*p_proto_tree_add_ipv4_format) +#define proto_tree_add_ipv6 (*p_proto_tree_add_ipv6) +#define proto_tree_add_ipv6_hidden (*p_proto_tree_add_ipv6_hidden) #define proto_tree_add_ipv6_format (*p_proto_tree_add_ipv6_format) +#define proto_tree_add_ether (*p_proto_tree_add_ether) +#define proto_tree_add_ether_hidden (*p_proto_tree_add_ether_hidden) #define proto_tree_add_ether_format (*p_proto_tree_add_ether_format) +#define proto_tree_add_string (*p_proto_tree_add_string) +#define proto_tree_add_string_hidden (*p_proto_tree_add_string_hidden) #define proto_tree_add_string_format (*p_proto_tree_add_string_format) +#define proto_tree_add_boolean (*p_proto_tree_add_boolean) +#define proto_tree_add_boolean_hidden (*p_proto_tree_add_boolean_hidden) #define proto_tree_add_boolean_format (*p_proto_tree_add_boolean_format) +#define proto_tree_add_double (*p_proto_tree_add_double) +#define proto_tree_add_double_hidden (*p_proto_tree_add_double_hidden) +#define proto_tree_add_double_format (*p_proto_tree_add_double_format) +#define proto_tree_add_uint (*p_proto_tree_add_uint) +#define proto_tree_add_uint_hidden (*p_proto_tree_add_uint_hidden) #define proto_tree_add_uint_format (*p_proto_tree_add_uint_format) +#define proto_tree_add_int (*p_proto_tree_add_int) +#define proto_tree_add_int_hidden (*p_proto_tree_add_int_hidden) +#define proto_tree_add_int_format (*p_proto_tree_add_int_format) #define proto_tree_add_text (*p_proto_tree_add_text) #define proto_tree_add_notext (*p_proto_tree_add_notext) diff --git a/plugins/plugin_table.h b/plugins/plugin_table.h index d00a5a948e..d3349d1328 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.3 2000/05/05 09:32:36 guy Exp $ + * $Id: plugin_table.h,v 1.4 2000/05/31 18:32:15 gram Exp $ * * Ethereal - Network traffic analyzer * Copyright 2000 by Gilbert Ramirez <gram@xiexie.org> @@ -48,20 +48,56 @@ typedef void (*addr_dissector_add)(const char *, guint32, dissector_t); typedef void (*addr_heur_dissector_add)(const char *, heur_dissector_t); typedef proto_tree* (*addr_proto_item_add_subtree)(proto_item*, gint); -typedef proto_item* (*addr_proto_tree_add_item)(proto_tree*, int, gint, gint, ...); -typedef proto_item* (*addr_proto_tree_add_item_hidden)(proto_tree*, int, gint, gint, ...); -typedef proto_item* (*addr_proto_tree_add_protocol_format)(proto_tree*, int, gint, gint, const char*, ...); -typedef proto_item* (*addr_proto_tree_add_bytes_format)(proto_tree*, int, gint, gint, const guint8*, const char*, ...); -typedef proto_item* (*addr_proto_tree_add_time_format)(proto_tree*, int, gint, gint, struct timeval*, const char*, ...); -typedef proto_item* (*addr_proto_tree_add_ipxnet_format)(proto_tree*, int, gint, gint, guint32, const char*, ...); -typedef proto_item* (*addr_proto_tree_add_ipv4_format)(proto_tree*, int, gint, gint, guint32, const char*, ...); -typedef proto_item* (*addr_proto_tree_add_ipv6_format)(proto_tree*, int, gint, gint, guint8*, const char*, ...); -typedef proto_item* (*addr_proto_tree_add_ether_format)(proto_tree*, int, gint, gint, guint8*, const char*, ...); -typedef proto_item* (*addr_proto_tree_add_string_format)(proto_tree*, int, gint, gint, const char*, const char*, ...); -typedef proto_item* (*addr_proto_tree_add_boolean_format)(proto_tree*, int, gint, gint, guint32, const char*, ...); -typedef proto_item* (*addr_proto_tree_add_uint_format)(proto_tree*, int, gint, gint, guint32, const char*, ...); -typedef proto_item* (*addr_proto_tree_add_text)(proto_tree*, gint, gint, const char*, ...); -typedef proto_item* (*addr_proto_tree_add_notext)(proto_tree*, gint, gint); +typedef proto_item* (*addr_proto_tree_add_item)(proto_tree*, int, tvbuff_t*, gint, gint, gboolean); +typedef proto_item* (*addr_proto_tree_add_item_hidden)(proto_tree*, int, tvbuff_t*, gint, gint, gboolean); +typedef proto_item* (*addr_proto_tree_add_protocol_format)(proto_tree*, int, tvbuff_t*, gint, gint, const char*, ...); + +typedef proto_item* (*addr_proto_tree_add_bytes)(proto_tree*, int, tvbuff_t*, gint, gint, const guint8*); +typedef proto_item* (*addr_proto_tree_add_bytes_hidden)(proto_tree*, int, tvbuff_t*, gint, gint, const guint8*); +typedef proto_item* (*addr_proto_tree_add_bytes_format)(proto_tree*, int, tvbuff_t*, gint, gint, const guint8*, const char*, ...); + +typedef proto_item* (*addr_proto_tree_add_time)(proto_tree*, int, tvbuff_t*, gint, gint, struct timeval*); +typedef proto_item* (*addr_proto_tree_add_time_hidden)(proto_tree*, int, tvbuff_t*, gint, gint, struct timeval*); +typedef proto_item* (*addr_proto_tree_add_time_format)(proto_tree*, int, tvbuff_t*, gint, gint, struct timeval*, const char*, ...); + +typedef proto_item* (*addr_proto_tree_add_ipxnet)(proto_tree*, int, tvbuff_t*, gint, gint, guint32); +typedef proto_item* (*addr_proto_tree_add_ipxnet_hidden)(proto_tree*, int, tvbuff_t*, gint, gint, guint32); +typedef proto_item* (*addr_proto_tree_add_ipxnet_format)(proto_tree*, int, tvbuff_t*, gint, gint, guint32, const char*, ...); + +typedef proto_item* (*addr_proto_tree_add_ipv4)(proto_tree*, int, tvbuff_t*, gint, gint, guint32); +typedef proto_item* (*addr_proto_tree_add_ipv4_hidden)(proto_tree*, int, tvbuff_t*, gint, gint, guint32); +typedef proto_item* (*addr_proto_tree_add_ipv4_format)(proto_tree*, int, tvbuff_t*, gint, gint, guint32, const char*, ...); + +typedef proto_item* (*addr_proto_tree_add_ipv6)(proto_tree*, int, tvbuff_t*, gint, gint, const guint8*); +typedef proto_item* (*addr_proto_tree_add_ipv6_hidden)(proto_tree*, int, tvbuff_t*, gint, gint, const guint8*); +typedef proto_item* (*addr_proto_tree_add_ipv6_format)(proto_tree*, int, tvbuff_t*, gint, gint, const guint8*, const char*, ...); + +typedef proto_item* (*addr_proto_tree_add_ether)(proto_tree*, int, tvbuff_t*, gint, gint, const guint8*); +typedef proto_item* (*addr_proto_tree_add_ether_hidden)(proto_tree*, int, tvbuff_t*, gint, gint, const guint8*); +typedef proto_item* (*addr_proto_tree_add_ether_format)(proto_tree*, int, tvbuff_t*, gint, gint, const guint8*, const char*, ...); + +typedef proto_item* (*addr_proto_tree_add_string)(proto_tree*, int, tvbuff_t*, gint, gint, const char*); +typedef proto_item* (*addr_proto_tree_add_string_hidden)(proto_tree*, int, tvbuff_t*, gint, gint, const char*); +typedef proto_item* (*addr_proto_tree_add_string_format)(proto_tree*, int, tvbuff_t*, gint, gint, const char*, const char*, ...); + +typedef proto_item* (*addr_proto_tree_add_boolean)(proto_tree*, int, tvbuff_t*, gint, gint, guint32); +typedef proto_item* (*addr_proto_tree_add_boolean_hidden)(proto_tree*, int, tvbuff_t*, gint, gint, guint32); +typedef proto_item* (*addr_proto_tree_add_boolean_format)(proto_tree*, int, tvbuff_t*, gint, gint, guint32, const char*, ...); + +typedef proto_item* (*addr_proto_tree_add_double)(proto_tree*, int, tvbuff_t*, gint, gint, double); +typedef proto_item* (*addr_proto_tree_add_double_hidden)(proto_tree*, int, tvbuff_t*, gint, gint, double); +typedef proto_item* (*addr_proto_tree_add_double_format)(proto_tree*, int, tvbuff_t*, gint, gint, double, const char*, ...); + +typedef proto_item* (*addr_proto_tree_add_uint)(proto_tree*, int, tvbuff_t*, gint, gint, guint32); +typedef proto_item* (*addr_proto_tree_add_uint_hidden)(proto_tree*, int, tvbuff_t*, gint, gint, guint32); +typedef proto_item* (*addr_proto_tree_add_uint_format)(proto_tree*, int, tvbuff_t*, gint, gint, guint32, const char*, ...); + +typedef proto_item* (*addr_proto_tree_add_int)(proto_tree*, int, tvbuff_t*, gint, gint, gint32); +typedef proto_item* (*addr_proto_tree_add_int_hidden)(proto_tree*, int, tvbuff_t*, gint, gint, gint32); +typedef proto_item* (*addr_proto_tree_add_int_format)(proto_tree*, int, tvbuff_t*, gint, gint, gint32, const char*, ...); + +typedef proto_item* (*addr_proto_tree_add_text)(proto_tree*, tvbuff_t*, gint, gint, const char*, ...); +typedef proto_item* (*addr_proto_tree_add_notext)(proto_tree*, tvbuff_t*, gint, gint); typedef struct { addr_check_col p_check_col; @@ -80,22 +116,45 @@ typedef struct { addr_proto_register_subtree_array p_proto_register_subtree_array; addr_dissector_add p_dissector_add; - addr_heur_dissector_add p_heur_dissector_add; addr_proto_item_add_subtree p_proto_item_add_subtree; addr_proto_tree_add_item p_proto_tree_add_item; addr_proto_tree_add_item_hidden p_proto_tree_add_item_hidden; addr_proto_tree_add_protocol_format p_proto_tree_add_protocol_format; + addr_proto_tree_add_bytes p_proto_tree_add_bytes; + addr_proto_tree_add_bytes_hidden p_proto_tree_add_bytes_hidden; addr_proto_tree_add_bytes_format p_proto_tree_add_bytes_format; + addr_proto_tree_add_time p_proto_tree_add_time; + addr_proto_tree_add_time_hidden p_proto_tree_add_time_hidden; addr_proto_tree_add_time_format p_proto_tree_add_time_format; + addr_proto_tree_add_ipxnet p_proto_tree_add_ipxnet; + addr_proto_tree_add_ipxnet_hidden p_proto_tree_add_ipxnet_hidden; addr_proto_tree_add_ipxnet_format p_proto_tree_add_ipxnet_format; + addr_proto_tree_add_ipv4 p_proto_tree_add_ipv4; + addr_proto_tree_add_ipv4_hidden p_proto_tree_add_ipv4_hidden; addr_proto_tree_add_ipv4_format p_proto_tree_add_ipv4_format; + addr_proto_tree_add_ipv6 p_proto_tree_add_ipv6; + addr_proto_tree_add_ipv6_hidden p_proto_tree_add_ipv6_hidden; addr_proto_tree_add_ipv6_format p_proto_tree_add_ipv6_format; + addr_proto_tree_add_ether p_proto_tree_add_ether; + addr_proto_tree_add_ether_hidden p_proto_tree_add_ether_hidden; addr_proto_tree_add_ether_format p_proto_tree_add_ether_format; + addr_proto_tree_add_string p_proto_tree_add_string; + addr_proto_tree_add_string_hidden p_proto_tree_add_string_hidden; addr_proto_tree_add_string_format p_proto_tree_add_string_format; + addr_proto_tree_add_boolean p_proto_tree_add_boolean; + addr_proto_tree_add_boolean_hidden p_proto_tree_add_boolean_hidden; addr_proto_tree_add_boolean_format p_proto_tree_add_boolean_format; + addr_proto_tree_add_double p_proto_tree_add_double; + addr_proto_tree_add_double_hidden p_proto_tree_add_double_hidden; + addr_proto_tree_add_double_format p_proto_tree_add_double_format; + addr_proto_tree_add_uint p_proto_tree_add_uint; + addr_proto_tree_add_uint_hidden p_proto_tree_add_uint_hidden; addr_proto_tree_add_uint_format p_proto_tree_add_uint_format; + addr_proto_tree_add_int p_proto_tree_add_int; + addr_proto_tree_add_int_hidden p_proto_tree_add_int_hidden; + addr_proto_tree_add_int_format p_proto_tree_add_int_format; addr_proto_tree_add_text p_proto_tree_add_text; addr_proto_tree_add_notext p_proto_tree_add_notext; } plugin_address_table_t; |