We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 9f49168 commit 52e93aaCopy full SHA for 52e93aa
1 file changed
nmqtt.nim
@@ -423,9 +423,18 @@ proc recv(ctx: MqttCtx): Future[Pkt] {.async.} =
423
424
if len > 0:
425
pkt.data.setlen len
426
- r = await ctx.s.recvInto(pkt.data[0].addr, len)
427
428
- if r != len:
+ var offset = 0
+ while offset < len:
429
+ try:
430
+ r = await ctx.s.recvInto(addr pkt.data[offset], len - offset)
431
+ except:
432
+ break
433
+ if r == 0:
434
435
+ offset += r
436
+
437
+ if offset != len:
438
when not defined(broker):
439
await ctx.close("remote closed connection")
440
return
0 commit comments