Ver. 1.10.1

- Backported rtpproxy dissector module
- Removed outdated, and applied upstream patches

Signed-off-by: Peter Lemenkov <lemenkov@gmail.com>
This commit is contained in:
Peter Lemenkov 2013-09-10 14:16:03 +04:00
parent 24e4abb7b7
commit 1444df1987
19 changed files with 1091 additions and 351 deletions

1
.gitignore vendored
View File

@ -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

View File

@ -1 +1 @@
72e51cd33fd33c7044a41c2ab51ad7af wireshark-1.10.0.tar.bz2
d8915cf7555e2bbb699020a8736631e7 wireshark-1.10.1.tar.bz2

View File

@ -1,5 +1,14 @@
From 31e5f281628f586e7f08b4792c391cf7eb387078 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Radek=20Vok=C3=A1l?= <rvokal@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 eda33ca..008e875 100644
index e6ec4ae..2538c4c 100644
--- a/epan/wslua/template-init.lua
+++ b/epan/wslua/template-init.lua
@@ -43,7 +43,7 @@ if running_superuser then
@ -11,3 +20,6 @@ index eda33ca..008e875 100644
loadfile = function() error("loadfile " .. hint) end
loadlib = function() error("loadlib " .. hint) end
require = function() error("require " .. hint) end
--
1.8.3.1

View File

@ -1,10 +1,18 @@
Customize 'permission denied' error.
From 0a4f4f8cb1b4706b33ab1c0fddbd37ffa21d51f1 Mon Sep 17 00:00:00 2001
From: Jan Safranek <jsafrane@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@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

View File

@ -0,0 +1,28 @@
From cd1f3ac8810a9abda87e71f6d5a3a8e46fcbdde9 Mon Sep 17 00:00:00 2001
From: Jan Safranek <jsafrane@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

View File

@ -0,0 +1,31 @@
From 245cae76f4501ed44d1c9261a502e6ed35f48f2f Mon Sep 17 00:00:00 2001
From: Peter Hatina <phatina@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

View File

@ -1,5 +1,14 @@
From df227f91183e56ef1fe66da5b891a150da8ebe3d Mon Sep 17 00:00:00 2001
From: Peter Hatina <phatina@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 967b8e6..cbb628c 100644
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,
@ -11,3 +20,6 @@ index 967b8e6..cbb628c 100644
guint32 u32MaxStr = sizeof(szStr);
dcerpc_info *info = (dcerpc_info *) pinfo->private_data;
gchar *call;
--
1.8.3.1

View File

@ -0,0 +1,899 @@
From 24b762c8073ef2b823dfe74292f5201582fe5656 Mon Sep 17 00:00:00 2001
From: Evan Huus <eapache@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@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@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

View File

@ -0,0 +1,27 @@
From efa46e067df903458fa299a95a86adc83a065940 Mon Sep 17 00:00:00 2001
From: Evan Huus <eapache@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

View File

