Ethereal-dev: Re: [Ethereal-dev] Plugin API
Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.
From: Tomas Kukosa <tomas.kukosa@xxxxxxxxxx>
Date: Thu, 01 Nov 2001 09:43:31 +0100
> > However, the changes that should be made are changes to the header files
> > that declare the functions in question; those header files should be
> > changed to add "extern",
>
> I've checked in changes to do that, so *if* you compile from the current
> CVS code, or wait for the next release, you should be able to build, on
> Windows, a plugin that's built from more than one source file.
It works fine. Thanks.
Some mistakes seem to be in plugin_api_defs.h. Second parameters of
following functions have different type than new version of tvbuff.*.
gint (*p_tvb_find_guint8)(tvbuff_t*, gint, guint, guint8);
should be
gint (*p_tvb_find_guint8)(tvbuff_t*, gint, gint, guint8);
gint (*p_tvb_pbrk_guint8)(tvbuff_t *, gint, guint, guint8 *);
should be
gint (*p_tvb_pbrk_guint8)(tvbuff_t *, gint, gint, guint8 *);
Would not be better write plugin_api_defs.h in following form?
addr_check_col p_check_col;
addr_col_clear p_col_clear;
addr_col_add_fstr p_col_add_fstr;
...
It would require less effort for changes.
Could you add to Plugin API some additional function from packet.h,
conversation.h and value_string.h? Lines of source code are below.
Regards,
Tom Kukosa
--- plugins.c --------------------------------------------
patable.p_register_init_routine = register_init_routine;
patable.p_conv_dissector_add = conv_dissector_add;
patable.p_conversation_new = conversation_new;
patable.p_find_conversation = find_conversation;
patable.p_match_strval = match_strval;
patable.p_val_to_str = val_to_str;
--- pugin_api.c -----------------------------------------
p_register_init_routine = pat->p_register_init_routine;
p_conv_dissector_add = pat->p_conv_dissector_add;
p_conversation_new = pat->p_conversation_new;
p_find_conversation = pat->p_find_conversation;
p_match_strval = pat->p_match_strval;
p_val_to_str = pat->p_val_to_str;
--- plugin_table.h -------------------------------------
typedef void (*addr_register_init_routine)(void (*func)(void));
typedef void (*addr_conv_dissector_add)(const char *, dissector_t, int);
typedef conversation_t *(*addr_conversation_new)(address *, address *,
port_type, guint32, guint32, guint);
typedef conversation_t *(*addr_find_conversation)(address *, address *,
port_type, guint32, guint32, guint);
typedef gchar* (*addr_match_strval)(guint32, const value_string*);
typedef gchar* (*addr_val_to_str)(guint32, const value_string *, const
char *);
...
addr_register_init_routine p_register_init_routine;
addr_conv_dissector_add p_conv_dissector_add;
addr_conversation_new p_conversation_new;
addr_find_conversation p_find_conversation;
addr_match_strval p_match_strval;
addr_val_to_str p_val_to_str;
--- plugin_api.h ---------------------------------------
#define register_init_routine (*p_register_init_routine)
#define conv_dissector_add (*p_conv_dissector_add)
#define conversation_new (*p_conversation_new)
#define find_conversation (*p_find_conversation)
#define match_strval (*p_match_strval)
#define val_to_str (*p_val_to_str)
--- plugin_api_defs.h ----------------------------------
void (*p_register_init_routine)(void (*func)(void));
void (*p_conv_dissector_add)(const char *, dissector_t, int);
conversation_t *(*p_conversation_new)(address *, address *,
port_type, guint32, guint32, guint);
conversation_t *(*p_find_conversation)(address *, address *,
port_type, guint32, guint32, guint);
gchar* (*p_match_strval)(guint32, const value_string*);
gchar* (*p_val_to_str)(guint32, const value_string *, const char *);
/* or other approach */
addr_register_init_routine p_register_init_routine;
addr_conv_dissector_add p_conv_dissector_add;
addr_conversation_new p_conversation_new;
addr_find_conversation p_find_conversation;
addr_match_strval p_match_strval;
addr_val_to_str p_val_to_str;
- Follow-Ups:
- Re: [Ethereal-dev] Plugin API
- From: Guy Harris
- Re: [Ethereal-dev] Plugin API
- From: Guy Harris
- Re: [Ethereal-dev] Plugin API
- Next by Date: Re: [Ethereal-dev] Plugin API
- Next by thread: Re: [Ethereal-dev] Plugin API
- Index(es):





