]> git.michaelhowe.org Git - packages/p/paho-mqtt.git/commitdiff
Fix topic matching for $ topics.
authorRoger Light <roger@atchoo.org>
Sun, 16 Mar 2014 23:21:00 +0000 (23:21 +0000)
committerRoger Light <roger@atchoo.org>
Sun, 16 Mar 2014 23:21:00 +0000 (23:21 +0000)
Change-Id: I7a3f73037cc11333316cfd8503aad23ce70e8661

src/paho/mqtt/client.py
test/lib/python/09-util-topic-matching.test
test/lib/python3/09-util-topic-matching.test

index f7a3a8f111c0ef533526744f696b7c4c7ce1272f..c3650f46b8d69a16b9ce74f506855cde725d84ca 100755 (executable)
@@ -197,6 +197,10 @@ def topic_matches_sub(sub, topic):
     slen = len(sub)
     tlen = len(topic)
 
+    if slen > 0 and tlen > 0:
+        if (sub[0] == '$' and topic[0] != '$') or (topic[0] == '$' and sub[0] != '$'):
+            return False
+
     spos = 0
     tpos = 0
 
index 6ce4234f56a34b3254fb5b4b32c7845b08e9974c..ef5c18c99a983cccfcd508a015d6ec532dbdb8ab 100755 (executable)
@@ -23,4 +23,8 @@ do_check("#", "/foo/bar", False)
 do_check("/#", "/foo/bar", False)
 do_check("/#", "foo/bar", True)
 
+do_check("$SYS/bar", "$SYS/bar", False)
+do_check("#", "$SYS/bar", True)
+do_check("$BOB/bar", "$SYS/bar", True)
+
 sys.exit(0)
index a3cc8d9d434d38f02f004851bd3a42db18b225de..2f4424a3ed4ce6cf8d5ec5a6fb5287d9bade486a 100755 (executable)
@@ -23,4 +23,8 @@ do_check("#", "/foo/bar", False)
 do_check("/#", "/foo/bar", False)
 do_check("/#", "foo/bar", True)
 
+do_check("$SYS/bar", "$SYS/bar", False)
+do_check("#", "$SYS/bar", True)
+do_check("$BOB/bar", "$SYS/bar", True)
+
 sys.exit(0)