From 5811beba391baefad41cd6f8f4fa4e3862098813 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Thu, 16 Apr 2020 13:20:52 +0200 Subject: mqtt: improve the state machine To handle PUBLISH before SUBACK and more. Updated the existing tests and added three new ones. Reported-by: Christoph Krey Bug: https://curl.haxx.se/mail/lib-2020-04/0021.html Closes #5246 --- tests/data/test1195 | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 tests/data/test1195 (limited to 'tests/data/test1195') diff --git a/tests/data/test1195 b/tests/data/test1195 new file mode 100644 index 000000000..0dfaccd53 --- /dev/null +++ b/tests/data/test1195 @@ -0,0 +1,63 @@ + + + +MQTT +MQTT SUBSCRIBE + + + +# +# Server-side + + +hello + + +00 04 31 31 39 30 68 65 6c 6c 6f 5b 4c 46 5d 0a + + +PUBLISH-before-SUBACK TRUE +short-PUBLISH TRUE + + + +# +# Client-side + + +mqtt + + +mqtt + + +MQTT SUBSCRIBE with short PUBLISH + + +mqtt://%HOSTIP:%MQTTPORT/1195 + + + +# +# Verify data after the test has been "shot" + +# These are hexadecimal protocol dumps from the client +# +# Strip out the random part of the client id from the CONNECT message +# before comparison + +s/^(.* 00044d5154540402003c000c6375726c).*/$1/ + + +client CONNECT 18 00044d5154540402003c000c6375726c +server CONNACK 2 20020000 +client SUBSCRIBE 9 000100043131393500 +server PUBLISH c 300c00043131393568656c6c + + +# 18 is CURLE_PARTIAL_FILE + +18 + + + -- cgit v1.2.3