From 98b316c22d96f22cac01d743994775a271b36303 Mon Sep 17 00:00:00 2001 From: Joel Wetzell Date: Sat, 7 Dec 2024 13:56:56 -0600 Subject: [PATCH] add sdt disconnect and disconnecting data decoding --- packages/acn/src/models.ts | 8 ++++++++ packages/acn/src/pdu/sdt.ts | 11 +++++++++++ 2 files changed, 19 insertions(+) diff --git a/packages/acn/src/models.ts b/packages/acn/src/models.ts index 64432e8..3c2e858 100644 --- a/packages/acn/src/models.ts +++ b/packages/acn/src/models.ts @@ -130,6 +130,12 @@ export type SDTConnectRefuseData = { refuseCode: number; }; +export type SDTDisconnectData = SDTConnectData; +export type SDTDisconnectingData = { + protocolID: number; + reasonCode: number; +}; + export type SDTGetSessionsData = { componentID: string; }; @@ -149,6 +155,8 @@ export type SessionDataTransportPDU = { | SDTConnectData | SDTConnectAcceptData | SDTConnectRefuseData + | SDTDisconnectData + | SDTDisconnectingData | Uint8Array; }; diff --git a/packages/acn/src/pdu/sdt.ts b/packages/acn/src/pdu/sdt.ts index 661c507..6b0c61d 100644 --- a/packages/acn/src/pdu/sdt.ts +++ b/packages/acn/src/pdu/sdt.ts @@ -4,6 +4,8 @@ import { SDTConnectAcceptData, SDTConnectData, SDTConnectRefuseData, + SDTDisconnectData, + SDTDisconnectingData, SDTGetSessionsData, SDTJoinAcceptData, SDTJoinData, @@ -141,6 +143,8 @@ function decodeData( | SDTConnectData | SDTConnectAcceptData | SDTConnectRefuseData + | SDTDisconnectData + | SDTDisconnectingData | Uint8Array { const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength); switch (vector) { @@ -241,6 +245,7 @@ function decodeData( lastMissedSequence: view.getUint32(28), }; } + case SessionDataTransportVectors.DISCONNECT: case SessionDataTransportVectors.CONNECT: case SessionDataTransportVectors.CONNECT_ACCEPT: { return { @@ -253,6 +258,12 @@ function decodeData( refuseCode: view.getUint8(4), }; } + case SessionDataTransportVectors.DISCONNECTING: { + return { + protocolID: view.getUint32(0), + reasonCode: view.getUint8(4), + }; + } default: console.error(`unhandled SDT vector: ${vector}`); return bytes;