aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJaap Keuter <jaap.keuter@xs4all.nl>2018-01-23 09:31:22 +0100
committerMichael Mann <mmann78@netscape.net>2018-01-24 03:18:04 +0000
commit59c958d7cb58f003371826ec72f0cd93c3e7a7a6 (patch)
tree26a49ddb0c429558b66243d41ad2d2a384c50820
parentc9a89e29e8c156c1c7edf8c0c1703f072bdc8554 (diff)
cvspserver: Add basic cvs pserver protocol dissector
Change-Id: I049c8b9b9a0a1da2243217532186ba5a19cf5671 Signed-off-by: Jaap Keuter <jaap.keuter@xs4all.nl> Reviewed-on: https://code.wireshark.org/review/25424 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot Reviewed-by: Michael Mann <mmann78@netscape.net>
-rw-r--r--docbook/release-notes.asciidoc1
-rw-r--r--epan/dissectors/CMakeLists.txt1
-rw-r--r--epan/dissectors/Makefile.am1
-rw-r--r--epan/dissectors/packet-cvspserver.c97
4 files changed, 100 insertions, 0 deletions
diff --git a/docbook/release-notes.asciidoc b/docbook/release-notes.asciidoc
index 5ad1818966..1c75928be6 100644
--- a/docbook/release-notes.asciidoc
+++ b/docbook/release-notes.asciidoc
@@ -77,6 +77,7 @@ ActiveMQ Artemis Core Protocol
AMT (Automatic Multicast Tunneling)
Bluetooth Mesh
Broadcom tags (Broadcom Ethernet switch management frames)
+CVS password server
FP Mux
GRPC (gRPC)
IEEE 1905.1a
diff --git a/epan/dissectors/CMakeLists.txt b/epan/dissectors/CMakeLists.txt
index 11e4702b3b..e43e60dab7 100644
--- a/epan/dissectors/CMakeLists.txt
+++ b/epan/dissectors/CMakeLists.txt
@@ -801,6 +801,7 @@ set(DISSECTOR_SRC
${CMAKE_CURRENT_SOURCE_DIR}/packet-csn1.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-ctdb.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-cups.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/packet-cvspserver.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-daap.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-data.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-daytime.c
diff --git a/epan/dissectors/Makefile.am b/epan/dissectors/Makefile.am
index 20d7a21376..8002df4508 100644
--- a/epan/dissectors/Makefile.am
+++ b/epan/dissectors/Makefile.am
@@ -424,6 +424,7 @@ DISSECTOR_SRC = \
packet-csn1.c \
packet-ctdb.c \
packet-cups.c \
+ packet-cvspserver.c \
packet-daap.c \
packet-data.c \
packet-daytime.c \
diff --git a/epan/dissectors/packet-cvspserver.c b/epan/dissectors/packet-cvspserver.c
new file mode 100644
index 0000000000..f44477cede
--- /dev/null
+++ b/epan/dissectors/packet-cvspserver.c
@@ -0,0 +1,97 @@
+/* packet-cvspserver.c
+ * Routines for CVS password server packet dissection
+ * Copyright 2018, Jaap Keuter <jaap.keuter@xs4all.nl>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+
+#define CVSPSERVER_PORT_TCP 2401
+
+void proto_register_cvspserver(void);
+void proto_reg_handoff_cvspserver(void);
+
+static int proto_cvspserver = -1;
+
+static int hf_cvspserver_data = -1;
+
+static gint ett_cvspserver = -1;
+
+static int
+dissect_cvspserver(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* dissector_data _U_)
+{
+ proto_tree* cvspserver_tree;
+ proto_item* ti;
+ gint length;
+ gint next_offset, offset;
+ guint lines = 0;
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "CVSPSERVER");
+ col_clear(pinfo->cinfo, COL_INFO);
+
+ ti = proto_tree_add_item(tree, proto_cvspserver, tvb, 0, -1, ENC_NA);
+ cvspserver_tree = proto_item_add_subtree(ti, ett_cvspserver);
+
+ for (offset = 0; tvb_reported_length_remaining(tvb, offset); offset = next_offset)
+ {
+ length = tvb_find_line_end_unquoted(tvb, offset, -1, &next_offset);
+ proto_tree_add_item(cvspserver_tree, hf_cvspserver_data, tvb, offset, length, ENC_UTF_8|ENC_NA);
+ lines++;
+ }
+
+ col_add_fstr(pinfo->cinfo, COL_INFO, "%s %u",
+ (pinfo->srcport == pinfo->match_uint) ? "Response lines:" : "Request lines :",
+ lines);
+
+ proto_item_append_text(ti, " %s",
+ (pinfo->srcport == pinfo->match_uint) ? "Response" : "Request");
+
+ return tvb_captured_length(tvb);
+}
+
+void
+proto_register_cvspserver(void)
+{
+ static hf_register_info hf[] = {
+ { &hf_cvspserver_data, {
+ "Data", "cvspserver.data", FT_STRING, BASE_NONE,
+ NULL, 0, NULL, HFILL }}
+ };
+
+ static gint *ett[] = {
+ &ett_cvspserver
+ };
+
+ proto_cvspserver = proto_register_protocol("CVS pserver", "cvspserver", "cvspserver");
+ proto_register_field_array(proto_cvspserver, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+}
+
+void
+proto_reg_handoff_cvspserver(void)
+{
+ dissector_handle_t cvspserver_handle;
+
+ cvspserver_handle = create_dissector_handle(dissect_cvspserver, proto_cvspserver);
+ dissector_add_uint_with_preference("tcp.port", CVSPSERVER_PORT_TCP, cvspserver_handle);
+}
+
+/*
+ * 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:
+ */