endif ! WITH_BASH_COMPLETION
-EXTRA_DIST += \
- wireshark/util/genxdrstub.pl \
- wireshark/util/make-dissector-reg
+EXTRA_DIST += wireshark/util/genxdrstub.pl
if WITH_WIRESHARK_DISSECTOR
wireshark_src_libvirt_la_CFLAGS = \
-I wireshark/src $(WIRESHARK_DISSECTOR_CFLAGS) $(XDR_CFLAGS)
wireshark_src_libvirt_la_LDFLAGS = -avoid-version -module
-nodist_wireshark_src_libvirt_la_SOURCES = wireshark/src/plugin.c
wireshark_src_libvirt_la_SOURCES = \
wireshark/src/packet-libvirt.h \
- wireshark/src/packet-libvirt.c
+ wireshark/src/packet-libvirt.c \
+ wireshark/src/plugin.c
wireshark/src/packet-libvirt.c: wireshark/src/packet-libvirt.h \
wireshark/src/libvirt/protocol.h
-wireshark/src/plugin.c: wireshark/src/packet-libvirt.c
- $(AM_V_GEN)cd wireshark/src && \
- $(abs_top_srcdir)/tools/wireshark/util/make-dissector-reg \
- . plugin packet-libvirt.c
-
WS_DISSECTOR_PROTO_FILES = \
$(abs_top_srcdir)/src/remote/remote_protocol.x \
$(abs_top_srcdir)/src/remote/qemu_protocol.x \
$(PERL) $(abs_top_srcdir)/tools/wireshark/util/genxdrstub.pl \
$(WS_DISSECTOR_PROTO_FILES)
-CLEANFILES += wireshark/src/plugin.c
-
endif WITH_WIRESHARK_DISSECTOR
if WITH_BSD_NSS
--- /dev/null
+/*
+ * plugin.c: Wireshark's plugin registration
+ *
+ * The registration routines were generated using wireshark's
+ * make-dissector-reg script (found under wirshark.git/tools/):
+ *
+ * libvirt.git/tools/wireshark/src $ \
+ * /path/to/wireshark.git/tools/make-dissector-reg \
+ * . plugin packet-libvirt.c
+ *
+ */
+
+#include <config.h>
+
+#include <gmodule.h>
+
+/* plugins are DLLs */
+#define WS_BUILD_DLL
+#include <wireshark/ws_symbol_export.h>
+
+#include "packet-libvirt.h"
+
+/* 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;
+
+/* Start the functions we need for the plugin stuff */
+
+WS_DLL_PUBLIC_NOEXTERN void
+plugin_register(void)
+{
+ proto_register_libvirt();
+}
+WS_DLL_PUBLIC_NOEXTERN void
+plugin_reg_handoff(void)
+{
+ proto_reg_handoff_libvirt();
+}
+#endif
+++ /dev/null
-#! /bin/sh
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
-#
-# Copied from Wireshark(http://www.wireshark.org/)
-
-#
-# The first argument is the directory in which the source files live.
-#
-srcdir="$1"
-shift
-
-#
-# The second argument is either "plugin" or "dissectors"; if it's
-# "plugin", we build a plugin.c for a plugin, and if it's
-# "dissectors", we build a register.c for libwireshark.
-#
-registertype="$1"
-shift
-if [ "$registertype" = plugin ]
-then
- outfile="plugin.c"
-elif [ "$registertype" = dissectors ]
-then
- outfile="register.c"
-else
- echo "Unknown output type '$registertype'" 1>&2
- exit 1
-fi
-
-#
-# All subsequent arguments are the files to scan.
-#
-rm -f ${outfile}-tmp
-echo '/* Do not modify this file. */' >${outfile}-tmp
-echo '/* It is created automatically by the Makefile. */'>>${outfile}-tmp
-if [ "$registertype" = plugin ]
-then
- cat <<"EOF" >>${outfile}-tmp
-#include "config.h"
-
-#include <gmodule.h>
-
-/* plugins are DLLs */
-#define WS_BUILD_DLL
-#include "ws_symbol_export.h"
-
-/* 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;
-
-/* Start the functions we need for the plugin stuff */
-
-WS_DLL_PUBLIC_NOEXTERN void
-plugin_register (void)
-{
-EOF
-#
-# Build code to call all the protocol registration routines.
-#
-for f in "$@"
-do
- if [ -f $f ]
- then
- srcfile=$f
- else
- srcfile=$srcdir/$f
- fi
- grep '^proto_register_[a-z_0-9A-Z]* *(' $srcfile 2>/dev/null | grep -v ';'
-done | sed -e 's/^.*://' -e 's/^\([a-z_0-9A-Z]*\).*/ {extern void \1 (void); \1 ();}/' >>${outfile}-tmp
-for f in "$@"
-do
- if [ -f $f ]
- then
- srcfile=$f
- else
- srcfile=$srcdir/$f
- fi
- grep '^void proto_register_[a-z_0-9A-Z]* *(' $srcfile 2>/dev/null | grep -v ';'
-done | sed -e 's/^.*://' -e 's/^void \([a-z_0-9A-Z]*\).*/ {extern void \1 (void); \1 ();}/' >>${outfile}-tmp
-else
- cat <<"EOF" >>${outfile}-tmp
-#include "register.h"
-void
-register_all_protocols(register_cb cb, gpointer client_data)
-{
-EOF
-#
-# Build code to call all the protocol registration routines.
-#
-for f in "$@"
-do
- if [ -f $f ]
- then
- srcfile=$f
- else
- srcfile=$srcdir/$f
- fi
- grep '^proto_register_[a-z_0-9A-Z]* *(' $srcfile 2>/dev/null | grep -v ';'
-done | sed -e 's/^.*://' -e 's/^\([a-z_0-9A-Z]*\).*/ {extern void \1 (void); if(cb) (*cb)(RA_REGISTER, \"\1\", client_data); \1 ();}/' >>${outfile}-tmp
-for f in "$@"
-do
- if [ -f $f ]
- then
- srcfile=$f
- else
- srcfile=$srcdir/$f
- fi
- grep '^void proto_register_[a-z_0-9A-Z]* *(' $srcfile 2>/dev/null | grep -v ';'
-done | sed -e 's/^.*://' -e 's/^void \([a-z_0-9A-Z]*\).*/ {extern void \1 (void); if(cb) (*cb)(RA_REGISTER, \"\1\", client_data); \1 ();}/' >>${outfile}-tmp
-
-fi
-echo '}' >>${outfile}-tmp
-
-
-#
-# Build code to call all the protocol handoff registration routines.
-#
-if [ "$registertype" = plugin ]
-then
- cat <<"EOF" >>${outfile}-tmp
-WS_DLL_PUBLIC_NOEXTERN void
-plugin_reg_handoff(void)
-{
-EOF
-for f in "$@"
-do
- if [ -f $f ]
- then
- srcfile=$f
- else
- srcfile=$srcdir/$f
- fi
- grep '^proto_reg_handoff_[a-z_0-9A-Z]* *(' $srcfile 2>/dev/null | grep -v ';'
-done | sed -e 's/^.*://' -e 's/^\([a-z_0-9A-Z]*\).*/ {extern void \1 (void); \1 ();}/' >>${outfile}-tmp
-for f in "$@"
-do
- if [ -f $f ]
- then
- srcfile=$f
- else
- srcfile=$srcdir/$f
- fi
- grep '^void proto_reg_handoff_[a-z_0-9A-Z]* *(' $srcfile 2>/dev/null | grep -v ';'
-done | sed -e 's/^.*://' -e 's/^void \([a-z_0-9A-Z]*\).*/ {extern void \1 (void); \1 ();}/' >>${outfile}-tmp
-else
- cat <<"EOF" >>${outfile}-tmp
-void
-register_all_protocol_handoffs(register_cb cb, gpointer client_data)
-{
-EOF
-for f in "$@"
-do
- if [ -f $f ]
- then
- srcfile=$f
- else
- srcfile=$srcdir/$f
- fi
- grep '^proto_reg_handoff_[a-z_0-9A-Z]* *(' $srcfile 2>/dev/null | grep -v ';'
-done | sed -e 's/^.*://' -e 's/^\([a-z_0-9A-Z]*\).*/ {extern void \1 (void); if(cb) (*cb)(RA_HANDOFF, \"\1\", client_data); \1 ();}/' >>${outfile}-tmp
-for f in "$@"
-do
- if [ -f $f ]
- then
- srcfile=$f
- else
- srcfile=$srcdir/$f
- fi
- grep '^void proto_reg_handoff_[a-z_0-9A-Z]* *(' $srcfile 2>/dev/null | grep -v ';'
-done | sed -e 's/^.*://' -e 's/^void \([a-z_0-9A-Z]*\).*/ {extern void \1 (void); if(cb) (*cb)(RA_HANDOFF, \"\1\", client_data); \1 ();}/' >>${outfile}-tmp
-fi
-echo '}' >>${outfile}-tmp
-if [ "$registertype" = plugin ]
-then
- echo '#endif' >>${outfile}-tmp
-else
- cat <<"EOF" >>${outfile}-tmp
-gulong register_count(void)
-{
-EOF
- proto_regs=`grep RA_REGISTER ${outfile}-tmp | wc -l`
- handoff_regs=`grep RA_HANDOFF ${outfile}-tmp | wc -l`
- echo " return $proto_regs + $handoff_regs;" >>${outfile}-tmp
- echo '}' >>${outfile}-tmp
-fi
-
-# Only overwrite outfile if it differs from newly generated file
-mv ${outfile}-tmp ${outfile}