This is a static archive of our old Q&A Site. Please post any new questions and answers at ask.wireshark.org.

Plugin works in 1.10.07 but not in 1.11.03 (normal ?)

0

Hello,

After a long way :D I have written my RTP Extensions. So first I would like to say thanks, because I get help from that forum.

I have written my Plugin and have compiled it with MS VS 2012 with the source from the stable 1.10.07. Now I have a 32 bit plugin.dll. That is very nice and Works with the stable Version 1.10.07 very good.

Now I would like to change to Version 1.11.03. So I have Install that Version, but with my Plugin Wireshark don't start. I have then download the source code and build my Plugin with the 1.11.03 and with that new dll Wireshark start with the Version 1.11.03.

Now my Question: Is it possible to make a plugin what works in 1.10.07 and 1.11.03 without recompile?

My Plugin looks like: I Post the code but i dont think it is important for my Question

#include "config.h"
#include glib.h
#include epan/packet.h
#include "packet-rtpExtensions.h"

void proto_register_rsExtensions(void); void proto_reg_handoff_rsExtensions(void);

static int rtpext = 0x0001;
static int rtpproto= 0x80;

static void proto_register_rsExtensions(void) { … }

static void extdissectxtensions(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { …. } static void dissectxtensions(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { …. }

void proto_reg_handoff_rsExtensions(void) { dissector_handle_t dis1; dissector_handle_t dis2;

rdeo = create_dissector_handle( extdissectxtensions, foo); dissector_add_uint("rtp.hdr_ext", rtpext , rdeo );

rEx = create_dissector_handle( dissectxtensions, foo); dissector_add_uint("rtp.pt", rtpproto, rEx );

}

Have a nice day

asked 28 Apr ‘14, 06:20

Alias_alias's gravatar image

Alias_alias
21558
accept rate: 0%


One Answer:

2

Hi,

too many internal APIs have changed between 1.10 branch and the 1.12 development branch to ensure that you have a plugin compatible between major versions.

That's the drawback with plugins: you need to provide one library per major (stable) version. You can use compilation flags to have a single source code, but the recompilation is unavoidable unfortunately.

For your information, once a major version is frozen (1.10.0 or 1.12.0), we try to keep the APIs stable between minor versions (1.10.1, 1.10.2, ...) so as to ensure compatibility.

answered 28 Apr '14, 06:58

Pascal%20Quantin's gravatar image

Pascal Quantin
5.5k1060
accept rate: 30%

Ok thanks. That is not perfekt but Ok.

How can i add compilation flags ? I never have make this did you have an example ?

(28 Apr '14, 07:56) Alias_alias

You can use the VERSION_MAJOR, VERSION_MINOR and VERSION_MICRO defines to identify the Wireshark source code used to build your plugin.

(28 Apr '14, 11:13) Pascal Quantin