ANNOUNCEMENT: Live Wireshark University & Allegro Packets online APAC Wireshark Training Session
July 17th, 2024 | 10:00am-11:55am SGT (UTC+8) | Online

Ethereal-dev: Re: [Ethereal-dev] How can I register explicit GIOP Dissectors?

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Bernd Becker <bb@xxxxxxxxxxxxxxx>
Date: Wed, 06 Aug 2003 15:14:51 +0200
The problem may be that register_giop_user_module() is not being exported,
which means it is missing from the corresponding "export" files in the
plugins directory. Check for another exported function
(e.g. register_giop_user()) and add register_giop_user_module() accordingly
and then try to compile again.

Probably nobody has ever used that feature under Windows. And as the
two default giop plugins (coseventcomm and cosnaming) don't have it
enabled either, nobody has noticed it. It works on Unix.

Note that there have been some changes in the way those "export" files
are generated. In the current CVS version, you probably need to change
Xepan_plugins.c Xplugin_api.c Xplugin_api.h Xplugin_api_decls.h
Xplugin_table.h plugin_api_list.c
There is a README.interface in the plugins directory with explanations.

Let us know if you succeed so we can correct that in the CVS version of
ethereal (or provide a patch yourself if you can).

Good luck,
Bernd

--On Tuesday, August 05, 2003 21:23:27 +0200 frodo.hobbit@xxxxxxx wrote:

As the "heuristic" approach of idl2eth creates unsatisfactory results with
"deep" interface inheritance, I wanted to use explicit dissectors when
creating my giop plugins.
But it looks as though the address of register_giop_user_module is not
passed with plugin_init().

Does this mean that explicit dissectors for GIOP are not supported
anymore?  Or how else can I register explicit dissectors?
I do not want a customized Ethereal, as I do not want to limit my plugins
to my version of Ethereal.

Is there something else I can do, e.g. in my heuristic dissector (I'd need
the repoid for this ...)

The unsatisfactory results come from roughly the following scenario:
interface A;
interface B : A
{
  foo (B-Parameter-Set);
}

interface C : A
{
  foo (C-Parameter-Set);
}
Now whenever C::foo is met by the heuristic dissector, the parameters are
interpreted as B-parameters.
FYI: I'm using ethereal 0.9.13.a on Windows 2000.

Kind regards,

Jens