Ethereal-dev: Re: [ethereal-dev] Ethereal and H.323 dissector possible license solutio

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

Date: Wed, 20 Sep 2000 09:23:04 +0200
oops, forgot to change the To: field.... 
-- 
Andreas Sikkema
andreas.sikkema@xxxxxxxxxxx
"Standing barefoot in a river of clues, most people would 
         not get their toes wet." - Brian Kantor in a.s.r.

---------------------- Forwarded by Andreas Sikkema/HVS/BE/PHILIPS on 20-09-2000 09:21 ---------------------------

Andreas Sikkema
20-09-2000 09:16


To:	gram@xxxxxxxxxx@SMTP 
cc:	 
Subject:	Re: [ethereal-dev] Ethereal and H.323 dissector possible license solution  
Classification:	Unclassified




> In parallel to the GPL/MPL research, we could work on making the
> Ethereal plugin API better.  Andreas -- do you still have the work
> you did in trying to get H.323 to work as a plugin? Besides the
> problem with multiple dissectors in a single loadable module (which
> someone said "should work"), where there other problems? If the
> plugin API needs work, we will fix it. I know you also had cross-platform
> code problems, so those would have to be addressed as well. (or we
> just compile H.323 on the platforms which work with the C++ code).

The biggest plugin related problem I had was to get these items into the 
plugin address table:
- conversations
- heuristic dissectors
- tvb* code
- three or so proto_tree_add_* functions

I did add these functions, but I seem to remember I ran into the 
problem that the linker complained about multiple definitions, while I 
couldn't find the culprit....

Currently the linker gives these error, but I think some of them are just 
plain wrong (ie, where I hacked a little too much), see the attached PAT

h235.obj : error LNK2001: unresolved external symbol _proto_tree_add_string
h245.obj : error LNK2001: unresolved external symbol _proto_tree_add_string
h235.obj : error LNK2001: unresolved external symbol _proto_item_add_subtree
h245.obj : error LNK2001: unresolved external symbol _proto_item_add_subtree
packet-h225.obj : error LNK2001: unresolved external symbol _proto_item_add_subtree
packet-h245.obj : error LNK2001: unresolved external symbol _proto_item_add_subtree
h235.obj : error LNK2001: unresolved external symbol _proto_tree_add_text
h245.obj : error LNK2001: unresolved external symbol _proto_tree_add_text
h235.obj : error LNK2001: unresolved external symbol _proto_tree_add_uint
h245.obj : error LNK2001: unresolved external symbol _proto_tree_add_uint
h245.obj : error LNK2001: unresolved external symbol _proto_tree_add_boolean
h245.obj : error LNK2001: unresolved external symbol _proto_tree_add_ipv4
h245.obj : error LNK2001: unresolved external symbol _proto_tree_add_ipv6
packet-h225.obj : error LNK2001: unresolved external symbol _proto_tree_add_item
packet-h245.obj : error LNK2001: unresolved external symbol _proto_tree_add_item
packet-h225.obj : error LNK2001: unresolved external symbol _col_add_fstr
packet-h225.obj : error LNK2001: unresolved external symbol _col_add_str
packet-h245.obj : error LNK2001: unresolved external symbol _col_add_str
packet-h225.obj : error LNK2001: unresolved external symbol _check_col
packet-h245.obj : error LNK2001: unresolved external symbol _check_col
packet-h225.obj : error LNK2001: unresolved external symbol _tvb_get_guint8
packet-h245.obj : error LNK2001: unresolved external symbol _tvb_get_guint8
packet-h225.obj : error LNK2001: unresolved external symbol _tvb_length_remaining
packet-h245.obj : error LNK2001: unresolved external symbol _tvb_length_remaining
packet-h225.obj : error LNK2001: unresolved external symbol _proto_register_subtree_array
packet-h245.obj : error LNK2001: unresolved external symbol _proto_register_subtree_array
packet-h225.obj : error LNK2001: unresolved external symbol _proto_register_field_array
packet-h245.obj : error LNK2001: unresolved external symbol _proto_register_field_array
packet-h225.obj : error LNK2001: unresolved external symbol _proto_register_protocol
packet-h245.obj : error LNK2001: unresolved external symbol _proto_register_protocol
packet-h225.obj : error LNK2001: unresolved external symbol _dissector_add
packet-h245.obj : error LNK2001: unresolved external symbol _conversation_new
packet-h245.obj : error LNK2001: unresolved external symbol _find_conversation
packet-h245.obj : error LNK2001: unresolved external symbol _heur_dissector_add
packet-h245.obj : error LNK2001: unresolved external symbol _pi
packet-h245.obj : error LNK2001: unresolved external symbol _register_init_routine



In the attachment I also commented out the conversation_* code, I can't 
remember why, but I ran into big problems, did I do something wrong?

Anyway, to get rid of the multiple definition errors the linker gave me, I wrapped the 
plugin_api.h in a #ifndef/#endif pair, but this didn't help at all....

-- 
Andreas Sikkema
andreas.sikkema@xxxxxxxxxxx
"Standing barefoot in a river of clues, most people would 
         not get their toes wet." - Brian Kantor in a.s.r.



Attachment: plugins.c
Description: Binary data

Attachment: plugin_table.h
Description: Binary data

Attachment: plugin_api.h
Description: Binary data

Attachment: plugin_api.c
Description: Binary data