[wireshark] Ver. 1.10.1

Peter Lemenkov peter at fedoraproject.org
Tue Sep 10 10:17:05 UTC 2013


commit 1444df198723f0e6cad323978b38bb322ecbf4de
Author: Peter Lemenkov <lemenkov at gmail.com>
Date:   Tue Sep 10 14:16:03 2013 +0400

    Ver. 1.10.1
    
    - Backported rtpproxy dissector module
    - Removed outdated, and applied upstream patches
    
    Signed-off-by: Peter Lemenkov <lemenkov at gmail.com>

 .gitignore                                         |    1 +
 sources                                            |    2 +-
 wireshark-0001-enable-Lua-support.patch            |   25 +
 ...rk-0002-Customize-permission-denied-error.patch |   33 +-
 ...Load-correct-shared-object-name-in-python.patch |   28 +
 wireshark-0004-fix-documentation-build-error.patch |   31 +
 ...05-fix-string-overrun-in-plugins-profinet.patch |   25 +
 ...Lemenkov-via-https-bugs.wireshark.org-bug.patch |  899 ++++++++++++++++++++
 ...ercap.pod-unterminated-list-s-at-head-in-.patch |   27 +
 wireshark-1.2.4-enable_lua.patch                   |   13 -
 wireshark-1.2.8-disable_warning_dialog.patch       |   34 -
 wireshark-1.6.0-soname.patch                       |   17 -
 wireshark-1.8.x-dcom-string-overrun.patch          |   13 -
 wireshark-1.8.x-flow-graph-crash.patch             |   42 -
 wireshark-1.8.x-pod2man-encoding.patch             |   27 -
 wireshark-1.8.x-sctp-bytes-graph-crash.patch       |   15 -
 wireshark-1.8.x-tap-iostat-overflow.patch          |   13 -
 wireshark-libtool-pie.patch                        |   11 -
 wireshark-nfsv41-cleanup.patch                     |  124 ---
 wireshark.spec                                     |  110 ++--
 wiresharkdoc-24x24.png                             |  Bin 1281 -> 0 bytes
 21 files changed, 1115 insertions(+), 375 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index dad0b9b..3dbde9e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -25,3 +25,4 @@ wireshark-1.2.10.tar.bz2
 /wireshark-1.8.5.tar.bz2
 /wireshark-1.8.6.tar.bz2
 /wireshark-1.10.0.tar.bz2
+/wireshark-1.10.1.tar.bz2
diff --git a/sources b/sources
index 998af6e..62ecfc9 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-72e51cd33fd33c7044a41c2ab51ad7af  wireshark-1.10.0.tar.bz2
+d8915cf7555e2bbb699020a8736631e7  wireshark-1.10.1.tar.bz2
diff --git a/wireshark-0001-enable-Lua-support.patch b/wireshark-0001-enable-Lua-support.patch
new file mode 100644
index 0000000..0795263
--- /dev/null
+++ b/wireshark-0001-enable-Lua-support.patch
@@ -0,0 +1,25 @@
+From 31e5f281628f586e7f08b4792c391cf7eb387078 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Radek=20Vok=C3=A1l?= <rvokal at fedoraproject.org>
+Date: Tue, 15 Dec 2009 08:36:27 +0000
+Subject: [PATCH 1/7] enable Lua support
+
+---
+ epan/wslua/template-init.lua | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/epan/wslua/template-init.lua b/epan/wslua/template-init.lua
+index e6ec4ae..2538c4c 100644
+--- a/epan/wslua/template-init.lua
++++ b/epan/wslua/template-init.lua
+@@ -43,7 +43,7 @@ if running_superuser then
+     local disabled_lib = {}
+     setmetatable(disabled_lib,{ __index = function() error("this package ".. hint) end } );
+ 
+-    dofile = function() error("dofile " .. hint) end
++--    dofile = function() error("dofile " .. hint) end
+     loadfile = function() error("loadfile " .. hint) end
+     loadlib = function() error("loadlib " .. hint) end
+     require = function() error("require " .. hint) end
+-- 
+1.8.3.1
+
diff --git a/wireshark-1.6.1-group-msg.patch b/wireshark-0002-Customize-permission-denied-error.patch
similarity index 64%
rename from wireshark-1.6.1-group-msg.patch
rename to wireshark-0002-Customize-permission-denied-error.patch
index 31af194..93d6104 100644
--- a/wireshark-1.6.1-group-msg.patch
+++ b/wireshark-0002-Customize-permission-denied-error.patch
@@ -1,10 +1,18 @@
-Customize 'permission denied' error.
+From 0a4f4f8cb1b4706b33ab1c0fddbd37ffa21d51f1 Mon Sep 17 00:00:00 2001
+From: Jan Safranek <jsafrane at redhat.com>
+Date: Fri, 26 Nov 2010 14:30:45 +0300
+Subject: [PATCH 2/7] Customize 'permission denied' error.
 
 Add Fedora-specific message to error output when dumpcap cannot be started
 because of permissions.
 
+Signed-off-by: Jan Safranek <jsafrane at redhat.com>
+---
+ capture_sync.c | 16 ++++++++++++----
+ 1 file changed, 12 insertions(+), 4 deletions(-)
+
 diff --git a/capture_sync.c b/capture_sync.c
-index 8c49ed2..65e242d 100644
+index 5914977..11d5316 100644
 --- a/capture_sync.c
 +++ b/capture_sync.c
 @@ -368,6 +368,7 @@ sync_pipe_start(capture_options *capture_opts, capture_session *cap_session)
@@ -15,20 +23,21 @@ index 8c49ed2..65e242d 100644
      int sync_pipe[2];                       /* pipe used to send messages from child to parent */
      enum PIPES { PIPE_READ, PIPE_WRITE };   /* Constants 0 and 1 for PIPE_READ and PIPE_WRITE */
  #endif
-@@ -638,8 +639,10 @@ sync_pipe_start(capture_options *capture_opts, capture_session *cap_session)
+@@ -638,8 +639,11 @@ sync_pipe_start(capture_options *capture_opts, capture_session *cap_session)
          dup2(sync_pipe[PIPE_WRITE], 2);
          ws_close(sync_pipe[PIPE_READ]);
          execv(argv[0], argv);
 -        g_snprintf(errmsg, sizeof errmsg, "Couldn't run %s in child process: %s",
 -                   argv[0], g_strerror(errno));
 +        if (errno == EPERM || errno == EACCES)
-+            securitymsg = "\nAre you a member of the 'wireshark' group? Try running\n'usermod -a -G wireshark _your_username_' as root.";
++ 	      securitymsg = "\nAre you a member of the 'wireshark' group? Try running\n'usermod -a -G wireshark _your_username_' as root.";
 +        g_snprintf(errmsg, sizeof errmsg, "Couldn't run %s in child process: %s%s",
-+            argv[0], g_strerror(errno), securitymsg);
++                argv[0], g_strerror(errno), securitymsg);
++
          sync_pipe_errmsg_to_parent(2, errmsg, "");
  
          /* Exit with "_exit()", so that we don't close the connection
-@@ -731,6 +734,7 @@ sync_pipe_open_command(char** argv, int *data_read_fd,
+@@ -731,6 +735,7 @@ sync_pipe_open_command(char** argv, int *data_read_fd,
      PROCESS_INFORMATION pi;
  #else
      char errmsg[1024+1];
@@ -36,16 +45,20 @@ index 8c49ed2..65e242d 100644
      int sync_pipe[2];                       /* pipe used to send messages from child to parent */
      int data_pipe[2];                       /* pipe used to send data from child to parent */
  #endif
