From fe30ac29cb0a0a9b19e7bcda5543e98af9adae45 Mon Sep 17 00:00:00 2001 From: "Tristan B. Velloza Kildaire" Date: Thu, 14 Sep 2023 09:25:33 +0200 Subject: [PATCH] CoapPacket - Added `toString()` - `fromBytes(ubyte[])` now decodes the message ID --- source/doap/protocol/packet.d | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/source/doap/protocol/packet.d b/source/doap/protocol/packet.d index 1917841..183d441 100644 --- a/source/doap/protocol/packet.d +++ b/source/doap/protocol/packet.d @@ -3,6 +3,7 @@ module doap.protocol.packet; import doap.protocol.types : MessageType; import doap.protocol.codes : Code; import doap.exceptions : CoapException; +import std.conv : to; /** * Payload marker @@ -163,9 +164,37 @@ public class CoapPacket packet.code = cast(Code)(data[1]); + ubyte* midBase = data[2..4].ptr; + version(LittleEndian) + { + ubyte* pMidBase = cast(ubyte*)&packet.mid; + *(pMidBase) = *(midBase+1); + *(pMidBase+1) = *(midBase); + } + else version(BigEndian) + { + ubyte* pMidBase = cast(ubyte*)&packet.mid; + *(pMidBase) = *(midBase); + *(pMidBase+1) = *(midBase+1); + } + + + + return packet; } + public override string toString() + { + return "CoapPacket [ver: "~to!(string)(ver)~ + ", type: "~to!(string)(type)~ + ", tkl: "~to!(string)(tokenLen)~ + ", code: "~to!(string)(code)~ + ", mid: "~to!(string)(mid)~ + ", token: "~to!(string)(token)~ + "]"; + } + } version(unittest)