@ -1,34 +0,0 @@
diff -up wireshark-1.2.8/gtk/main.c.dialog wireshark-1.2.8/gtk/main.c
--- wireshark-1.2.8/gtk/main.c.dialog 2010-05-05 19:11:51.000000000 +0200
+++ wireshark-1.2.8/gtk/main.c 2010-05-07 11:08:23.995327341 +0200
@@ -1247,11 +1247,12 @@ set_display_filename(capture_file *cf)
GtkWidget *close_dlg = NULL;
-static void
+/*static void
priv_warning_dialog_cb(gpointer dialog, gint btn _U_, gpointer data _U_)
{
recent.privs_warn_if_elevated = !simple_dialog_check_get(dialog);
}
+*/
#ifdef _WIN32
static void
@@ -1795,7 +1796,7 @@ check_and_warn_user_startup(gchar *cf_na
gpointer priv_warning_dialog;
/* Tell the user not to run as root. */
- if (running_with_special_privs() && recent.privs_warn_if_elevated) {
+/* if (running_with_special_privs() && recent.privs_warn_if_elevated) {
cur_user = get_cur_username();
cur_group = get_cur_groupname();
priv_warning_dialog = simple_dialog(ESD_TYPE_WARN, ESD_BTN_OK,
@@ -1806,6 +1807,7 @@ check_and_warn_user_startup(gchar *cf_na
simple_dialog_check_set(priv_warning_dialog, "Don't show this message again.");
simple_dialog_set_cb(priv_warning_dialog, priv_warning_dialog_cb, NULL);
}
+*/
#ifdef _WIN32
/* Warn the user if npf.sys isn't loaded. */

View File

@ -1,17 +0,0 @@
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
diff -up wireshark-1.6.0/epan/wspython/wspy_libws.py.soname wireshark-1.6.0/epan/wspython/wspy_libws.py
--- wireshark-1.6.0/epan/wspython/wspy_libws.py.soname 2011-06-09 14:40:04.562726728 +0200
+++ wireshark-1.6.0/epan/wspython/wspy_libws.py 2011-06-09 14:40:09.775467946 +0200
@@ -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

View File

@ -1,42 +0,0 @@
diff --git a/ui/gtk/flow_graph.c b/ui/gtk/flow_graph.c
index f380e62..dd92027 100644
--- a/ui/gtk/flow_graph.c
+++ b/ui/gtk/flow_graph.c
@@ -460,6 +460,25 @@ flow_graph_on_ok(GtkButton *button _U_,
}
}
+static void
+flow_graph_on_cancel(GtkButton *button _U_,
+ gpointer user_data)
+{
+ if (graph_analysis_data->dlg.window) {
+ window_destroy(graph_analysis_data->dlg.window);
+ }
+ window_destroy(GTK_WIDGET(user_data));
+}
+
+static gboolean
+flow_graph_on_delete(GtkButton *button _U_,
+ gpointer user_data _U_)
+{
+ if (graph_analysis_data->dlg.window) {
+ window_destroy(graph_analysis_data->dlg.window);
+ }
+ return FALSE;
+}
/****************************************************************************/
/* INTERFACE */
@@ -607,9 +626,9 @@ flow_graph_dlg_create(void)
gtk_box_pack_start(GTK_BOX(hbuttonbox), bt_cancel, TRUE, TRUE, 0);
gtk_widget_set_can_default(bt_cancel, TRUE);
gtk_widget_set_tooltip_text (bt_cancel, "Cancel this dialog");
- window_set_cancel_button(flow_graph_dlg_w, bt_cancel, window_cancel_button_cb);
+ g_signal_connect(bt_cancel, "clicked", G_CALLBACK(flow_graph_on_cancel), flow_graph_dlg_w);
- g_signal_connect(flow_graph_dlg_w, "delete_event", G_CALLBACK(window_delete_event_cb), NULL);
+ g_signal_connect(flow_graph_dlg_w, "delete_event", G_CALLBACK(flow_graph_on_delete), NULL);
g_signal_connect(flow_graph_dlg_w, "destroy", G_CALLBACK(flow_graph_on_destroy), NULL);
gtk_widget_show_all(flow_graph_dlg_w);

View File

@ -1,27 +0,0 @@
diff --git a/doc/asn2deb.pod b/doc/asn2deb.pod
index 0baa50e..a1e483a 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 9a43c7f..80ae2b5 100644
--- a/doc/idl2deb.pod
+++ b/doc/idl2deb.pod
@@ -1,3 +1,4 @@
+=encoding utf8
=head1 NAME
diff --git a/doc/wireshark.pod.template b/doc/wireshark.pod.template
index 363d999..09350b4 100644
--- a/doc/wireshark.pod.template
+++ b/doc/wireshark.pod.template
@@ -1,3 +1,4 @@
+=encoding utf8
=head1 NAME

View File

@ -1,15 +0,0 @@
diff --git a/ui/gtk/sctp_byte_graph_dlg.c b/ui/gtk/sctp_byte_graph_dlg.c
index 0749342..4cd74c6 100644
--- a/ui/gtk/sctp_byte_graph_dlg.c
+++ b/ui/gtk/sctp_byte_graph_dlg.c
@@ -1145,9 +1145,8 @@ on_button_release_event (GtkWidget *widget _U_, GdkEventButton *event, gpointer
tmptsn =(tsn_t*)(tsnlist->data);
tfirst = tsn->secs + tsn->usecs/1000000.0;
- while (tsnlist)
+ for (tsnlist = g_list_previous(tsnlist); tsnlist; tsnlist = g_list_previous(tsnlist))
{
- tsnlist = g_list_previous(tsnlist);
tsn = (tsn_t*) (tsnlist->data);
if (tsn->secs+tsn->usecs/1000000.0<x_value)
{

View File

@ -1,13 +0,0 @@
diff --git a/ui/cli/tap-iostat.c b/ui/cli/tap-iostat.c
index 6722c01..dd1c6f1 100644
--- a/ui/cli/tap-iostat.c
+++ b/ui/cli/tap-iostat.c
@@ -927,7 +927,7 @@ iostat_draw(void *arg)
num_rows = (int)(duration/interval) + (((duration%interval+500000)/1000000) > 0 ? 1 : 0);
/* Load item_in_column with the first item in each column */
- item_in_column = (io_stat_item_t **) g_malloc(sizeof(io_stat_item_t) * num_cols);
+ item_in_column = (io_stat_item_t **) g_malloc(sizeof(io_stat_item_t *) * num_cols);
for (j=0; j<num_cols; j++) {
item_in_column[j] = stat_cols[j];
}

View File

@ -1,11 +0,0 @@
diff -up wireshark-1.6.8/ltmain.sh.pie wireshark-1.6.8/ltmain.sh
--- wireshark-1.6.8/ltmain.sh.pie 2012-05-23 10:05:07.900326513 +0200
+++ wireshark-1.6.8/ltmain.sh 2012-05-23 10:05:11.786312666 +0200
@@ -3488,7 +3488,6 @@ static const void *lt_preloaded_setup()
symtab_cflags=
for arg in $LTCFLAGS; do
case $arg in
- -pie | -fpie | -fPIE) ;;
*) func_append symtab_cflags " $arg" ;;
esac
done

View File

@ -1,124 +0,0 @@
diff -up wireshark-1.4.6/epan/dissectors/packet-nfs.c.orig wireshark-1.4.6/epan/dissectors/packet-nfs.c
--- wireshark-1.4.6/epan/dissectors/packet-nfs.c.orig 2011-04-18 14:42:51.000000000 -0400
+++ wireshark-1.4.6/epan/dissectors/packet-nfs.c 2011-05-19 14:22:55.375762000 -0400
@@ -8793,12 +8793,13 @@ dissect_nfs_argop4(tvbuff_t *tvb, int of
ftree = proto_item_add_subtree(fitem, ett_nfs_argop4);
}
+ proto_item_append_text(tree, ", Ops(%d):", ops);
+
for (ops_counter=0; ops_counter<ops; ops_counter++)
{
opcode = tvb_get_ntohl(tvb, offset);
if (check_col(pinfo->cinfo, COL_INFO)) {
- col_append_fstr(pinfo->cinfo, COL_INFO, "%c%s",
- ops_counter==0?' ':';',
+ col_append_fstr(pinfo->cinfo, COL_INFO, " %s",
val_to_str(opcode, names_nfsv4_operation, "Unknown"));
}
@@ -8821,6 +8822,8 @@ dissect_nfs_argop4(tvbuff_t *tvb, int of
} else {
break;
}
+ proto_item_append_text(tree, " %s",
+ val_to_str(opcode, names_nfsv4_operation, "Unknown"));
switch(opcode)
{
@@ -9225,7 +9228,7 @@ dissect_nfs4_compound_call(tvbuff_t *tvb
char *tag=NULL;
offset = dissect_nfs_utf8string(tvb, offset, tree, hf_nfs_tag4, &tag);
- if (check_col(pinfo->cinfo, COL_INFO)) {
+ if (check_col(pinfo->cinfo, COL_INFO) && strcmp(tag, "<EMPTY>")) {
col_append_fstr(pinfo->cinfo, COL_INFO," %s", tag);
}
@@ -9287,6 +9290,7 @@ dissect_nfs_resop4(tvbuff_t *tvb, int of
if (fitem) {
ftree = proto_item_add_subtree(fitem, ett_nfs_resop4);
}
+ proto_item_append_text(tree, ", Ops(%d):", ops);
for (ops_counter = 0; ops_counter < ops; ops_counter++)
{
@@ -9297,11 +9301,6 @@ dissect_nfs_resop4(tvbuff_t *tvb, int of
(opcode != NFS4_OP_ILLEGAL))
break;
- if (check_col(pinfo->cinfo, COL_INFO)) {
- col_append_fstr(pinfo->cinfo, COL_INFO, "%c%s",
- ops_counter==0?' ':';',
- val_to_str(opcode, names_nfsv4_operation, "Unknown"));
- }
fitem = proto_tree_add_uint(ftree, hf_nfs_resop4, tvb, offset, 4,
opcode);
@@ -9319,6 +9318,22 @@ dissect_nfs_resop4(tvbuff_t *tvb, int of
offset = dissect_nfs_nfsstat4(tvb, offset, newftree, &status);
+ if (status != NFS4_OK) {
+ if (check_col(pinfo->cinfo, COL_INFO)) {
+ col_append_fstr(pinfo->cinfo, COL_INFO, " %s(%d)",
+ val_to_str(opcode, names_nfsv4_operation, "Unknown"),
+ status);
+ }
+ proto_item_append_text(tree, " %s(%d)",
+ val_to_str(opcode, names_nfsv4_operation, "Unknown"), status);
+ } else {
+ if (check_col(pinfo->cinfo, COL_INFO)) {
+ col_append_fstr(pinfo->cinfo, COL_INFO, " %s",
+ val_to_str(opcode, names_nfsv4_operation, "Unknown"));
+ }
+ proto_item_append_text(tree, " %s",
+ val_to_str(opcode, names_nfsv4_operation, "Unknown"));
+ }
/*
* With the exception of NFS4_OP_LOCK, NFS4_OP_LOCKT, and
* NFS4_OP_SETATTR, all other ops do *not* return data with the
@@ -9569,7 +9584,7 @@ dissect_nfs4_compound_reply(tvbuff_t *tv
offset = dissect_nfs_nfsstat4(tvb, offset, tree, &status);
offset = dissect_nfs_utf8string(tvb, offset, tree, hf_nfs_tag4, &tag);
- if (check_col(pinfo->cinfo, COL_INFO)) {
+ if (check_col(pinfo->cinfo, COL_INFO) && strcmp(tag, "<EMPTY>")) {
col_append_fstr(pinfo->cinfo, COL_INFO," %s", tag);
}
@@ -9663,14 +9678,14 @@ static const value_string nfsv3_proc_val
static const vsff nfs4_proc[] = {
{ 0, "NULL",
dissect_nfs3_null_call, dissect_nfs3_null_reply },
- { 1, "COMPOUND",
+ { 1, "COMP",
dissect_nfs4_compound_call, dissect_nfs4_compound_reply },
{ 0, NULL, NULL, NULL }
};
static const value_string nfsv4_proc_vals[] = {
{ 0, "NULL" },
- { 1, "COMPOUND" },
+ { 1, "COMP" },
{ 0, NULL }
};
@@ -9944,7 +9959,7 @@ dissect_nfs_cb_argop(tvbuff_t *tvb, int
{
opcode = tvb_get_ntohl(tvb, offset);
if (check_col(pinfo->cinfo, COL_INFO))
- col_append_fstr(pinfo->cinfo, COL_INFO, "%c%s", ops_counter==0?' ':';',
+ col_append_fstr(pinfo->cinfo, COL_INFO, " %s",
val_to_str(opcode, names_nfs_cb_operation, "Unknown"));
fitem = proto_tree_add_uint(ftree, hf_nfs_cb_argop, tvb, offset, 4, opcode);
@@ -10047,7 +10062,7 @@ dissect_nfs_cb_resop(tvbuff_t *tvb, int
break;
if (check_col(pinfo->cinfo, COL_INFO))
- col_append_fstr(pinfo->cinfo, COL_INFO, "%c%s", ops_counter==0?' ':';',
+ col_append_fstr(pinfo->cinfo, COL_INFO, " %s",
val_to_str(opcode, names_nfs_cb_operation, "Unknown"));
fitem = proto_tree_add_uint(ftree, hf_nfs_cb_resop, tvb, offset, 4, opcode);

View File

@ -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@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@gmail.com> - 1.10.1-1
- Ver. 1.10.1
- Backported rtpproxy dissector module
* Wed Sep 04 2013 Peter Hatina <phatina@redhat.com> - 1.10.0-11
- fix missing ws_symbol_export.h

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB