[libvirt] [PATCH 5/5] tools: Drop support for pre-2.4.0 wireshark

Michal Privoznik mprivozn at redhat.com
Fri Feb 8 11:23:28 UTC 2019


The wireshark-2.4.0 is almost 2 years old now. Assuming anybody
interested in running latest libvirt doesn't run old wireshark,
it is safe to do this. It also simplifies the code.

Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
---
 libvirt.spec.in                      |  8 ++----
 m4/virt-wireshark.m4                 |  4 +--
 tools/wireshark/src/packet-libvirt.c | 39 ----------------------------
 tools/wireshark/src/plugin.c         | 14 +++-------
 4 files changed, 7 insertions(+), 58 deletions(-)

diff --git a/libvirt.spec.in b/libvirt.spec.in
index 13f41bb4a5..9beffba203 100644
--- a/libvirt.spec.in
+++ b/libvirt.spec.in
@@ -166,11 +166,7 @@
 # Enable wireshark plugins for all distros shipping libvirt 1.2.2 or newer
 %if 0%{?fedora}
     %define with_wireshark 0%{!?_without_wireshark:1}
-%endif
-%if 0%{?fedora} || 0%{?rhel} > 7
     %define wireshark_plugindir %(pkg-config --variable plugindir wireshark)/epan
-%else
-    %define wireshark_plugindir %{_libdir}/wireshark/plugins/epan
 %endif
 
 # Enable libssh transport for new enough distros
@@ -389,7 +385,7 @@ BuildRequires: numad
 %endif
 
 %if %{with_wireshark}
-BuildRequires: wireshark-devel >= 2.1.0
+BuildRequires: wireshark-devel >= 2.4.0
 %endif
 
 %if %{with_libssh}
@@ -935,7 +931,7 @@ Bash completion script stub.
 %if %{with_wireshark}
 %package wireshark
 Summary: Wireshark dissector plugin for libvirt RPC transactions
-Requires: wireshark >= 1.12.6-4
+Requires: wireshark >= 2.4.0
 Requires: %{name}-libs = %{version}-%{release}
 
 %description wireshark
diff --git a/m4/virt-wireshark.m4 b/m4/virt-wireshark.m4
index a8f8083f5e..2fbf691590 100644
--- a/m4/virt-wireshark.m4
+++ b/m4/virt-wireshark.m4
@@ -18,14 +18,14 @@ dnl <http://www.gnu.org/licenses/>.
 dnl
 
 AC_DEFUN([LIBVIRT_ARG_WIRESHARK],[
-  LIBVIRT_ARG_WITH_FEATURE([WIRESHARK_DISSECTOR], [wireshark], [check], [1.11.3])
+  LIBVIRT_ARG_WITH_FEATURE([WIRESHARK_DISSECTOR], [wireshark], [check], [2.4.0])
   LIBVIRT_ARG_WITH([WS_PLUGINDIR],
                    [wireshark plugins directory for use when installing
                    wireshark plugin], [check])
 ])
 
 AC_DEFUN([LIBVIRT_CHECK_WIRESHARK],[
-  LIBVIRT_CHECK_PKG([WIRESHARK_DISSECTOR], [wireshark], [1.11.3])
+  LIBVIRT_CHECK_PKG([WIRESHARK_DISSECTOR], [wireshark], [2.4.0])
 
   dnl Check for system location of wireshark plugins
   if test "x$with_wireshark_dissector" != "xno" ; then
diff --git a/tools/wireshark/src/packet-libvirt.c b/tools/wireshark/src/packet-libvirt.c
index e759e81bae..dc3aa410e5 100644
--- a/tools/wireshark/src/packet-libvirt.c
+++ b/tools/wireshark/src/packet-libvirt.c
@@ -42,12 +42,6 @@
 # define dbg(fmt, ...)
 #endif
 
-/* Wireshark 1.12 brings API change */
-#define WIRESHARK_VERSION \
-    ((VERSION_MAJOR * 1000 * 1000) + \
-     (VERSION_MINOR * 1000) + \
-     (VERSION_MICRO))
-
 static int proto_libvirt = -1;
 static int hf_libvirt_length = -1;
 static int hf_libvirt_program = -1;
@@ -373,17 +367,8 @@ dissect_libvirt_payload_xdr_data(tvbuff_t *tvb, proto_tree *tree, gint payload_l
         payload_length -= 4;
     }
 
-#if WIRESHARK_VERSION < 200400
-    payload_tvb = tvb_new_subset(tvb, start, -1, payload_length);
-#else
     payload_tvb = tvb_new_subset_remaining(tvb, start);
-#endif
-
-#if WIRESHARK_VERSION < 1012000
-    payload_data = (caddr_t)tvb_memdup(payload_tvb, 0, payload_length);
-#else
     payload_data = (caddr_t)tvb_memdup(NULL, payload_tvb, 0, payload_length);
-#endif
     xdrmem_create(&xdrs, payload_data, payload_length, XDR_DECODE);
 
     dissect(payload_tvb, tree, &xdrs, -1);
@@ -456,14 +441,9 @@ dissect_libvirt_payload(tvbuff_t *tvb, proto_tree *tree,
     proto_tree_add_item(tree, hf_libvirt_unknown, tvb, VIR_HEADER_LEN, -1, ENC_NA);
 }
 
-#if WIRESHARK_VERSION < 1012000
-static void
-dissect_libvirt_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
-#else
 static int
 dissect_libvirt_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
                         void *opaque ATTRIBUTE_UNUSED)
-#endif
 {
     goffset offset;
     guint32 prog, proc, type, serial, status;
@@ -524,44 +504,25 @@ dissect_libvirt_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
         dissect_libvirt_payload(tvb, libvirt_tree, prog, proc, type, status);
     }
 
-#if WIRESHARK_VERSION >= 1012000
     return 0;
-#endif
 }
 
