From dbd50978f9b0edfca3698e649b51ae901cc18e41 Mon Sep 17 00:00:00 2001 From: Ilya Bakhtin Date: Mon, 15 Feb 2021 19:04:39 +0100 Subject: [PATCH] tests: add midstream protocol detection test In midstream protocol detection, the protocol must be detected if the server message is split --- tests/mqtt-midstream-split/README.md | 9 ++++ .../mqtt-midstream-split.pcap | Bin 0 -> 36969 bytes tests/mqtt-midstream-split/test.yaml | 42 ++++++++++++++++++ 3 files changed, 51 insertions(+) create mode 100644 tests/mqtt-midstream-split/README.md create mode 100644 tests/mqtt-midstream-split/mqtt-midstream-split.pcap create mode 100644 tests/mqtt-midstream-split/test.yaml diff --git a/tests/mqtt-midstream-split/README.md b/tests/mqtt-midstream-split/README.md new file mode 100644 index 000000000..cf5b973a8 --- /dev/null +++ b/tests/mqtt-midstream-split/README.md @@ -0,0 +1,9 @@ +# Description + +Test protocol detection when flow starts from midstream from 'to client' direction + +# PCAP + +The pcap is a mqtt communication with missing client request. +It starts from the server response and the first message is split between 2 TCP segments. +So probing parser returns 'incomplete' after the first one. diff --git a/tests/mqtt-midstream-split/mqtt-midstream-split.pcap b/tests/mqtt-midstream-split/mqtt-midstream-split.pcap new file mode 100644 index 0000000000000000000000000000000000000000..c10b559bcd34fc90c31086f6ee8c07e5b30aa745 GIT binary patch literal 36969 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