The wireshark address.h header uses 'g_memdup2' but this triggers warnings under clang due to the max version cap: In file included from ../tools/wireshark/src/plugin.c:27: In file included from /usr/include/wireshark/epan/proto.h:30: In file included from /usr/include/wireshark/epan/packet_info.h:15: /usr/include/wireshark/epan/address.h:107:18: error: 'g_memdup2' is deprecated: Not available before 2.68 [-Werror,-Wdeprecated-declarations] 107 | addr->priv = g_memdup2(&val, sizeof(val)); | ^ /usr/include/glib-2.0/glib/gstrfuncs.h:341:1: note: 'g_memdup2' has been explicitly marked deprecated here 341 | GLIB_AVAILABLE_IN_2_68 | ^ /usr/include/glib-2.0/glib/glib-visibility.h:771:32: note: expanded from macro 'GLIB_AVAILABLE_IN_2_68' 771 | #define GLIB_AVAILABLE_IN_2_68 GLIB_UNAVAILABLE (2, 68) | ^ /usr/include/glib-2.0/glib/glib-visibility.h:32:35: note: expanded from macro 'GLIB_UNAVAILABLE' 32 | #define GLIB_UNAVAILABLE(maj,min) G_UNAVAILABLE(maj,min) _GLIB_EXTERN | ^ /usr/include/glib-2.0/glib/gmacros.h:1285:47: note: expanded from macro 'G_UNAVAILABLE' 1285 | #define G_UNAVAILABLE(maj,min) __attribute__((deprecated("Not available before " #maj "." #min))) | ^ 1 error generated. It is unclear why clang warns, but gcc does not. Our plugin doesn't actually use the inline helper in address.h that references g_memdup2, but we get the warning regardless. Interestingly removing the 'gmodule.h' include avoids the warning. Since there is nothing in plugin.c that appears to need gmodule.h, removing it should be safe & done regardless. Reviewed-by: Peter Krempa <pkrempa@redhat.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
About
This is the project of Google Summer of Code 2013 accepted by QEMU.org and libvirt community. The goal of this project is, provide Wireshark dissector for Libvirt RPC protocol. It will provide Libvirt packet overview/detail analysing in Wireshark. Furthermore, it will be able to build(generated) from RPC protocol definition placed in Libvirt source tree to support latest protocol specification.
See also:
- https://www.google-melange.com/gsoc/project/google/gsoc2013/kawamuray/7001
- https://wiki.qemu.org/Features/LibvirtWiresharkDissector
Installation
Run ./configure
with --with-wireshark-dissector
option enabled. Then dissector will compiled with libvirt itself.
Add/Remove protocol from dissector's support
Modify argument input
in tools/wireshark/src/libvirt/meson.build
.
Changing installation directory
You can change installation directory of pluggable shared object(libvirt.so
) by specifying --with-ws-plugindir=<path>
.
You can install libvirt.so
into your local wireshark plugin directory:
$ ./configure --with-wireshark-dissector \
--with-ws-plugindir=$HOME/.wireshark/plugins