-#if WIRESHARK_VERSION >= 1099002
 static guint
 get_message_len(packet_info *pinfo ATTRIBUTE_UNUSED, tvbuff_t *tvb, int offset, void *data ATTRIBUTE_UNUSED)
-#else
-static guint32
-get_message_len(packet_info *pinfo ATTRIBUTE_UNUSED, tvbuff_t *tvb, int offset)
-#endif
 {
     return tvb_get_ntohl(tvb, offset);
 }
 
-#if WIRESHARK_VERSION >= 2000001
 static int
 dissect_libvirt(tvbuff_t *tvb, packet_info *pinfo,
                 proto_tree *tree, void *data ATTRIBUTE_UNUSED)
-#else
-static void
-dissect_libvirt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
-#endif
 {
     /* Another magic const - 4; simply, how much bytes
      * is needed to tell the length of libvirt packet. */
-#if WIRESHARK_VERSION < 1012000
-    tcp_dissect_pdus(tvb, pinfo, tree, TRUE, 4,
-                     get_message_len, dissect_libvirt_message);
-#else
     tcp_dissect_pdus(tvb, pinfo, tree, TRUE, 4,
                      get_message_len, dissect_libvirt_message, NULL);
-#endif
 
-#if WIRESHARK_VERSION >= 2000001
     return tvb_captured_length(tvb);
-#endif
 }
 
 void
diff --git a/tools/wireshark/src/plugin.c b/tools/wireshark/src/plugin.c
index 3741334e85..504e4383a7 100644
--- a/tools/wireshark/src/plugin.c
+++ b/tools/wireshark/src/plugin.c
@@ -31,29 +31,21 @@
      (VERSION_MICRO))
 
 #if WIRESHARK_VERSION < 2005000
-/* In 1.12 wireshark WS_DLL_PUBLIC_NOEXTERN was substitued with
- * WS_DLL_PUBLIC_DEF. See wireshark's commit
- * 5d87a8c46171f572568db5a47c093423482e342f for more info. */
-# ifndef WS_DLL_PUBLIC_NOEXTERN
-#  define WS_DLL_PUBLIC_NOEXTERN WS_DLL_PUBLIC_DEF
-# endif
 
-# ifndef ENABLE_STATIC
-WS_DLL_PUBLIC_NOEXTERN const gchar version[] = VERSION;
+WS_DLL_PUBLIC_DEF const gchar version[] = VERSION;
 
 /* Start the functions we need for the plugin stuff */
 
-WS_DLL_PUBLIC_NOEXTERN void
+WS_DLL_PUBLIC_DEF void
 plugin_register(void)
 {
   proto_register_libvirt();
 }
-WS_DLL_PUBLIC_NOEXTERN void
+WS_DLL_PUBLIC_DEF void
 plugin_reg_handoff(void)
 {
   proto_reg_handoff_libvirt();
 }
-# endif
 
 #elif WIRESHARK_VERSION < 2009000
 
-- 
2.19.2




More information about the libvir-list mailing list