-@@ -865,8 +869,10 @@ sync_pipe_open_command(char** argv, int *data_read_fd,
+@@ -865,8 +870,11 @@ sync_pipe_open_command(char** argv, int *data_read_fd,
          ws_close(sync_pipe[PIPE_READ]);
          ws_close(sync_pipe[PIPE_WRITE]);
          execv(argv[0], argv);
 -        g_snprintf(errmsg, sizeof errmsg, "Couldn't run %s in child process: %s",
 -                   argv[0], g_strerror(errno));
-+        if (errno == EPERM || errno == EACCES)
-+            securitymsg = "\nAre you a member of the 'wireshark' group? Try running\n'usermod -a -G wireshark _your_username_' as root.";
++        execv(argv[0], (gpointer)argv);
++	if (errno == EPERM || errno == EACCES)
++		securitymsg = "\nAre you a member of the 'wireshark' group? Try running\n'usermod -a -G wireshark _your_username_' as root.";
 +        g_snprintf(errmsg, sizeof errmsg, "Couldn't run %s in child process: %s%s",
-+            argv[0], g_strerror(errno), securitymsg);
++                   argv[0], g_strerror(errno), securitymsg);
          sync_pipe_errmsg_to_parent(2, errmsg, "");
  
          /* Exit with "_exit()", so that we don't close the connection
+-- 
+1.8.3.1
+
diff --git a/wireshark-0003-Load-correct-shared-object-name-in-python.patch b/wireshark-0003-Load-correct-shared-object-name-in-python.patch
new file mode 100644
index 0000000..b1dd6fd
--- /dev/null
+++ b/wireshark-0003-Load-correct-shared-object-name-in-python.patch
@@ -0,0 +1,28 @@
+From cd1f3ac8810a9abda87e71f6d5a3a8e46fcbdde9 Mon Sep 17 00:00:00 2001
+From: Jan Safranek <jsafrane at redhat.com>
+Date: Thu, 9 Jun 2011 14:56:59 +0200
+Subject: [PATCH 3/7] Load correct shared object name in python.
+
+This fixes following error message shown by wireshark/tshark when wireshark-devel
+was not installed:
+   libwireshark.so: cannot open shared object file: No such file or directory
+---
+ epan/wspython/wspy_libws.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/epan/wspython/wspy_libws.py b/epan/wspython/wspy_libws.py
+index a293a17..73ce012 100755
+--- a/epan/wspython/wspy_libws.py
++++ b/epan/wspython/wspy_libws.py
+@@ -35,7 +35,7 @@ def get_libws_libname():
+   elif system == "Windows":
+     return 'libwireshark.dll'
+   else:
+-    return 'libwireshark.so'
++    return 'libwireshark.so.2'
+ 
+ def get_libws_handle():
+   global __libwireshark
+-- 
+1.8.3.1
+
diff --git a/wireshark-0004-fix-documentation-build-error.patch b/wireshark-0004-fix-documentation-build-error.patch
new file mode 100644
index 0000000..72cc673
--- /dev/null
+++ b/wireshark-0004-fix-documentation-build-error.patch
@@ -0,0 +1,31 @@
+From 245cae76f4501ed44d1c9261a502e6ed35f48f2f Mon Sep 17 00:00:00 2001
+From: Peter Hatina <phatina at redhat.com>
+Date: Mon, 8 Apr 2013 13:03:24 +0200
+Subject: [PATCH 4/7] fix documentation build error
+
+---
+ doc/asn2deb.pod | 1 +
+ doc/idl2deb.pod | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/doc/asn2deb.pod b/doc/asn2deb.pod
+index 0d88a95..fb25349 100644
+--- a/doc/asn2deb.pod
++++ b/doc/asn2deb.pod
+@@ -1,3 +1,4 @@
++=encoding utf8
+ 
+ =head1 NAME
+ 
+diff --git a/doc/idl2deb.pod b/doc/idl2deb.pod
+index 7daa798..82e933a 100644
+--- a/doc/idl2deb.pod
++++ b/doc/idl2deb.pod
+@@ -1,3 +1,4 @@
++=encoding utf8
+ 
+ =head1 NAME
+ 
+-- 
+1.8.3.1
+
diff --git a/wireshark-0005-fix-string-overrun-in-plugins-profinet.patch b/wireshark-0005-fix-string-overrun-in-plugins-profinet.patch
new file mode 100644
index 0000000..fa41b40
--- /dev/null
+++ b/wireshark-0005-fix-string-overrun-in-plugins-profinet.patch
@@ -0,0 +1,25 @@
+From df227f91183e56ef1fe66da5b891a150da8ebe3d Mon Sep 17 00:00:00 2001
+From: Peter Hatina <phatina at redhat.com>
+Date: Wed, 4 Sep 2013 10:03:57 +0200
+Subject: [PATCH 5/7] fix string overrun in plugins/profinet
+
+---
+ plugins/profinet/packet-dcom-cba.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/plugins/profinet/packet-dcom-cba.c b/plugins/profinet/packet-dcom-cba.c
+index b44caed..396de82 100644
+--- a/plugins/profinet/packet-dcom-cba.c
++++ b/plugins/profinet/packet-dcom-cba.c
+@@ -553,7 +553,7 @@ dissect_ICBAPhysicalDevice_get_LogicalDevice_rqst(tvbuff_t *tvb, int offset,
+     packet_info *pinfo, proto_tree *tree, guint8 *drep)
+ {
+     guint32      u32Pointer;
+-    gchar        szStr[1000];
++    gchar        szStr[1000] = "";
+     guint32      u32MaxStr = sizeof(szStr);
+     dcerpc_info *info      = (dcerpc_info *) pinfo->private_data;
+     gchar       *call;
+-- 
+1.8.3.1
+
diff --git a/wireshark-0006-From-Peter-Lemenkov-via-https-bugs.wireshark.org-bug.patch b/wireshark-0006-From-Peter-Lemenkov-via-https-bugs.wireshark.org-bug.patch
new file mode 100644
index 0000000..14a7cce
--- /dev/null
+++ b/wireshark-0006-From-Peter-Lemenkov-via-https-bugs.wireshark.org-bug.patch
@@ -0,0 +1,899 @@
+From 24b762c8073ef2b823dfe74292f5201582fe5656 Mon Sep 17 00:00:00 2001
+From: Evan Huus <eapache at gmail.com>
+Date: Sun, 18 Aug 2013 19:49:08 +0000
+Subject: [PATCH 6/7] From Peter Lemenkov via
+ https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8326
+
+Dissector for the Sippy RTPproxy controlling protocol. RTPproxy is a well-known
+(among SIP-engineers) application and it operates using its own simple
+text-based protocol. There are several competing products but all of them
+implements it (sometimes slightly extending).
+
+svn path=/trunk/; revision=51417
+
+Conflicts:
+	AUTHORS
+
+Add a cast to try and fix
+packet-rtpproxy.c:226: warning: implicit conversion shortens 64-bit value into
+a 32-bit value
+
+I'm not quite sure what's going on here, all the values in use are either gint
+or guint so they should all be the same size?
+
+svn path=/trunk/; revision=51419
+
+Take another stab at
+packet-rtpproxy.c:226: warning: implicit conversion shortens 64-bit value into a
+32-bit value
+
+svn path=/trunk/; revision=51420
+
+One more 64/32-conversion fix for rtpproxy
+
+svn path=/trunk/; revision=51421
+
+Fix Coverity CID 1063335: Unused pointer value.
+
+svn path=/trunk/; revision=51430
+---
+ AUTHORS                           |   1 +
+ epan/CMakeLists.txt               |   1 +
+ epan/dissectors/Makefile.common   |   1 +
+ epan/dissectors/packet-rtpproxy.c | 808 ++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 811 insertions(+)
+ create mode 100644 epan/dissectors/packet-rtpproxy.c
+
+diff --git a/AUTHORS b/AUTHORS
+index 820ba7e..fdb3b9a 100644
+--- a/AUTHORS
++++ b/AUTHORS
+@@ -3731,6 +3731,7 @@ Alexander Chemeris	<alexander.chemeris[AT]gmail.com>
+ Ivan Klyuchnikov	<kluchnikovi[AT]gmail.com>
+ Max Baker		<max[AT]warped.org>
+ Mike Garratt		<mg.wireshark[AT]evn.co.nz>
++Peter Lemenkov		<lemenkov[AT]gmail.com>
+ 
+ 
+ Dan Lasley <dlasley[AT]promus.com> gave permission for his
+diff --git a/epan/CMakeLists.txt b/epan/CMakeLists.txt
+index 9b8d4d9..3dfa974 100644
+--- a/epan/CMakeLists.txt
++++ b/epan/CMakeLists.txt
+@@ -1083,6 +1083,7 @@ set(DISSECTOR_SRC
+ 	dissectors/packet-rtp-events.c
+ 	dissectors/packet-rtp-midi.c
+ 	dissectors/packet-rtp.c
++	dissectors/packet-rtpproxy.c
+ 	dissectors/packet-rtps.c
+ 	dissectors/packet-rtsp.c
+ 	dissectors/packet-rudp.c
+diff --git a/epan/dissectors/Makefile.common b/epan/dissectors/Makefile.common
+index 937f522..73217d7 100644
+--- a/epan/dissectors/Makefile.common
++++ b/epan/dissectors/Makefile.common
+@@ -1004,6 +1004,7 @@ DISSECTOR_SRC = \
+ 	packet-rtp-events.c	\
+ 	packet-rtp-midi.c	\
+ 	packet-rtp.c		\
++	packet-rtpproxy.c	\
+ 	packet-rtps.c		\
+ 	packet-rtsp.c		\
+ 	packet-rudp.c		\
+diff --git a/epan/dissectors/packet-rtpproxy.c b/epan/dissectors/packet-rtpproxy.c
+new file mode 100644
+index 0000000..7148d58
+--- /dev/null
++++ b/epan/dissectors/packet-rtpproxy.c
+@@ -0,0 +1,808 @@
++/* packet-rtpproxy.c
++ * RTPproxy command protocol dissector
++ * Copyright 2013, Peter Lemenkov <lemenkov at gmail.com>
++ *
++ * This dissector tries to dissect rtpproxy control protocol. Please visit this
++ * link for brief details on the command format:
++ *
++ * http://www.rtpproxy.org/wiki/RTPproxy/Protocol
++ *
++ * $Id$
++ *
++ * Wireshark - Network traffic analyzer
++ * By Gerald Combs <gerald at wireshark.org>
++ * Copyright 1999 Gerald Combs
++ *
++ * 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, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
++ */
++
++#include "config.h"
++
++#include <epan/packet.h>
++#include <epan/prefs.h>
++
++static int proto_rtpproxy = -1;
++
++static int hf_rtpproxy_cookie = -1;
++static int hf_rtpproxy_error = -1;
++static int hf_rtpproxy_status = -1;
++static int hf_rtpproxy_ok = -1;
++static int hf_rtpproxy_ipv4 = -1;
++static int hf_rtpproxy_ipv6 = -1;
++static int hf_rtpproxy_port = -1;
++static int hf_rtpproxy_lf = -1;
++static int hf_rtpproxy_request = -1;
++static int hf_rtpproxy_command = -1;
++static int hf_rtpproxy_command_parameters = -1;
++static int hf_rtpproxy_callid = -1;
++static int hf_rtpproxy_copy_target = -1;
++static int hf_rtpproxy_playback_filename = -1;
++static int hf_rtpproxy_playback_codec = -1;
++static int hf_rtpproxy_notify = -1;
++static int hf_rtpproxy_notify_ipv4 = -1;
++static int hf_rtpproxy_notify_port = -1;
++static int hf_rtpproxy_notify_tag = -1;
++static int hf_rtpproxy_tag = -1;
++static int hf_rtpproxy_mediaid = -1;
++static int hf_rtpproxy_reply = -1;
++static int hf_rtpproxy_version_request = -1;
++static int hf_rtpproxy_version_supported = -1;
++
++static const value_string commandtypenames[] = {
++	{ 'V', "Handshake/Ping" },
++	{ 'v', "Handshake/Ping" },
++	{ 'U', "Offer/Update" },
++	{ 'u', "Offer/Update" },
++	{ 'L', "Answer/Lookup" },
++	{ 'l', "Answer/Lookup" },
++	{ 'I', "Information"},
++	{ 'i', "Information"},
++	{ 'X', "Close all active sessions"},
++	{ 'x', "Close all active sessions"},
++	{ 'D', "Delete an active session (Bye/Cancel/Error)"},
++	{ 'd', "Delete an active session (Bye/Cancel/Error)"},
++	{ 'P', "Start playback (music-on-hold)"},
++	{ 'p', "Start playback (music-on-hold)"},
++	{ 'S', "Stop playback (music-on-hold)"},
++	{ 's', "Stop playback (music-on-hold)"},
++	{ 'R', "Start recording"},
++	{ 'r', "Start recording"},
++	{ 'C', "Copy stream"},
++	{ 'c', "Copy stream"},
++	{ 'Q', "Query info about a session"},
++	{ 'q', "Query info about a session"},
++	{ 0, NULL }
++};
++
++static const value_string oktypenames[] = {
++	{ '0', "Ok"},
++	{ '1', "Version Supported"},
++	{ 0, NULL }
++};
++
++static const value_string errortypenames[] = {
++	{ '1', "Syntax" },	/* E1 */
++	{ '7', "Software" },	/* E7 */
++	{ '8', "Not Found" },	/* E8 */
++	{ 0, NULL }
++};
++
++static const value_string flowcontroltypenames[] = {
++	{ '\n', "Yes"},
++	{ 0, NULL }
++};
++
++static gint ett_rtpproxy = -1;
++
++static gint ett_rtpproxy_request = -1;
++static gint ett_rtpproxy_command = -1;
++static gint ett_rtpproxy_tag = -1;
++static gint ett_rtpproxy_notify = -1;
++
++static gint ett_rtpproxy_reply = -1;
++
++static guint rtpproxy_tcp_port = 22222;
++static guint rtpproxy_udp_port = 22222;
++
++void proto_reg_handoff_rtpproxy(void);
++
++gint
++rtpptoxy_add_tag(proto_tree *rtpproxy_tree, tvbuff_t *tvb, guint begin, guint realsize)
++{
++	proto_item *ti = NULL;
++	proto_tree *another_tree = NULL;
++	gint new_offset;
++	guint end;
++
++	new_offset = tvb_find_guint8(tvb, begin, -1, ' ');
++	if(new_offset < 0)
++		end = realsize; /* No more parameters */
++	else
++		end = new_offset;
++
++	/* SER/OpenSER/OpenSIPS/Kamailio adds Media-ID right after the Tag
++	 * separated by a semicolon
++	 */
++	new_offset = tvb_find_guint8(tvb, begin, end, ';');
++	if(new_offset == -1){
++		ti = proto_tree_add_item(rtpproxy_tree, hf_rtpproxy_tag, tvb, begin, end - begin, ENC_ASCII | ENC_NA);
++		another_tree = proto_item_add_subtree(ti, ett_rtpproxy_tag);
++		ti = proto_tree_add_item(another_tree, hf_rtpproxy_mediaid, tvb, new_offset+1, 0, ENC_ASCII | ENC_NA);
++		proto_item_set_text(ti, "Media-ID: <skipped>");
++	}
++	else{
++		ti = proto_tree_add_item(rtpproxy_tree, hf_rtpproxy_tag, tvb, begin, new_offset - begin, ENC_ASCII | ENC_NA);
++		another_tree = proto_item_add_subtree(ti, ett_rtpproxy_tag);
++		proto_tree_add_item(another_tree, hf_rtpproxy_mediaid, tvb, new_offset+1, end - (new_offset+1), ENC_ASCII | ENC_NA);
++	}
++	return (end == realsize ? -1 : (gint)end);
++}
++
++static void
++dissect_rtpproxy(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
++{
++	gboolean has_lf = FALSE;
++	guint offset = 0;
++	gint new_offset = 0;
++	guint tmp;
++	guint realsize = 0;
++	guint8* rawstr;
++	proto_item *ti;
++	proto_tree *rtpproxy_tree;
++
++	/* Clear out stuff in the info column - we''l set it later */
++	col_clear(pinfo->cinfo, COL_INFO);
++
++	ti = proto_tree_add_item(tree, proto_rtpproxy, tvb, 0, -1, ENC_NA);
++	rtpproxy_tree = proto_item_add_subtree(ti, ett_rtpproxy);
++
++	/* Extract Cookie */
++	offset = tvb_find_guint8(tvb, offset, -1, ' ');
++	proto_tree_add_item(rtpproxy_tree, hf_rtpproxy_cookie, tvb, 0, offset, ENC_ASCII | ENC_NA);
++
++	/* Skip whitespace */
++	offset = tvb_skip_wsp(tvb, offset+1, -1);
++
++	/* Calculate size to prevent recalculation in the future */
++	realsize = tvb_reported_length(tvb);
++
++	/* Check for LF (required for TCP connection, optional for UDP) */
++	if (tvb_get_guint8(tvb, realsize - 1) == '\n'){
++		col_set_str(pinfo->cinfo, COL_PROTOCOL, "RTPproxy");
++		/* Don't count trailing LF */
++		realsize -= 1;
++		has_lf = TRUE;
++	}
++	else
++		col_set_str(pinfo->cinfo, COL_PROTOCOL, "RTPproxy (no LF)");
++
++	/* Get payload string */
++	rawstr = tvb_get_ephemeral_string(tvb, offset, realsize - offset);
++
++	/* Extract command */
++	tmp = g_ascii_tolower(tvb_get_guint8(tvb, offset));
++	switch (tmp)
++	{
++		case 's':
++			/* A specific case - long statistics answer */
++			/* %COOKIE% sessions created %NUM0% active sessions: %NUM1% */
++			if ('e' == tvb_get_guint8(tvb, offset+1)){
++				col_add_fstr(pinfo->cinfo, COL_INFO, "Reply: %s", rawstr);
++				ti = proto_tree_add_item(rtpproxy_tree, hf_rtpproxy_reply, tvb, offset, -1, ENC_NA);
++
++				rtpproxy_tree = proto_item_add_subtree(ti, ett_rtpproxy_reply);
++				proto_tree_add_item(rtpproxy_tree, hf_rtpproxy_status, tvb, offset, realsize - offset, ENC_NA);
++				break;
++			}
++		case 'i':
++		case 'x':
++		case 'u':
++		case 'l':
++		case 'd':
++		case 'p':
++		case 'v':
++		case 'r':
++		case 'c':
++		case 'q':
++			col_add_fstr(pinfo->cinfo, COL_INFO, "Request: %s", rawstr);
++			ti = proto_tree_add_item(rtpproxy_tree, hf_rtpproxy_request, tvb, offset, -1, ENC_NA);
++			rtpproxy_tree = proto_item_add_subtree(ti, ett_rtpproxy_request);
++
++			/* A specific case - version request */
++			if ((tmp == 'v') && (offset + strlen("VF YYYMMDD") + 1 == realsize)){
++				/* Skip whitespace */
++				new_offset = tvb_skip_wsp(tvb, offset + ((guint)strlen("VF") + 1), -1);
++				proto_tree_add_item(rtpproxy_tree, hf_rtpproxy_version_request, tvb, new_offset, (gint)strlen("YYYYMMDD"), ENC_ASCII | ENC_NA);
++				break;
++			}
++
++			/* All other commands */
++			ti = proto_tree_add_item(rtpproxy_tree, hf_rtpproxy_command, tvb, offset, 1, ENC_NA);
++
++			/* A specific case - handshake/ping */
++			if (tmp == 'v')
++				break; /* No more parameters */
++
++			/* A specific case - close all calls */
++			if (tmp == 'x')
++				break; /* No more parameters */
++
++			/* Extract parameters */
++			/* Parameters should be right after the command and before EOL (in case of Info command) or before whitespace */
++			new_offset = (tmp == 'i' ? (gint)(realsize - 1 > offset ? offset + strlen("Ib") : offset + strlen("I")) : tvb_find_guint8(tvb, offset, -1, ' '));
++
++			if (new_offset != (gint)offset + 1){
++				rtpproxy_tree = proto_item_add_subtree(ti, ett_rtpproxy_command);
++				proto_tree_add_item(rtpproxy_tree, hf_rtpproxy_command_parameters, tvb, offset+1, new_offset - (offset+1), ENC_ASCII | ENC_NA);
++				rtpproxy_tree = proto_item_get_parent(ti);
++			}
++
++			/* A specific case - query information */
++			if (tmp == 'i')
++				break; /* No more parameters */
++
++			/* Skip whitespace */
++			offset = tvb_skip_wsp(tvb, new_offset+1, -1);
++
++			/* Extract Call-ID */
++			new_offset = tvb_find_guint8(tvb, offset, -1, ' ');
++			proto_tree_add_item(rtpproxy_tree, hf_rtpproxy_callid, tvb, offset, new_offset - offset, ENC_ASCII | ENC_NA);
++			/* Skip whitespace */
++			offset = tvb_skip_wsp(tvb, new_offset+1, -1);
++
++			/* Extract IP and Port in case of Offer/Answer */
++			if ((tmp == 'u') || (tmp == 'l')){
++				/* Extract IP */
++				new_offset = tvb_find_guint8(tvb, offset, -1, ' ');
++				if (tvb_find_guint8(tvb, offset, new_offset - offset, ':') == -1)
++					proto_tree_add_item(rtpproxy_tree, hf_rtpproxy_ipv4, tvb, offset, new_offset - offset, ENC_ASCII | ENC_NA);
++				else
++					proto_tree_add_item(rtpproxy_tree, hf_rtpproxy_ipv6, tvb, offset, new_offset - offset, ENC_ASCII | ENC_NA);
++				/* Skip whitespace */
++				offset = tvb_skip_wsp(tvb, new_offset+1, -1);
++
++				/* Extract Port */
++				new_offset = tvb_find_guint8(tvb, offset, -1, ' ');
++				proto_tree_add_item(rtpproxy_tree, hf_rtpproxy_port, tvb, offset, new_offset - offset, ENC_ASCII | ENC_NA);
++				/* Skip whitespace */
++				offset = tvb_skip_wsp(tvb, new_offset+1, -1);
++			}
++
++			/* Extract Copy target */
++			if (tmp == 'c'){
++				new_offset = tvb_find_guint8(tvb, offset, -1, ' ');
++				proto_tree_add_item(rtpproxy_tree, hf_rtpproxy_copy_target, tvb, offset, new_offset - offset, ENC_ASCII | ENC_NA);
++				/* Skip whitespace */
++				offset = tvb_skip_wsp(tvb, new_offset+1, -1);
++			}
++
++			/* Extract Playback file and codecs */
++			if (tmp == 'p'){
++				/* Extract filename */
++				new_offset = tvb_find_guint8(tvb, offset, -1, ' ');
++				proto_tree_add_item(rtpproxy_tree, hf_rtpproxy_playback_filename, tvb, offset, new_offset - offset, ENC_ASCII | ENC_NA);
++				/* Skip whitespace */
++				offset = tvb_skip_wsp(tvb, new_offset+1, -1);
++
++				/* Extract codec */
++				new_offset = tvb_find_guint8(tvb, offset, -1, ' ');
++				proto_tree_add_item(rtpproxy_tree, hf_rtpproxy_playback_codec, tvb, offset, new_offset - offset, ENC_ASCII | ENC_NA);
++				/* Skip whitespace */
++				offset = tvb_skip_wsp(tvb, new_offset+1, -1);
++			}
++
++			/* Extract first tag */
++			new_offset = rtpptoxy_add_tag(rtpproxy_tree, tvb, offset, realsize);
++			if(new_offset == -1)
++				break; /* No more parameters */
++			/* Skip whitespace */
++			offset = tvb_skip_wsp(tvb, new_offset+1, -1);
++
++			/* Extract second tag */
++			new_offset = rtpptoxy_add_tag(rtpproxy_tree, tvb, offset, realsize);
++			if(new_offset == -1)
++				break; /* No more parameters */
++			/* Skip whitespace */
++			offset = tvb_skip_wsp(tvb, new_offset+1, -1);
++
++			/* Extract Notification address */
++			if (tmp == 'u'){
++				new_offset = tvb_find_guint8(tvb, offset, -1, ' ');
++				ti = proto_tree_add_item(rtpproxy_tree, hf_rtpproxy_notify, tvb, offset, realsize - offset, ENC_NA);
++				proto_item_set_text(ti, "Notify");
++				rtpproxy_tree = proto_item_add_subtree(ti, ett_rtpproxy_notify);
++				if(new_offset == -1){
++					/* FIXME only IPv4 is supported */
++					new_offset = tvb_find_guint8(tvb, offset, -1, ':');
++					proto_tree_add_item(rtpproxy_tree, hf_rtpproxy_notify_ipv4, tvb, offset, new_offset - offset, ENC_ASCII | ENC_NA);
++					proto_tree_add_item(rtpproxy_tree, hf_rtpproxy_notify_port, tvb, new_offset+1, realsize - (new_offset+1), ENC_ASCII | ENC_NA);
++					break; /* No more parameters */
++				}
++				if(new_offset - offset < 6){
++					/* Only port is supplied */
++					ti = proto_tree_add_item(rtpproxy_tree, hf_rtpproxy_notify_ipv4, tvb, offset, 0, ENC_ASCII | ENC_NA);
++					proto_item_set_text(ti, "Notification IPv4: <skipped>");
++					proto_tree_add_item(rtpproxy_tree, hf_rtpproxy_notify_port, tvb, offset, new_offset - offset, ENC_ASCII | ENC_NA);
++				}
++				else{
++					proto_tree_add_item(rtpproxy_tree, hf_rtpproxy_notify_ipv4, tvb, offset, new_offset - offset, ENC_ASCII | ENC_NA);
++					proto_tree_add_item(rtpproxy_tree, hf_rtpproxy_notify_port, tvb, new_offset+1, realsize - (new_offset+1), ENC_ASCII | ENC_NA);
++				}
++				/* Skip whitespace */
++				offset = tvb_skip_wsp(tvb, new_offset+1, -1);
++
++				proto_tree_add_item(rtpproxy_tree, hf_rtpproxy_notify_tag, tvb, offset, realsize - offset, ENC_ASCII | ENC_NA);
++			}
++			break;
++		case 'a':
++		case 'e':
++		case '0':
++		case '1':
++		case '2':
++		case '3':
++		case '4':
++		case '5':
++		case '6':
++		case '7':
++		case '8':
++		case '9':
++			if (tmp == 'e')
++				col_add_fstr(pinfo->cinfo, COL_INFO, "Error reply: %s", rawstr);
++			else
++				col_add_fstr(pinfo->cinfo, COL_INFO, "Reply: %s", rawstr);
++
++			ti = proto_tree_add_item(rtpproxy_tree, hf_rtpproxy_reply, tvb, offset, -1, ENC_NA);
++			rtpproxy_tree = proto_item_add_subtree(ti, ett_rtpproxy_reply);
++
++			if (tmp == 'e'){
++				proto_tree_add_item(rtpproxy_tree, hf_rtpproxy_error, tvb, offset+1, 1, ENC_ASCII | ENC_NA);
++				break;
++			}
++
++			if (tmp == 'a'){
++				/* A specific case - short statistics answer */
++				/* %COOKIE% active sessions: %NUM1% */
++				proto_tree_add_item(rtpproxy_tree, hf_rtpproxy_status, tvb, offset, realsize - offset, ENC_NA);
++				break;
++			}
++			if ((tmp == '0')&& ((tvb_reported_length(tvb) == offset+1)||(tvb_reported_length(tvb) == offset+2))){
++				proto_tree_add_item(rtpproxy_tree, hf_rtpproxy_ok, tvb, offset, 1, ENC_ASCII | ENC_NA);
++				break;
++			}
++			if ((tmp == '1') && ((tvb_reported_length(tvb) == offset+1)||(tvb_reported_length(tvb) == offset+2))){
++				proto_tree_add_item(rtpproxy_tree, hf_rtpproxy_ok, tvb, offset, 1, ENC_ASCII | ENC_NA);
++				break;
++			}
++			if (tvb_reported_length(tvb) == offset+9){
++				proto_tree_add_item(rtpproxy_tree, hf_rtpproxy_version_supported, tvb, offset, 8, ENC_ASCII | ENC_NA);
++				break;
++			}
++
++			/* Extract Port */
++			new_offset = tvb_find_guint8(tvb, offset, -1, ' ');
++			proto_tree_add_item(rtpproxy_tree, hf_rtpproxy_port, tvb, offset, new_offset - offset, ENC_ASCII | ENC_NA);
++			/* Skip whitespace */
++			offset = tvb_skip_wsp(tvb, new_offset+1, -1);
++
++			/* Extract IP */
++			tmp = tvb_find_line_end(tvb, offset, -1, &new_offset, FALSE);
++			if (tvb_find_guint8(tvb, offset, -1, ':') == -1)
++				proto_tree_add_item(rtpproxy_tree, hf_rtpproxy_ipv4, tvb, offset, tmp, ENC_ASCII | ENC_NA);
++			else
++				proto_tree_add_item(rtpproxy_tree, hf_rtpproxy_ipv6, tvb, offset, tmp, ENC_ASCII | ENC_NA);
++			break;
++		default:
++			break;
++	}
++	if (has_lf)
++		proto_tree_add_item(rtpproxy_tree, hf_rtpproxy_lf, tvb, realsize, 1, ENC_NA);
++}
++
++void
++proto_register_rtpproxy(void)
++{
++	module_t *rtpproxy_module;
++
++	static hf_register_info hf[] = {
++		{
++			&hf_rtpproxy_cookie,
++			{
++				"Cookie",
++				"rtpproxy.cookie",
++				FT_STRING,
++				BASE_NONE,
++				NULL,
++				0x0,
++				NULL,
++				HFILL
++			}
++		},
++		{
++			&hf_rtpproxy_version_request,
++			{
++				"Version Request",
++				"rtpproxy.version",
++				FT_STRING,
++				BASE_NONE,
++				NULL,
++				0x0,
++				NULL,
++				HFILL
++			}
++		},
++		{
++			&hf_rtpproxy_version_supported,
++			{
++				"Version Supported",
++				"rtpproxy.version_supported",
++				FT_STRING,
++				BASE_NONE,
++				NULL,
++				0x0,
++				NULL,
++				HFILL
++			}
++		},
++		{
++			&hf_rtpproxy_error,
++			{
++				"Error",
++				"rtpproxy.error",
++				FT_UINT8,
++				BASE_DEC,
++				VALS(errortypenames),
++				0x0,
++				NULL,
++				HFILL
++			}
++		},
++		{
++			&hf_rtpproxy_ok,
++			{
++				"Ok",
++				"rtpproxy.ok",
++				FT_UINT8,
++				BASE_DEC,
++				VALS(oktypenames),
++				0x0,
++				NULL,
++				HFILL
++			}
++		},
++		{
++			&hf_rtpproxy_status,
++			{
++				"Status",
++				"rtpproxy.status",
++				FT_STRING,
++				BASE_NONE,
++				NULL,
++				0x0,
++				NULL,
++				HFILL
++			}
++		},
++		{
++			&hf_rtpproxy_ipv4,
++			{
++				"IPv4",
++				"rtpproxy.ipv4",
++				FT_STRING,
++				BASE_NONE,
++				NULL,
++				0x0,
++				NULL,
++				HFILL
++			}
++		},
++		{
++			&hf_rtpproxy_ipv6,
++			{
++				"IPv6",
++				"rtpproxy.ipv6",
++				FT_STRING,
++				BASE_NONE,
++				NULL,
++				0x0,
++				NULL,
++				HFILL
++			}
++		},
++		{
++			&hf_rtpproxy_port,
++			{
++				"Port",
++				"rtpproxy.port",
++				FT_STRING,
++				BASE_NONE,
++				NULL,
++				0x0,
++				NULL,
++				HFILL
++			}
++		},
++		{
++			&hf_rtpproxy_request,
++			{
++				"Request",
++				"rtpproxy.request",
++				FT_NONE,
++				BASE_NONE,
++				NULL,
++				0x0,
++				NULL,
++				HFILL
++			}
++		},
++		{
++			&hf_rtpproxy_command,
++			{
++				"Command",
++				"rtpproxy.command",
++				FT_UINT8,
++				BASE_DEC,
++				VALS(commandtypenames),
++				0x0,
++				NULL,
++				HFILL
++			}
++		},
++		{
++			&hf_rtpproxy_command_parameters,
++			{
++				"Command parameters",
++				"rtpproxy.command_parameters",
++				FT_STRING,
++				BASE_NONE,
++				NULL,
++				0x0,
++				NULL,
++				HFILL
++			}
++		},
++		{
++			&hf_rtpproxy_copy_target,
++			{
++				"Copy target",
++				"rtpproxy.copy_target",
++				FT_STRING,
++				BASE_NONE,
++				NULL,
++				0x0,
++				NULL,
++				HFILL
++			}
++		},
++		{
++			&hf_rtpproxy_playback_filename,
++			{
++				"Playback filename",
++				"rtpproxy.playback_filename",
++				FT_STRING,
++				BASE_NONE,
++				NULL,
++				0x0,
++				NULL,
++				HFILL
++			}
++		},
++		{
++			&hf_rtpproxy_playback_codec,
++			{
++				"Playback codec",
++				"rtpproxy.playback_codec",
++				FT_STRING,
++				BASE_NONE,
++				NULL,
++				0x0,
++				NULL,
++				HFILL
++			}
++		},
++		{
++			&hf_rtpproxy_callid,
++			{
++				"Call-ID",
++				"rtpproxy.callid",
++				FT_STRING,
++				BASE_NONE,
++				NULL,
++				0x0,
++				NULL,
++				HFILL
++			}
++		},
++		{
++			&hf_rtpproxy_notify,
++			{
++				"Notify",
++				"rtpproxy.notify",
++				FT_STRING,
++				BASE_NONE,
++				NULL,
++				0x0,
++				NULL,
++				HFILL
++			}
++		},
++		{
++			&hf_rtpproxy_tag,
++			{
++				"Tag",
++				"rtpproxy.tag",
++				FT_STRING,
++				BASE_NONE,
++				NULL,
++				0x0,
++				NULL,
++				HFILL
++			}
++		},
++		{
++			&hf_rtpproxy_mediaid,
++			{
++				"Media-ID",
++				"rtpproxy.mediaid",
++				FT_STRING,
++				BASE_NONE,
++				NULL,
++				0x0,
++				NULL,
++				HFILL
++			}
++		},
++		{
++			&hf_rtpproxy_notify_ipv4,
++			{
++				"Notification IPv4",
++				"rtpproxy.notify_ipv4",
++				FT_STRING,
++				BASE_NONE,
++				NULL,
++				0x0,
++				NULL,
++				HFILL
++			}
++		},
++		{
++			&hf_rtpproxy_notify_port,
++			{
++				"Notification Port",
++				"rtpproxy.notify_port",
++				FT_STRING,
++				BASE_NONE,
++				NULL,
++				0x0,
++				NULL,
++				HFILL
++			}
++		},
++		{
++			&hf_rtpproxy_notify_tag,
++			{
++				"Notification Tag",
++				"rtpproxy.notify_tag",
++				FT_STRING,
++				BASE_NONE,
++				NULL,
++				0x0,
++				NULL,
++				HFILL
++			}
++		},
++		{
++			&hf_rtpproxy_reply,
++			{
++				"Reply",
++				"rtpproxy.reply",
++				FT_NONE,
++				BASE_NONE,
++				NULL,
++				0x0,
++				NULL,
++				HFILL
++			}
++		},
++		{
++			&hf_rtpproxy_lf,
++			{
++				"LF",
++				"rtpproxy.lf",
++				FT_UINT8,
++				BASE_DEC,
++				VALS(flowcontroltypenames),
++				0x0,
++				NULL,
++				HFILL
++			}
++		},
++	};
++
++	/* Setup protocol subtree array */
++	static gint *ett[] = {
++		&ett_rtpproxy,
++		&ett_rtpproxy_request,
++		&ett_rtpproxy_command,
++		&ett_rtpproxy_tag,
++		&ett_rtpproxy_notify,
++		&ett_rtpproxy_reply
++	};
++
++	proto_rtpproxy = proto_register_protocol (
++			"Sippy RTPproxy Protocol", /* name       */
++			"RTPproxy",      /* short name */
++			"rtpproxy"       /* abbrev     */
++			);
++
++	proto_register_field_array(proto_rtpproxy, hf, array_length(hf));
++	proto_register_subtree_array(ett, array_length(ett));
++
++	rtpproxy_module = prefs_register_protocol(proto_rtpproxy, proto_reg_handoff_rtpproxy);
++	prefs_register_uint_preference(rtpproxy_module, "tcp.port",
++								 "RTPproxy TCP Port", /* Title */
++								 "RTPproxy TCP Port", /* Descr */
++								 10,
++								 &rtpproxy_tcp_port);
++
++	prefs_register_uint_preference(rtpproxy_module, "udp.port",
++								 "RTPproxy UDP Port", /* Title */
++								 "RTPproxy UDP Port", /* Descr */
++								 10,
++								 &rtpproxy_udp_port);
++}
++
++void
++proto_reg_handoff_rtpproxy(void)
++{
++	static guint old_rtpproxy_tcp_port = 0;
++	static guint old_rtpproxy_udp_port = 0;
++
++	static gboolean rtpproxy_initialized = FALSE;
++
++	static dissector_handle_t rtpproxy_tcp_handle, rtpproxy_udp_handle;
++
++	if(!rtpproxy_initialized){
++		rtpproxy_tcp_handle = create_dissector_handle(dissect_rtpproxy, proto_rtpproxy);
++		rtpproxy_udp_handle = create_dissector_handle(dissect_rtpproxy, proto_rtpproxy);
++		rtpproxy_initialized = TRUE;
++	}
++
++	/* Register TCP port for dissection */
++	if(old_rtpproxy_tcp_port != 0 && old_rtpproxy_tcp_port != rtpproxy_tcp_port)
++		dissector_delete_uint("tcp.port", old_rtpproxy_tcp_port, rtpproxy_tcp_handle);
++	if(rtpproxy_tcp_port != 0 && old_rtpproxy_tcp_port != rtpproxy_tcp_port)
++		dissector_add_uint("tcp.port", rtpproxy_tcp_port, rtpproxy_tcp_handle);
++	old_rtpproxy_tcp_port = rtpproxy_tcp_port;
++
++	/* Register UDP port for dissection */
++	if(old_rtpproxy_udp_port != 0 && old_rtpproxy_udp_port != rtpproxy_udp_port)
++		dissector_delete_uint("udp.port", old_rtpproxy_udp_port, rtpproxy_udp_handle);
++	if(rtpproxy_udp_port != 0 && old_rtpproxy_udp_port != rtpproxy_udp_port)
++		dissector_add_uint("udp.port", rtpproxy_udp_port, rtpproxy_udp_handle);
++	old_rtpproxy_udp_port = rtpproxy_udp_port;
++}
++
++/*
++ * Editor modelines  -  http://www.wireshark.org/tools/modelines.html
++ *
++ * Local variables:
++ * c-basic-offset: 8
++ * tab-width: 8
++ * indent-tabs-mode: t
++ * End:
++ *
++ * vi: set shiftwidth=8 tabstop=8 noexpandtab:
++ * :indentSize=8:tabSize=8:noTabs=false:
++ */
+-- 
+1.8.3.1
+
diff --git a/wireshark-0007-Fix-.-reordercap.pod-unterminated-list-s-at-head-in-.patch b/wireshark-0007-Fix-.-reordercap.pod-unterminated-list-s-at-head-in-.patch
new file mode 100644
index 0000000..9369911
--- /dev/null
+++ b/wireshark-0007-Fix-.-reordercap.pod-unterminated-list-s-at-head-in-.patch
@@ -0,0 +1,27 @@
+From efa46e067df903458fa299a95a86adc83a065940 Mon Sep 17 00:00:00 2001
+From: Evan Huus <eapache at gmail.com>
+Date: Mon, 20 May 2013 14:56:18 +0000
+Subject: [PATCH 7/7] Fix "./reordercap.pod: unterminated list(s) at =head in
+ paragraph 14. ignoring."
+
+svn path=/trunk/; revision=49436
+---
+ doc/reordercap.pod | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/doc/reordercap.pod b/doc/reordercap.pod
+index 08a1c9a..3278a5b 100644
+--- a/doc/reordercap.pod
++++ b/doc/reordercap.pod
+@@ -40,6 +40,8 @@ the same way B<reordercap> handles this.
+ When the B<-n> option is used, B<reordercap> will not write out the output
+ file if it finds that the input file is already in order.
+ 
++=back
++
+ =head1 SEE ALSO
+ 
+ pcap(3), wireshark(1), tshark(1), dumpcap(1), editcap(1), mergecap(1),
+-- 
+1.8.3.1
+
diff --git a/wireshark.spec b/wireshark.spec
index 20ee35e..f0b0f52 100644
--- a/wireshark.spec
+++ b/wireshark.spec
@@ -20,8 +20,8 @@
 
 Summary:	Network traffic analyzer
 Name:		wireshark
-Version:	1.10.0
-Release:	11%{?dist}
+Version:	1.10.1
+Release:	1%{?dist}
 License:	GPL+
 Group:		Applications/Internet
 Source0:	http://wireshark.org/download/src/%{name}-%{version}.tar.bz2
@@ -34,16 +34,18 @@ Source7:	wiresharkdoc-32x32.png
 Source8:	wiresharkdoc-48x48.png
 Source9:	wiresharkdoc-256x256.png
 
-Patch1:		wireshark-nfsv41-cleanup.patch
-Patch2:		wireshark-1.2.4-enable_lua.patch
-Patch3:		wireshark-libtool-pie.patch
-Patch4:		wireshark-1.6.1-group-msg.patch
-Patch5:		wireshark-1.6.0-soname.patch
-Patch6:		wireshark-1.8.x-pod2man-encoding.patch
-Patch7:		wireshark-1.8.x-flow-graph-crash.patch
-Patch8:		wireshark-1.8.x-dcom-string-overrun.patch
-Patch9:		wireshark-1.8.x-sctp-bytes-graph-crash.patch
-Patch10:		wireshark-1.8.x-tap-iostat-overflow.patch
+# Fedora-specific
+Patch1:		wireshark-0001-enable-Lua-support.patch
+# Fedora-specific
+Patch2:		wireshark-0002-Customize-permission-denied-error.patch
+# Fedora-specific
+Patch3:		wireshark-0003-Load-correct-shared-object-name-in-python.patch
+Patch4:		wireshark-0004-fix-documentation-build-error.patch
+Patch5:		wireshark-0005-fix-string-overrun-in-plugins-profinet.patch
+# backported from upstream. See https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8326
+Patch6:		wireshark-0006-From-Peter-Lemenkov-via-https-bugs.wireshark.org-bug.patch
+# backported from upstream commit, svn path=/trunk/; revision=49436
+Patch7:		wireshark-0007-Fix-.-reordercap.pod-unterminated-list-s-at-head-in-.patch
 
 Url:		http://www.wireshark.org/
 BuildRequires:	libpcap-devel >= 0.9
@@ -131,22 +133,18 @@ and plugins.
 
 
 %prep
-%setup -q -n %{name}-%{version}
-# disable NFS patch for now, remove if steved at redhat.com does not complain
-#%patch1 -p1 
+%setup -q
 
 %if %{with_lua}
-%patch2 -p1 -b .enable_lua
+%patch1 -p1 -b .enable_lua
 %endif
 
-%patch3 -p1 -b .v4cleanup
-%patch4 -p1 -b .group-msg
-%patch5 -p1 -b .soname
-%patch6 -p1 -b .pod2man
-%patch7 -p1 -b .flow-graph-crash
-%patch8 -p1 -b .dcom-overrun
-%patch9 -p1 -b .sctp-bytes-graph-crash
-%patch10 -p1 -b .tap-iostat-overflow
+%patch2 -p1 -b .perm_denied_customization
+%patch3 -p1 -b .soname
+%patch4 -p1 -b .pod2man
+%patch5 -p1 -b .profinet_crash
+%patch6 -p1 -b .rtpproxy
+%patch7 -p1 -b .add_end
 
 %build
 %ifarch s390 s390x sparcv9 sparc64
@@ -160,9 +158,7 @@ export CFLAGS="$RPM_OPT_FLAGS $CPPFLAGS $PIECFLAGS -D_LARGEFILE64_SOURCE"
 export CXXFLAGS="$RPM_OPT_FLAGS $CPPFLAGS $PIECFLAGS -D_LARGEFILE64_SOURCE"
 export LDFLAGS="$LDFLAGS -pie"
 
-# Temporary hack - wireshark-1.8.0 is not compilable with upstream
-# Makefile.in / configure, they need to be regenerated
-./autogen.sh
+autoreconf -ivf
 
 %configure \
    --bindir=%{_sbindir} \
@@ -213,28 +209,28 @@ make %{?_smp_mflags}
 # The evil plugins hack
 perl -pi -e 's|-L../../epan|-L../../epan/.libs|' plugins/*/*.la
 
-make DESTDIR=$RPM_BUILD_ROOT install
+make DESTDIR=%{buildroot} install
 
 # Install python stuff.
-mkdir -p $RPM_BUILD_ROOT%{python_sitearch}
-install -m 644 tools/wireshark_be.py tools/wireshark_gen.py  $RPM_BUILD_ROOT%{python_sitearch}
+mkdir -p %{buildroot}%{python_sitearch}
+install -m 644 tools/wireshark_be.py tools/wireshark_gen.py  %{buildroot}%{python_sitearch}
 
-desktop-file-install 				\
-	--dir ${RPM_BUILD_ROOT}%{_datadir}/applications		\
+desktop-file-install				\
+	--dir %{buildroot}%{_datadir}/applications		\
 	--add-category X-Fedora					\
 	%{SOURCE3}
 
-mkdir -p $RPM_BUILD_ROOT/%{_datadir}/icons/hicolor/{16x16,32x32,48x48,64x64,256x256}/apps
+mkdir -p %{buildroot}%{_datadir}/icons/hicolor/{16x16,32x32,48x48,64x64,256x256}/apps
 
-install -m 644 image/wsicon16.png $RPM_BUILD_ROOT/%{_datadir}/icons/hicolor/16x16/apps/wireshark.png
-install -m 644 image/wsicon32.png $RPM_BUILD_ROOT/%{_datadir}/icons/hicolor/32x32/apps/wireshark.png
-install -m 644 image/wsicon48.png $RPM_BUILD_ROOT/%{_datadir}/icons/hicolor/48x48/apps/wireshark.png
-install -m 644 image/wsicon64.png $RPM_BUILD_ROOT/%{_datadir}/icons/hicolor/64x64/apps/wireshark.png
-install -m 644 image/wsicon256.png $RPM_BUILD_ROOT/%{_datadir}/icons/hicolor/256x256/apps/wireshark.png
+install -m 644 image/wsicon16.png %{buildroot}%{_datadir}/icons/hicolor/16x16/apps/wireshark.png
+install -m 644 image/wsicon32.png %{buildroot}%{_datadir}/icons/hicolor/32x32/apps/wireshark.png
+install -m 644 image/wsicon48.png %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/wireshark.png
+install -m 644 image/wsicon64.png %{buildroot}%{_datadir}/icons/hicolor/64x64/apps/wireshark.png
+install -m 644 image/wsicon256.png %{buildroot}%{_datadir}/icons/hicolor/256x256/apps/wireshark.png
 
 #install devel files (inspired by debian/wireshark-dev.header-files)
-install -d -m 0755  $RPM_BUILD_ROOT/%{_includedir}/wireshark
-IDIR="${RPM_BUILD_ROOT}%{_includedir}/wireshark"
+install -d -m 0755  %{buildroot}%{_includedir}/wireshark
+IDIR="%{buildroot}%{_includedir}/wireshark"
 mkdir -p "${IDIR}/epan"
 mkdir -p "${IDIR}/epan/crypt"
 mkdir -p "${IDIR}/epan/ftypes"
@@ -244,7 +240,7 @@ mkdir -p "${IDIR}/wiretap"
 mkdir -p "${IDIR}/wsutil"
 install -m 644 color.h config.h register.h	"${IDIR}/"
 install -m 644 cfile.h file.h			"${IDIR}/"
-install -m 644 packet-range.h print.h   	"${IDIR}/"
+install -m 644 packet-range.h print.h		"${IDIR}/"
 install -m 644 epan/*.h				"${IDIR}/epan/"
 install -m 644 epan/crypt/*.h			"${IDIR}/epan/crypt"
 install -m 644 epan/ftypes/*.h			"${IDIR}/epan/ftypes"
@@ -255,8 +251,8 @@ install -m 644 wsutil/*.h			"${IDIR}/wsutil"
 install -m 644 ws_symbol_export.h               "${IDIR}/"
 
 #	Create pkg-config control file.
-mkdir -p "${RPM_BUILD_ROOT}%{_libdir}/pkgconfig"
-cat > "${RPM_BUILD_ROOT}%{_libdir}/pkgconfig/wireshark.pc" <<- "EOF"
+mkdir -p "%{buildroot}%{_libdir}/pkgconfig"
+cat > "%{buildroot}%{_libdir}/pkgconfig/wireshark.pc" <<- "EOF"
 	prefix=%{_prefix}
 	exec_prefix=%{_prefix}
 	libdir=%{_libdir}
@@ -271,25 +267,25 @@ cat > "${RPM_BUILD_ROOT}%{_libdir}/pkgconfig/wireshark.pc" <<- "EOF"
 EOF
 
 #	Install the autoconf macro.
-mkdir -p "${RPM_BUILD_ROOT}%{_datadir}/aclocal"
-cp "%{SOURCE4}" "${RPM_BUILD_ROOT}%{_datadir}/aclocal/wireshark.m4"
+mkdir -p "%{buildroot}%{_datadir}/aclocal"
+cp "%{SOURCE4}" "%{buildroot}%{_datadir}/aclocal/wireshark.m4"
 
 # Install desktop stuff
-mkdir -p $RPM_BUILD_ROOT/%{_datadir}/{icons/gnome/{16x16,32x32,48x48,256x256}/mimetypes,mime/packages}
-install -m 644 -T %{SOURCE5} $RPM_BUILD_ROOT/%{_datadir}/mime/packages/wireshark.xml
-install -m 644 -T %{SOURCE6} $RPM_BUILD_ROOT/%{_datadir}/icons/gnome/16x16/mimetypes/application-x-pcap.png
-install -m 644 -T %{SOURCE7} $RPM_BUILD_ROOT/%{_datadir}/icons/gnome/32x32/mimetypes/application-x-pcap.png
-install -m 644 -T %{SOURCE8} $RPM_BUILD_ROOT/%{_datadir}/icons/gnome/48x48/mimetypes/application-x-pcap.png
-install -m 644 -T %{SOURCE9} $RPM_BUILD_ROOT/%{_datadir}/icons/gnome/256x256/mimetypes/application-x-pcap.png
+mkdir -p %{buildroot}%{_datadir}/{icons/gnome/{16x16,32x32,48x48,256x256}/mimetypes,mime/packages}
+install -m 644 -T %{SOURCE5} %{buildroot}%{_datadir}/mime/packages/wireshark.xml
+install -m 644 -T %{SOURCE6} %{buildroot}%{_datadir}/icons/gnome/16x16/mimetypes/application-x-pcap.png
+install -m 644 -T %{SOURCE7} %{buildroot}%{_datadir}/icons/gnome/32x32/mimetypes/application-x-pcap.png
+install -m 644 -T %{SOURCE8} %{buildroot}%{_datadir}/icons/gnome/48x48/mimetypes/application-x-pcap.png
+install -m 644 -T %{SOURCE9} %{buildroot}%{_datadir}/icons/gnome/256x256/mimetypes/application-x-pcap.png
 
 # Remove .la files
-rm -f $RPM_BUILD_ROOT/%{_libdir}/%{name}/plugins/%{version}/*.la
+rm -f %{buildroot}%{_libdir}/%{name}/plugins/%{version}/*.la
 
 # Remove .la files in libdir
-rm -f $RPM_BUILD_ROOT/%{_libdir}/*.la
+rm -f %{buildroot}%{_libdir}/*.la
 
 # add wspy_dissectors directory for plugins
-mkdir -p $RPM_BUILD_ROOT/%{_libdir}/%{name}/python/%{version}/wspy_dissectors
+mkdir -p %{buildroot}%{_libdir}/%{name}/python/%{version}/wspy_dissectors
 
 %pre
 getent group wireshark >/dev/null || groupadd -r wireshark
@@ -320,7 +316,7 @@ gtk-update-icon-cache %{_datadir}/icons/gnome &>/dev/null || :
 gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
 
 %files
-%doc AUTHORS COPYING ChangeLog INSTALL NEWS README* 
+%doc AUTHORS COPYING ChangeLog INSTALL NEWS README*
 %{_sbindir}/editcap
 %{_sbindir}/tshark
 %{_sbindir}/mergecap
@@ -375,6 +371,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
 %{_datadir}/aclocal/*
 
 %changelog
+* Mon Sep 09 2013 Peter Lemenkov <lemenkov at gmail.com> - 1.10.1-1
+- Ver. 1.10.1
+- Backported rtpproxy dissector module
+
 * Wed Sep 04 2013 Peter Hatina <phatina at redhat.com> - 1.10.0-11
 - fix missing ws_symbol_export.h
 


More information about the scm-commits mailing list