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:
parent
24e4abb7b7
commit
1444df1987
1
.gitignore
vendored
1
.gitignore
vendored
@ -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
|
||||
|
2
sources
2
sources
@ -1 +1 @@
|
||||
72e51cd33fd33c7044a41c2ab51ad7af wireshark-1.10.0.tar.bz2
|
||||
d8915cf7555e2bbb699020a8736631e7 wireshark-1.10.1.tar.bz2
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
31
wireshark-0004-fix-documentation-build-error.patch
Normal file
31
wireshark-0004-fix-documentation-build-error.patch
Normal 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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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. */
|
@ -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
|
@ -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);
|
@ -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
|
||||
|
@ -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)
|
||||
{
|
@ -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];
|
||||
}
|
@ -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
|
@ -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);
|
110
wireshark.spec
110
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@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 |
Loading…
Reference in New Issue
Block a user