Wireshark-dev: Re: [Wireshark-dev] Routines for registering dissectors with a"portnumber", and
From: "news.gmane.com" <[email protected]>
Date: Mon, 20 Dec 2010 18:45:38 +0100
"Guy Harris" <[email protected]> wrote in message 
news:[email protected]...
> On Dec 19, 2010, at 10:37 PM, news.gmane.com wrote:
>> Well, that meens, any dissector DLL that uses this function stops working
>> with the next revision of libwireshark.dll
> We have never guaranteed that a dissector built for Wireshark major
> version 1.x will work with the development version 1.{x+1} or the
> next major release 1.{x+2}.  We only guarantee that a dissector built
> for 1.x will work with 1.x.y, i.e. that stability will be preserved for
> all minor releases corresponding to a given major release.

So this change to trunk will not affect 1.4.x, will it? That's good.

BTW: When you only rename a function as you announce in this list it can be 
still compatible with older DLLs. You need to create an alias in the DEF 



This creates four entries in the export table while the implementaion has 
only the new (renamed) functions.

>> I hope the new function names become stable, so that someday a Wireshark 
>> API
>> can be defined.
> It takes more than just stable function names for a stable API.
>  It requires that:
> for any function, its signature not change (no added or removed 
> parameters);
> no function be removed;
> no incompatible change to any arguments for a function be made.

This is correct but incomplete. Please add:
- no incompatible change to any structure that is reference by any argument
- no change in the expected behavior must not change

The first should be illustrated. The pinfo member fd points to a structure 
that has been changed between 1.2.x and 1.4.x. You this structure to 
retrieve the packet number, used to identify conversations.