[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