tests: support generating longer publish packets

Remaining length for publish packets wasn't being handled completely.

Signed-off-by: Karl Palsson <karlp@etactica.com>
This commit is contained in:
Karl Palsson 2016-06-23 17:33:19 +00:00
parent 641158aed9
commit 9d00eab64c

View File

@ -306,7 +306,7 @@ def gen_connack(resv=0, rc=0):
def gen_publish(topic, qos, payload=None, retain=False, dup=False, mid=0):
rl = 2+len(topic)
pack_format = "!BBH"+str(len(topic))+"s"
pack_format = "H"+str(len(topic))+"s"
if qos > 0:
rl = rl + 2
pack_format = pack_format + "H"
@ -317,6 +317,7 @@ def gen_publish(topic, qos, payload=None, retain=False, dup=False, mid=0):
payload = ""
pack_format = pack_format + "0s"
rlpacked = pack_remaining_length(rl)
cmd = 48 | (qos<<1)
if retain:
cmd = cmd + 1
@ -324,9 +325,9 @@ def gen_publish(topic, qos, payload=None, retain=False, dup=False, mid=0):
cmd = cmd + 8
if qos > 0:
return struct.pack(pack_format, cmd, rl, len(topic), topic, mid, payload)
return struct.pack("!B" + str(len(rlpacked))+"s" + pack_format, cmd, rlpacked, len(topic), topic, mid, payload)
else:
return struct.pack(pack_format, cmd, rl, len(topic), topic, payload)
return struct.pack("!B" + str(len(rlpacked))+"s" + pack_format, cmd, rlpacked, len(topic), topic, payload)
def gen_puback(mid):
return struct.pack('!BBH', 64, 2, mid)