mirror of
https://github.com/eclipse-mosquitto/mosquitto.git
synced 2026-08-17 17:41:58 +08:00
Tests: Fix syntax errors (return in finally)
This commit is contained in:
@@ -69,13 +69,12 @@ def do_test(start_broker):
|
||||
if rc == 0: rc=1
|
||||
if rc:
|
||||
print(mosq_test.broker_log(broker))
|
||||
if rc:
|
||||
exit(rc)
|
||||
else:
|
||||
return rc
|
||||
|
||||
|
||||
def all_tests(start_broker=False):
|
||||
return do_test(start_broker)
|
||||
do_test(start_broker)
|
||||
|
||||
if __name__ == '__main__':
|
||||
all_tests(True)
|
||||
|
||||
@@ -35,11 +35,11 @@ def do_test(start_broker):
|
||||
if rc == 0: rc=1
|
||||
if rc:
|
||||
print(mosq_test.broker_log(broker))
|
||||
else:
|
||||
return rc
|
||||
if rc:
|
||||
exit(rc)
|
||||
|
||||
def all_tests(start_broker=False):
|
||||
return do_test(start_broker)
|
||||
do_test(start_broker)
|
||||
|
||||
if __name__ == '__main__':
|
||||
all_tests(True)
|
||||
|
||||
@@ -132,12 +132,11 @@ def do_test(start_broker):
|
||||
if rc == 0: rc=1
|
||||
if rc:
|
||||
print(mosq_test.broker_log(broker))
|
||||
exit(rc)
|
||||
else:
|
||||
return rc
|
||||
if rc:
|
||||
exit(rc)
|
||||
|
||||
def all_tests(start_broker=False):
|
||||
return do_test(start_broker)
|
||||
do_test(start_broker)
|
||||
|
||||
if __name__ == '__main__':
|
||||
all_tests(True)
|
||||
|
||||
@@ -54,13 +54,12 @@ def do_test(start_broker=True):
|
||||
if rc == 0: rc=1
|
||||
if rc:
|
||||
print(mosq_test.broker_log(broker))
|
||||
exit(rc)
|
||||
else:
|
||||
return rc
|
||||
if rc:
|
||||
exit(rc)
|
||||
|
||||
|
||||
def all_tests(start_broker=False):
|
||||
return do_test(start_broker)
|
||||
do_test(start_broker)
|
||||
|
||||
if __name__ == '__main__':
|
||||
all_tests(True)
|
||||
|
||||
@@ -85,16 +85,12 @@ def do_test(start_broker):
|
||||
if rc == 0: rc=1
|
||||
if rc:
|
||||
print(mosq_test.broker_log(broker))
|
||||
exit(rc)
|
||||
else:
|
||||
return rc
|
||||
if rc:
|
||||
exit(rc)
|
||||
|
||||
|
||||
def all_tests(start_broker=False):
|
||||
rc = do_test(start_broker)
|
||||
if rc:
|
||||
return rc;
|
||||
return 0
|
||||
do_test(start_broker)
|
||||
|
||||
if __name__ == '__main__':
|
||||
all_tests(True)
|
||||
|
||||
@@ -53,13 +53,12 @@ def do_test(start_broker):
|
||||
if rc == 0: rc=1
|
||||
if rc:
|
||||
print(mosq_test.broker_log(broker))
|
||||
exit(rc)
|
||||
else:
|
||||
return rc
|
||||
if rc:
|
||||
exit(rc)
|
||||
|
||||
|
||||
def all_tests(start_broker=False):
|
||||
return do_test(start_broker)
|
||||
do_test(start_broker)
|
||||
|
||||
if __name__ == '__main__':
|
||||
all_tests(True)
|
||||
|
||||
@@ -76,13 +76,12 @@ def do_test(start_broker):
|
||||
if rc == 0: rc=1
|
||||
if rc:
|
||||
print(mosq_test.broker_log(broker))
|
||||
exit(rc)
|
||||
else:
|
||||
return rc
|
||||
if rc:
|
||||
exit(rc)
|
||||
|
||||
|
||||
def all_tests(start_broker=False):
|
||||
return do_test(start_broker)
|
||||
do_test(start_broker)
|
||||
|
||||
if __name__ == '__main__':
|
||||
all_tests(True)
|
||||
|
||||
@@ -103,13 +103,12 @@ def do_test(start_broker, proto_ver):
|
||||
if rc == 0: rc=1
|
||||
if rc:
|
||||
print(mosq_test.broker_log(broker))
|
||||
exit(rc)
|
||||
else:
|
||||
return rc
|
||||
if rc:
|
||||
exit(rc)
|
||||
|
||||
|
||||
def all_tests(start_broker=False):
|
||||
return do_test(start_broker, proto_ver=5)
|
||||
do_test(start_broker, proto_ver=5)
|
||||
|
||||
if __name__ == '__main__':
|
||||
all_tests(True)
|
||||
|
||||
@@ -37,13 +37,12 @@ def do_test(start_broker):
|
||||
if rc == 0: rc=1
|
||||
if rc:
|
||||
print(mosq_test.broker_log(broker))
|
||||
exit(rc)
|
||||
else:
|
||||
return rc
|
||||
if rc:
|
||||
exit(rc)
|
||||
|
||||
|
||||
def all_tests(start_broker=False):
|
||||
return do_test(start_broker)
|
||||
do_test(start_broker)
|
||||
|
||||
if __name__ == '__main__':
|
||||
all_tests(True)
|
||||
|
||||
@@ -54,13 +54,12 @@ def do_test(start_broker):
|
||||
if rc == 0: rc=1
|
||||
if rc:
|
||||
print(mosq_test.broker_log(broker))
|
||||
exit(rc)
|
||||
else:
|
||||
return rc
|
||||
if rc:
|
||||
exit(rc)
|
||||
|
||||
|
||||
def all_tests(start_broker=False):
|
||||
return do_test(start_broker)
|
||||
do_test(start_broker)
|
||||
|
||||
if __name__ == '__main__':
|
||||
all_tests(True)
|
||||
|
||||
@@ -58,13 +58,12 @@ def do_test(start_broker):
|
||||
if rc == 0: rc=1
|
||||
if rc:
|
||||
print(mosq_test.broker_log(broker))
|
||||
exit(rc)
|
||||
else:
|
||||
return rc
|
||||
if rc:
|
||||
exit(rc)
|
||||
|
||||
|
||||
def all_tests(start_broker=False):
|
||||
return do_test(start_broker)
|
||||
do_test(start_broker)
|
||||
|
||||
if __name__ == '__main__':
|
||||
all_tests(True)
|
||||
|
||||
@@ -46,19 +46,13 @@ def do_test(start_broker, proto_ver):
|
||||
if rc:
|
||||
print(mosq_test.broker_log(broker))
|
||||
print("proto_ver=%d" % (proto_ver))
|
||||
exit(rc)
|
||||
else:
|
||||
return rc
|
||||
if rc:
|
||||
exit(rc)
|
||||
|
||||
|
||||
def all_tests(start_broker=False):
|
||||
rc = do_test(start_broker, proto_ver=4)
|
||||
if rc:
|
||||
return rc;
|
||||
rc = do_test(start_broker, proto_ver=5)
|
||||
if rc:
|
||||
return rc;
|
||||
return 0
|
||||
do_test(start_broker, proto_ver=4)
|
||||
do_test(start_broker, proto_ver=5)
|
||||
|
||||
if __name__ == '__main__':
|
||||
all_tests(True)
|
||||
|
||||
@@ -143,19 +143,13 @@ def do_test(start_broker, proto_ver):
|
||||
if rc:
|
||||
print(mosq_test.broker_log(broker))
|
||||
print("proto_ver=%d" % (proto_ver))
|
||||
exit(rc)
|
||||
else:
|
||||
return rc
|
||||
if rc:
|
||||
exit(rc)
|
||||
|
||||
|
||||
def all_tests(start_broker=False):
|
||||
rc = do_test(start_broker, proto_ver=4)
|
||||
if rc:
|
||||
return rc;
|
||||
rc = do_test(start_broker, proto_ver=5)
|
||||
if rc:
|
||||
return rc;
|
||||
return 0
|
||||
do_test(start_broker, proto_ver=4)
|
||||
do_test(start_broker, proto_ver=5)
|
||||
|
||||
if __name__ == '__main__':
|
||||
all_tests(True)
|
||||
|
||||
@@ -107,13 +107,12 @@ def do_test(start_broker):
|
||||
if rc == 0: rc=1
|
||||
if rc:
|
||||
print(mosq_test.broker_log(broker))
|
||||
exit(rc)
|
||||
else:
|
||||
return rc
|
||||
if rc:
|
||||
exit(rc)
|
||||
|
||||
|
||||
def all_tests(start_broker=False):
|
||||
return do_test(start_broker)
|
||||
do_test(start_broker)
|
||||
|
||||
if __name__ == '__main__':
|
||||
all_tests(True)
|
||||
|
||||
@@ -111,13 +111,12 @@ def do_test(start_broker, proto_ver):
|
||||
if rc:
|
||||
print(mosq_test.broker_log(broker))
|
||||
print("proto_ver=%d" % (proto_ver))
|
||||
exit(rc)
|
||||
else:
|
||||
return rc
|
||||
if rc:
|
||||
exit(rc)
|
||||
|
||||
|
||||
def all_tests(start_broker=False):
|
||||
return do_test(start_broker, proto_ver=5)
|
||||
do_test(start_broker, proto_ver=5)
|
||||
|
||||
if __name__ == '__main__':
|
||||
all_tests(True)
|
||||
|
||||
@@ -56,19 +56,14 @@ def do_test(start_broker, proto_ver):
|
||||
if rc:
|
||||
print(mosq_test.broker_log(broker))
|
||||
print("proto_ver=%d" % (proto_ver))
|
||||
exit(rc)
|
||||
else:
|
||||
return rc
|
||||
if rc:
|
||||
exit(rc)
|
||||
|
||||
|
||||
def all_tests(start_broker=False):
|
||||
rc = do_test(start_broker, proto_ver=4)
|
||||
if rc:
|
||||
return rc;
|
||||
rc = do_test(start_broker, proto_ver=5)
|
||||
if rc:
|
||||
return rc;
|
||||
return 0
|
||||
do_test(start_broker, proto_ver=4)
|
||||
do_test(start_broker, proto_ver=5)
|
||||
exit(0)
|
||||
|
||||
if __name__ == '__main__':
|
||||
all_tests(True)
|
||||
|
||||
@@ -39,19 +39,14 @@ def do_test(start_broker, proto_ver):
|
||||
if rc == 0: rc=1
|
||||
if rc:
|
||||
print(mosq_test.broker_log(broker))
|
||||
exit(rc)
|
||||
else:
|
||||
return rc
|
||||
if rc:
|
||||
exit(rc)
|
||||
|
||||
|
||||
def all_tests(start_broker=False):
|
||||
rc = do_test(start_broker, proto_ver=4)
|
||||
if rc:
|
||||
return rc;
|
||||
rc = do_test(start_broker, proto_ver=5)
|
||||
if rc:
|
||||
return rc;
|
||||
return 0
|
||||
do_test(start_broker, proto_ver=4)
|
||||
do_test(start_broker, proto_ver=5)
|
||||
exit(0)
|
||||
|
||||
if __name__ == '__main__':
|
||||
all_tests(True)
|
||||
|
||||
@@ -87,19 +87,14 @@ def do_test(start_broker, proto_ver):
|
||||
if rc:
|
||||
print(mosq_test.broker_log(broker))
|
||||
print("proto_ver=%d" % (proto_ver))
|
||||
exit(rc)
|
||||
else:
|
||||
return rc
|
||||
if rc:
|
||||
exit(rc)
|
||||
|
||||
|
||||
def all_tests(start_broker=False):
|
||||
rc = do_test(start_broker, proto_ver=4)
|
||||
if rc:
|
||||
return rc;
|
||||
rc = do_test(start_broker, proto_ver=5)
|
||||
if rc:
|
||||
return rc;
|
||||
return 0
|
||||
do_test(start_broker, proto_ver=4)
|
||||
do_test(start_broker, proto_ver=5)
|
||||
exit(0)
|
||||
|
||||
if __name__ == '__main__':
|
||||
all_tests(True)
|
||||
|
||||
@@ -76,19 +76,14 @@ def do_test(start_broker, proto_ver):
|
||||
if rc:
|
||||
print(mosq_test.broker_log(broker))
|
||||
print("proto_ver=%d" % (proto_ver))
|
||||
exit(rc)
|
||||
else:
|
||||
return rc
|
||||
if rc:
|
||||
exit(rc)
|
||||
|
||||
|
||||
def all_tests(start_broker=False):
|
||||
rc = do_test(start_broker, proto_ver=4)
|
||||
if rc:
|
||||
return rc;
|
||||
rc = do_test(start_broker, proto_ver=5)
|
||||
if rc:
|
||||
return rc;
|
||||
return 0
|
||||
do_test(start_broker, proto_ver=4)
|
||||
do_test(start_broker, proto_ver=5)
|
||||
exit(0)
|
||||
|
||||
if __name__ == '__main__':
|
||||
all_tests(True)
|
||||
|
||||
@@ -89,19 +89,14 @@ def do_test(start_broker, proto_ver):
|
||||
if rc:
|
||||
print(mosq_test.broker_log(broker))
|
||||
print("proto_ver=%d" % (proto_ver))
|
||||
exit(rc)
|
||||
else:
|
||||
return rc
|
||||
if rc:
|
||||
exit(rc)
|
||||
|
||||
|
||||
def all_tests(start_broker=False):
|
||||
rc = do_test(start_broker, proto_ver=4)
|
||||
if rc:
|
||||
return rc;
|
||||
rc = do_test(start_broker, proto_ver=5)
|
||||
if rc:
|
||||
return rc;
|
||||
return 0
|
||||
do_test(start_broker, proto_ver=4)
|
||||
do_test(start_broker, proto_ver=5)
|
||||
exit(0)
|
||||
|
||||
if __name__ == '__main__':
|
||||
all_tests(True)
|
||||
|
||||
@@ -78,22 +78,14 @@ def do_test(start_broker, proto_ver):
|
||||
if rc:
|
||||
print(mosq_test.broker_log(broker))
|
||||
print("proto_ver=%d" % (proto_ver))
|
||||
exit(rc)
|
||||
else:
|
||||
return rc
|
||||
if rc:
|
||||
exit(rc)
|
||||
|
||||
|
||||
def all_tests(start_broker=False):
|
||||
rc = do_test(start_broker, proto_ver=3)
|
||||
if rc:
|
||||
return rc;
|
||||
rc = do_test(start_broker, proto_ver=4)
|
||||
if rc:
|
||||
return rc;
|
||||
rc = do_test(start_broker, proto_ver=5)
|
||||
if rc:
|
||||
return rc;
|
||||
return 0
|
||||
do_test(start_broker, proto_ver=3)
|
||||
do_test(start_broker, proto_ver=4)
|
||||
do_test(start_broker, proto_ver=5)
|
||||
|
||||
if __name__ == '__main__':
|
||||
all_tests(True)
|
||||
|
||||
@@ -46,13 +46,12 @@ def do_test(start_broker):
|
||||
if rc == 0: rc=1
|
||||
if rc:
|
||||
print(mosq_test.broker_log(broker))
|
||||
exit(rc)
|
||||
else:
|
||||
return rc
|
||||
if rc:
|
||||
exit(rc)
|
||||
|
||||
|
||||
def all_tests(start_broker=False):
|
||||
return do_test(start_broker)
|
||||
do_test(start_broker)
|
||||
|
||||
if __name__ == '__main__':
|
||||
all_tests(True)
|
||||
|
||||
@@ -34,13 +34,12 @@ def do_test(start_broker):
|
||||
if rc == 0: rc=1
|
||||
if rc:
|
||||
print(mosq_test.broker_log(broker))
|
||||
exit(rc)
|
||||
else:
|
||||
return rc
|
||||
if rc:
|
||||
exit(rc)
|
||||
|
||||
|
||||
def all_tests(start_broker=False):
|
||||
return do_test(start_broker)
|
||||
do_test(start_broker)
|
||||
|
||||
if __name__ == '__main__':
|
||||
all_tests(True)
|
||||
|
||||
@@ -39,19 +39,13 @@ def do_test(start_broker, proto_ver):
|
||||
if rc:
|
||||
print(mosq_test.broker_log(broker))
|
||||
print("proto_ver=%d" % (proto_ver))
|
||||
exit(rc)
|
||||
else:
|
||||
return rc
|
||||
if rc:
|
||||
exit(rc)
|
||||
|
||||
|
||||
def all_tests(start_broker=False):
|
||||
rc = do_test(start_broker, proto_ver=4)
|
||||
if rc:
|
||||
return rc;
|
||||
rc = do_test(start_broker, proto_ver=5)
|
||||
if rc:
|
||||
return rc;
|
||||
return 0
|
||||
do_test(start_broker, proto_ver=4)
|
||||
do_test(start_broker, proto_ver=5)
|
||||
|
||||
if __name__ == '__main__':
|
||||
all_tests(True)
|
||||
|
||||
@@ -38,19 +38,13 @@ def do_test(start_broker, proto_ver):
|
||||
if rc:
|
||||
print(mosq_test.broker_log(broker))
|
||||
print("proto_ver=%d" % (proto_ver))
|
||||
exit(rc)
|
||||
else:
|
||||
return rc
|
||||
if rc:
|
||||
exit(rc)
|
||||
|
||||
|
||||
def all_tests(start_broker=False):
|
||||
rc = do_test(start_broker, proto_ver=4)
|
||||
if rc:
|
||||
return rc;
|
||||
rc = do_test(start_broker, proto_ver=5)
|
||||
if rc:
|
||||
return rc;
|
||||
return 0
|
||||
do_test(start_broker, proto_ver=4)
|
||||
do_test(start_broker, proto_ver=5)
|
||||
|
||||
if __name__ == '__main__':
|
||||
all_tests(True)
|
||||
|
||||
@@ -62,19 +62,13 @@ def do_test(start_broker, proto_ver):
|
||||
if rc:
|
||||
print(mosq_test.broker_log(broker))
|
||||
print("proto_ver=%d" % (proto_ver))
|
||||
exit(rc)
|
||||
else:
|
||||
return rc
|
||||
if rc:
|
||||
exit(rc)
|
||||
|
||||
|
||||
def all_tests(start_broker=False):
|
||||
rc = do_test(start_broker, proto_ver=4)
|
||||
if rc:
|
||||
return rc;
|
||||
rc = do_test(start_broker, proto_ver=5)
|
||||
if rc:
|
||||
return rc;
|
||||
return 0
|
||||
do_test(start_broker, proto_ver=4)
|
||||
do_test(start_broker, proto_ver=5)
|
||||
|
||||
if __name__ == '__main__':
|
||||
all_tests(True)
|
||||
|
||||
@@ -41,19 +41,13 @@ def do_test(start_broker, proto_ver):
|
||||
if rc:
|
||||
print(mosq_test.broker_log(broker))
|
||||
print("proto_ver=%d" % (proto_ver))
|
||||
exit(rc)
|
||||
else:
|
||||
return rc
|
||||
if rc:
|
||||
exit(rc)
|
||||
|
||||
|
||||
def all_tests(start_broker=False):
|
||||
rc = do_test(start_broker, proto_ver=4)
|
||||
if rc:
|
||||
return rc;
|
||||
rc = do_test(start_broker, proto_ver=5)
|
||||
if rc:
|
||||
return rc;
|
||||
return 0
|
||||
do_test(start_broker, proto_ver=4)
|
||||
do_test(start_broker, proto_ver=5)
|
||||
|
||||
if __name__ == '__main__':
|
||||
all_tests(True)
|
||||
|
||||
@@ -48,19 +48,13 @@ def do_test(start_broker, proto_ver):
|
||||
if rc:
|
||||
print(mosq_test.broker_log(broker))
|
||||
print("proto_ver=%d" % (proto_ver))
|
||||
exit(rc)
|
||||
else:
|
||||
return rc
|
||||
if rc:
|
||||
exit(rc)
|
||||
|
||||
|
||||
def all_tests(start_broker=False):
|
||||
rc = do_test(start_broker, proto_ver=4)
|
||||
if rc:
|
||||
return rc;
|
||||
rc = do_test(start_broker, proto_ver=5)
|
||||
if rc:
|
||||
return rc;
|
||||
return 0
|
||||
do_test(start_broker, proto_ver=4)
|
||||
do_test(start_broker, proto_ver=5)
|
||||
|
||||
if __name__ == '__main__':
|
||||
all_tests(True)
|
||||
|
||||
@@ -39,19 +39,13 @@ def do_test(start_broker, proto_ver):
|
||||
if rc:
|
||||
print(mosq_test.broker_log(broker))
|
||||
print("proto_ver=%d" % (proto_ver))
|
||||
exit(rc)
|
||||
else:
|
||||
return rc
|
||||
if rc:
|
||||
exit(rc)
|
||||
|
||||
|
||||
def all_tests(start_broker=False):
|
||||
rc = do_test(start_broker, proto_ver=4)
|
||||
if rc:
|
||||
return rc;
|
||||
rc = do_test(start_broker, proto_ver=5)
|
||||
if rc:
|
||||
return rc;
|
||||
return 0
|
||||
do_test(start_broker, proto_ver=4)
|
||||
do_test(start_broker, proto_ver=5)
|
||||
|
||||
if __name__ == '__main__':
|
||||
all_tests(True)
|
||||
|
||||
@@ -47,19 +47,13 @@ def do_test(start_broker, proto_ver):
|
||||
if rc:
|
||||
print(mosq_test.broker_log(broker))
|
||||
print("proto_ver=%d" % (proto_ver))
|
||||
exit(rc)
|
||||
else:
|
||||
return rc
|
||||
if rc:
|
||||
exit(rc)
|
||||
|
||||
|
||||
def all_tests(start_broker=False):
|
||||
rc = do_test(start_broker, proto_ver=4)
|
||||
if rc:
|
||||
return rc;
|
||||
rc = do_test(start_broker, proto_ver=5)
|
||||
if rc:
|
||||
return rc;
|
||||
return 0
|
||||
do_test(start_broker, proto_ver=4)
|
||||
do_test(start_broker, proto_ver=5)
|
||||
|
||||
if __name__ == '__main__':
|
||||
all_tests(True)
|
||||
|
||||
@@ -71,19 +71,13 @@ def do_test(start_broker, proto_ver):
|
||||
if rc:
|
||||
print(mosq_test.broker_log(broker))
|
||||
print("proto_ver=%d" % (proto_ver))
|
||||
exit(rc)
|
||||
else:
|
||||
return rc
|
||||
if rc:
|
||||
exit(rc)
|
||||
|
||||
|
||||
def all_tests(start_broker=False):
|
||||
rc = do_test(start_broker, proto_ver=4)
|
||||
if rc:
|
||||
return rc;
|
||||
rc = do_test(start_broker, proto_ver=5)
|
||||
if rc:
|
||||
return rc;
|
||||
return 0
|
||||
do_test(start_broker, proto_ver=4)
|
||||
do_test(start_broker, proto_ver=5)
|
||||
|
||||
if __name__ == '__main__':
|
||||
all_tests(True)
|
||||
|
||||
@@ -100,13 +100,12 @@ def do_test(start_broker):
|
||||
if rc == 0: rc=1
|
||||
if rc:
|
||||
print(mosq_test.broker_log(broker))
|
||||
exit(rc)
|
||||
else:
|
||||
return rc
|
||||
if rc:
|
||||
exit(rc)
|
||||
|
||||
|
||||
def all_tests(start_broker=False):
|
||||
return do_test(start_broker)
|
||||
do_test(start_broker)
|
||||
|
||||
if __name__ == '__main__':
|
||||
all_tests(True)
|
||||
|
||||
@@ -0,0 +1,304 @@
|
||||
import struct
|
||||
import mqtt5_props
|
||||
|
||||
|
||||
def _gen_command_with_mid(cmd, mid, proto_ver=4, reason_code=-1, properties=None):
|
||||
if proto_ver == 5 and (reason_code != -1 or properties is not None):
|
||||
if reason_code == -1:
|
||||
reason_code = 0
|
||||
|
||||
if properties is None:
|
||||
return struct.pack('!BBHB', cmd, 3, mid, reason_code)
|
||||
elif properties == "":
|
||||
return struct.pack('!BBHBB', cmd, 4, mid, reason_code, 0)
|
||||
else:
|
||||
properties = mqtt5_props.prop_finalise(properties)
|
||||
pack_format = "!BBHB"+str(len(properties))+"s"
|
||||
return struct.pack(pack_format, cmd, 2+1+len(properties), mid, reason_code, properties)
|
||||
else:
|
||||
return struct.pack('!BBH', cmd, 2, mid)
|
||||
|
||||
|
||||
def _gen_short(cmd, reason_code=-1, proto_ver=5, properties=None):
|
||||
if proto_ver == 5 and (reason_code != -1 or properties is not None):
|
||||
if reason_code == -1:
|
||||
reason_code = 0
|
||||
|
||||
if properties is None:
|
||||
return struct.pack('!BBB', cmd, 1, reason_code)
|
||||
elif properties == "":
|
||||
return struct.pack('!BBBB', cmd, 2, reason_code, 0)
|
||||
else:
|
||||
properties = mqtt5_props.prop_finalise(properties)
|
||||
return struct.pack("!BBB", cmd, 1+len(properties), reason_code) + properties
|
||||
else:
|
||||
return struct.pack('!BB', cmd, 0)
|
||||
|
||||
|
||||
def _pack_remaining_length(remaining_length):
|
||||
s = b""
|
||||
while True:
|
||||
byte = remaining_length % 128
|
||||
remaining_length = remaining_length // 128
|
||||
# If there are more digits to encode, set the top bit of this digit
|
||||
if remaining_length > 0:
|
||||
byte = byte | 0x80
|
||||
|
||||
s = s + struct.pack("!B", byte)
|
||||
if remaining_length == 0:
|
||||
return s
|
||||
|
||||
|
||||
def gen_connect(client_id, clean_session=True, keepalive=60, username=None, password=None, will_topic=None, will_qos=0, will_retain=False, will_payload=b"", proto_ver=4, connect_reserved=False, properties=b"", will_properties=b"", session_expiry=-1):
|
||||
if (proto_ver&0x7F) == 3 or proto_ver == 0:
|
||||
remaining_length = 12
|
||||
elif (proto_ver&0x7F) == 4 or proto_ver == 5:
|
||||
remaining_length = 10
|
||||
else:
|
||||
raise ValueError
|
||||
|
||||
if client_id != None:
|
||||
client_id = client_id.encode("utf-8")
|
||||
remaining_length = remaining_length + 2+len(client_id)
|
||||
else:
|
||||
remaining_length = remaining_length + 2
|
||||
|
||||
connect_flags = 0
|
||||
|
||||
if connect_reserved:
|
||||
connect_flags = connect_flags | 0x01
|
||||
|
||||
if clean_session:
|
||||
connect_flags = connect_flags | 0x02
|
||||
|
||||
if proto_ver == 5:
|
||||
if properties == b"":
|
||||
properties += mqtt5_props.gen_uint16_prop(mqtt5_props.RECEIVE_MAXIMUM, 20)
|
||||
|
||||
if session_expiry != -1:
|
||||
properties += mqtt5_props.gen_uint32_prop(mqtt5_props.SESSION_EXPIRY_INTERVAL, session_expiry)
|
||||
|
||||
properties = mqtt5_props.prop_finalise(properties)
|
||||
remaining_length += len(properties)
|
||||
|
||||
if will_topic != None:
|
||||
will_topic = will_topic.encode("utf-8")
|
||||
remaining_length = remaining_length + 2+len(will_topic) + 2+len(will_payload)
|
||||
connect_flags = connect_flags | 0x04 | ((will_qos&0x03) << 3)
|
||||
if will_retain:
|
||||
connect_flags = connect_flags | 32
|
||||
if proto_ver == 5:
|
||||
will_properties = mqtt5_props.prop_finalise(will_properties)
|
||||
remaining_length += len(will_properties)
|
||||
|
||||
if username != None:
|
||||
username = username.encode("utf-8")
|
||||
remaining_length = remaining_length + 2+len(username)
|
||||
connect_flags = connect_flags | 0x80
|
||||
if password != None:
|
||||
password = password.encode("utf-8")
|
||||
connect_flags = connect_flags | 0x40
|
||||
remaining_length = remaining_length + 2+len(password)
|
||||
|
||||
rl = _pack_remaining_length(remaining_length)
|
||||
packet = struct.pack("!B"+str(len(rl))+"s", 0x10, rl)
|
||||
if (proto_ver&0x7F) == 3 or proto_ver == 0:
|
||||
packet = packet + struct.pack("!H6sBBH", len(b"MQIsdp"), b"MQIsdp", proto_ver, connect_flags, keepalive)
|
||||
elif (proto_ver&0x7F) == 4 or proto_ver == 5:
|
||||
packet = packet + struct.pack("!H4sBBH", len(b"MQTT"), b"MQTT", proto_ver, connect_flags, keepalive)
|
||||
|
||||
if proto_ver == 5:
|
||||
packet += properties
|
||||
|
||||
if client_id != None:
|
||||
packet = packet + struct.pack("!H"+str(len(client_id))+"s", len(client_id), bytes(client_id))
|
||||
else:
|
||||
packet = packet + struct.pack("!H", 0)
|
||||
|
||||
if will_topic != None:
|
||||
packet += will_properties
|
||||
packet = packet + struct.pack("!H"+str(len(will_topic))+"s", len(will_topic), will_topic)
|
||||
if len(will_payload) > 0:
|
||||
packet = packet + struct.pack("!H"+str(len(will_payload))+"s", len(will_payload), will_payload)
|
||||
else:
|
||||
packet = packet + struct.pack("!H", 0)
|
||||
|
||||
if username != None:
|
||||
packet = packet + struct.pack("!H"+str(len(username))+"s", len(username), username)
|
||||
if password != None:
|
||||
packet = packet + struct.pack("!H"+str(len(password))+"s", len(password), password)
|
||||
return packet
|
||||
|
||||
|
||||
def gen_connack(flags=0, rc=0, proto_ver=4, properties=b"", property_helper=True):
|
||||
if proto_ver == 5:
|
||||
if property_helper == True:
|
||||
if properties is not None:
|
||||
properties = mqtt5_props.gen_uint16_prop(mqtt5_props.TOPIC_ALIAS_MAXIMUM, 10) \
|
||||
+ properties \
|
||||
+ mqtt5_props.gen_uint32_prop(mqtt5_props.MAXIMUM_PACKET_SIZE, 2000000) \
|
||||
+ mqtt5_props.gen_uint16_prop(mqtt5_props.RECEIVE_MAXIMUM, 20)
|
||||
else:
|
||||
properties = b""
|
||||
properties = mqtt5_props.prop_finalise(properties)
|
||||
|
||||
packet = struct.pack('!BBBB', 0x20, 2+len(properties), flags, rc) + properties
|
||||
else:
|
||||
packet = struct.pack('!BBBB', 0x20, 2, flags, rc);
|
||||
|
||||
return packet
|
||||
|
||||
|
||||
def gen_publish(topic, qos, payload=None, retain=False, dup=False, mid=0, proto_ver=4, properties=b""):
|
||||
topic = topic.encode("utf-8")
|
||||
rl = 2+len(topic)
|
||||
pack_format = "H"+str(len(topic))+"s"
|
||||
if qos > 0:
|
||||
rl = rl + 2
|
||||
pack_format = pack_format + "H"
|
||||
|
||||
if proto_ver == 5:
|
||||
properties = mqtt5_props.prop_finalise(properties)
|
||||
rl += len(properties)
|
||||
# This will break if len(properties) > 127
|
||||
pack_format = pack_format + "%ds"%(len(properties))
|
||||
|
||||
if payload != None:
|
||||
if isinstance(payload, bytes) == False:
|
||||
payload = payload.encode("utf-8")
|
||||
rl = rl + len(payload)
|
||||
pack_format = pack_format + str(len(payload))+"s"
|
||||
else:
|
||||
payload = b""
|
||||
pack_format = pack_format + "0s"
|
||||
|
||||
rlpacked = _pack_remaining_length(rl)
|
||||
cmd = 0x30 | (qos<<1)
|
||||
if retain:
|
||||
cmd = cmd + 1
|
||||
if dup:
|
||||
cmd = cmd + 8
|
||||
|
||||
if proto_ver == 5:
|
||||
if qos > 0:
|
||||
return struct.pack("!B" + str(len(rlpacked))+"s" + pack_format, cmd, rlpacked, len(topic), topic, mid, properties, payload)
|
||||
else:
|
||||
return struct.pack("!B" + str(len(rlpacked))+"s" + pack_format, cmd, rlpacked, len(topic), topic, properties, payload)
|
||||
else:
|
||||
if qos > 0:
|
||||
return struct.pack("!B" + str(len(rlpacked))+"s" + pack_format, cmd, rlpacked, len(topic), topic, mid, payload)
|
||||
else:
|
||||
return struct.pack("!B" + str(len(rlpacked))+"s" + pack_format, cmd, rlpacked, len(topic), topic, payload)
|
||||
|
||||
|
||||
def gen_puback(mid, proto_ver=4, reason_code=-1, properties=None):
|
||||
return _gen_command_with_mid(64, mid, proto_ver, reason_code, properties)
|
||||
|
||||
|
||||
def gen_pubrec(mid, proto_ver=4, reason_code=-1, properties=None):
|
||||
return _gen_command_with_mid(80, mid, proto_ver, reason_code, properties)
|
||||
|
||||
|
||||
def gen_pubrel(mid, dup=False, proto_ver=4, reason_code=-1, properties=None):
|
||||
cmd = 0x60 | 0x02
|
||||
if dup:
|
||||
cmd = cmd | 0x08
|
||||
else:
|
||||
return _gen_command_with_mid(cmd, mid, proto_ver, reason_code, properties)
|
||||
|
||||
|
||||
def gen_pubcomp(mid, proto_ver=4, reason_code=-1, properties=None):
|
||||
return _gen_command_with_mid(112, mid, proto_ver, reason_code, properties)
|
||||
|
||||
|
||||
def gen_subscribe(mid, topic, qos, cmd=0x82, proto_ver=4, properties=b""):
|
||||
topic = topic.encode("utf-8")
|
||||
packet = struct.pack("!B", cmd)
|
||||
if proto_ver == 5:
|
||||
if properties == b"":
|
||||
packet += _pack_remaining_length(2+1+2+len(topic)+1)
|
||||
pack_format = "!HBH"+str(len(topic))+"sB"
|
||||
return packet + struct.pack(pack_format, mid, 0, len(topic), topic, qos)
|
||||
else:
|
||||
properties = mqtt5_props.prop_finalise(properties)
|
||||
packet += _pack_remaining_length(2+1+2+len(topic)+len(properties))
|
||||
pack_format = "!H"+str(len(properties))+"s"+"H"+str(len(topic))+"sB"
|
||||
return packet + struct.pack(pack_format, mid, properties, len(topic), topic, qos)
|
||||
else:
|
||||
packet += _pack_remaining_length(2+2+len(topic)+1)
|
||||
pack_format = "!HH"+str(len(topic))+"sB"
|
||||
return packet + struct.pack(pack_format, mid, len(topic), topic, qos)
|
||||
|
||||
|
||||
def gen_suback(mid, qos, proto_ver=4):
|
||||
if proto_ver == 5:
|
||||
return struct.pack('!BBHBB', 0x90, 2+1+1, mid, 0, qos)
|
||||
else:
|
||||
return struct.pack('!BBHB', 0x90, 2+1, mid, qos)
|
||||
|
||||
|
||||
def gen_unsubscribe(mid, topic, cmd=0xA2, proto_ver=4, properties=b""):
|
||||
topic = topic.encode("utf-8")
|
||||
if proto_ver == 5:
|
||||
if properties == b"":
|
||||
pack_format = "!BBHBH"+str(len(topic))+"s"
|
||||
return struct.pack(pack_format, cmd, 2+2+len(topic)+1, mid, 0, len(topic), topic)
|
||||
else:
|
||||
properties = mqtt5_props.prop_finalise(properties)
|
||||
packet = struct.pack("!B", cmd)
|
||||
l = 2+2+len(topic)+len(properties)
|
||||
packet += _pack_remaining_length(l)
|
||||
pack_format = "!H"+str(len(properties))+"sH"+str(len(topic))+"s"
|
||||
packet += struct.pack(pack_format, mid, properties, len(topic), topic)
|
||||
return packet
|
||||
else:
|
||||
pack_format = "!BBHH"+str(len(topic))+"s"
|
||||
return struct.pack(pack_format, cmd, 2+2+len(topic), mid, len(topic), topic)
|
||||
|
||||
|
||||
def gen_unsubscribe_multiple(mid, topics, proto_ver=4):
|
||||
packet = b""
|
||||
remaining_length = 0
|
||||
for t in topics:
|
||||
t = t.encode("utf-8")
|
||||
remaining_length += 2+len(t)
|
||||
packet += struct.pack("!H"+str(len(t))+"s", len(t), t)
|
||||
|
||||
if proto_ver == 5:
|
||||
remaining_length += 2+1
|
||||
|
||||
return struct.pack("!BBHB", 0xA2, remaining_length, mid, 0) + packet
|
||||
else:
|
||||
remaining_length += 2
|
||||
|
||||
return struct.pack("!BBH", 0xA2, remaining_length, mid) + packet
|
||||
|
||||
|
||||
def gen_unsuback(mid, reason_code=0, proto_ver=4):
|
||||
if proto_ver == 5:
|
||||
if isinstance(reason_code, list):
|
||||
reason_code_count = len(reason_code)
|
||||
p = struct.pack('!BBHB', 0xB0, 3+reason_code_count, mid, 0)
|
||||
for r in reason_code:
|
||||
p += struct.pack('B', r)
|
||||
return p
|
||||
else:
|
||||
return struct.pack('!BBHBB', 0xB0, 4, mid, 0, reason_code)
|
||||
else:
|
||||
return struct.pack('!BBH', 0xB0, 2, mid)
|
||||
|
||||
|
||||
def gen_pingreq():
|
||||
return struct.pack('!BB', 0xC0, 0)
|
||||
|
||||
|
||||
def gen_pingresp():
|
||||
return struct.pack('!BB', 0xD0, 0)
|
||||
|
||||
|
||||
def gen_disconnect(reason_code=-1, proto_ver=4, properties=None):
|
||||
return _gen_short(0xE0, reason_code, proto_ver, properties)
|
||||
|
||||
|
||||
def gen_auth(reason_code=-1, properties=None):
|
||||
return _gen_short(0xF0, reason_code, 5, properties)
|
||||
Reference in New Issue
Block a user