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:
parent
641158aed9
commit
9d00eab64c
@ -306,7 +306,7 @@ def gen_connack(resv=0, rc=0):
|
|||||||
|
|
||||||
def gen_publish(topic, qos, payload=None, retain=False, dup=False, mid=0):
|
def gen_publish(topic, qos, payload=None, retain=False, dup=False, mid=0):
|
||||||
rl = 2+len(topic)
|
rl = 2+len(topic)
|
||||||
pack_format = "!BBH"+str(len(topic))+"s"
|
pack_format = "H"+str(len(topic))+"s"
|
||||||
if qos > 0:
|
if qos > 0:
|
||||||
rl = rl + 2
|
rl = rl + 2
|
||||||
pack_format = pack_format + "H"
|
pack_format = pack_format + "H"
|
||||||
@ -317,6 +317,7 @@ def gen_publish(topic, qos, payload=None, retain=False, dup=False, mid=0):
|
|||||||
payload = ""
|
payload = ""
|
||||||
pack_format = pack_format + "0s"
|
pack_format = pack_format + "0s"
|
||||||
|
|
||||||
|
rlpacked = pack_remaining_length(rl)
|
||||||
cmd = 48 | (qos<<1)
|
cmd = 48 | (qos<<1)
|
||||||
if retain:
|
if retain:
|
||||||
cmd = cmd + 1
|
cmd = cmd + 1
|
||||||
@ -324,9 +325,9 @@ def gen_publish(topic, qos, payload=None, retain=False, dup=False, mid=0):
|
|||||||
cmd = cmd + 8
|
cmd = cmd + 8
|
||||||
|
|
||||||
if qos > 0:
|
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:
|
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):
|
def gen_puback(mid):
|
||||||
return struct.pack('!BBH', 64, 2, mid)
|
return struct.pack('!BBH', 64, 2, mid)
|
||||||
|
Loading…
Reference in New Issue
Block a user