2015-11-30 15:40 GMT+01:00 Pascal Quantin <[email protected]>:

> Hi all,
>
> I tried to create a codecs plugin for Windows, but the plugin registration
> fails.
>
> As reported previously on this list (
> https://www.wireshark.org/lists/wireshark-dev/201409/msg00043.html), this
> because the plugin itself ends with its own copy of register_codec function
> instead of using one exported by the main program. So the codecs of the
> plugin gets registered in a hash table local to the plugin.
> I tried declaring register_codec as WS_DLL_PUBLIC but as expected it does
> not work and it triggers the following error:
>
>        "D:\dev\wireshark\x64\Wireshark.sln" (default target) (1) ->
>        "D:\dev\wireshark\x64\ALL_BUILD.vcxproj.metaproj" (default target)
> (2) -
>        >
>        "D:\dev\wireshark\x64\codecs\codecs.vcxproj.metaproj" (default
> target) (
>        11) ->
>        "D:\dev\wireshark\x64\codecs\codecs.vcxproj" (default target) (85)
> ->
>        (ClCompile target) ->
>          D:\dev\wireshark\git\codecs\codecs.c(160): warning C4273:
> 'register_co
>        dec' : inconsistent dll linkage
> [D:\dev\wireshark\x64\codecs\codecs.vcxp
>        roj]
>
>
>        "D:\dev\wireshark\x64\Wireshark.sln" (default target) (1) ->
>        "D:\dev\wireshark\x64\ALL_BUILD.vcxproj.metaproj" (default target)
> (2) -
>        >
>        "D:\dev\wireshark\x64\wireshark.vcxproj.metaproj" (default target)
> (50)
>        ->
>        "D:\dev\wireshark\x64\wireshark.vcxproj" (default target) (142) ->
>        (Link target) ->
>          LINK : fatal error LNK1149: output filename matches input
> filename 'D:
>        \dev\wireshark\x64\run\Debug\Wireshark.lib'
> [D:\dev\wireshark\x64\wiresh
>        ark.vcxproj]
>
>     1 Warning(s)
>     1 Error(s)
>
> I'm not sure it makes sense anyway to have a library depending on a
> function (and global variable) from the main program. This sounds like bad
> design (and maybe not even doable on some platforms but I'm not very
> familiar of this kind of issues).
>
> Should we move codecs functions to one of the existing libraries? Or add
> it to its own? Because so far this officially supported plugin type does
> not work at all (at least on Windows).
>

A much less intrusive solution could be to modify register_codec_module()
prototype so as to givve as an argument a pointer to the hash table, and
introduce a new register_codec_from_plugin() function that would be
identical to register_codec() but with the hash table pointer as argument.
Unless someone objects, I'm gonna propose this instead.

Best regards,
Pascal.
___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <[email protected]>
Archives:    https://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
             mailto:[email protected]?subject=unsubscribe

Reply via email to