diff options
author | Jaap Keuter <jaap.keuter@xs4all.nl> | 2018-01-23 09:31:22 +0100 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2018-01-24 03:18:04 +0000 |
commit | 59c958d7cb58f003371826ec72f0cd93c3e7a7a6 (patch) | |
tree | 26a49ddb0c429558b66243d41ad2d2a384c50820 | |
parent | c9a89e29e8c156c1c7edf8c0c1703f072bdc8554 (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.asciidoc | 1 | ||||
-rw-r--r-- | epan/dissectors/CMakeLists.txt | 1 | ||||
-rw-r--r-- | epan/dissectors/Makefile.am | 1 | ||||
-rw-r--r-- | epan/dissectors/packet-cvspserver.c | 97 |
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: + */ |