diff options
author | Javier <dev.git@javispedro.com> | 2015-12-27 05:22:52 +0100 |
---|---|---|
committer | Javier <dev.git@javispedro.com> | 2015-12-27 05:22:52 +0100 |
commit | 52fada92f5e502f77ad19486a98b896fdf667d85 (patch) | |
tree | ed52ee36df9f8360623335f85c64958b5add985b /saprotocol.cc | |
parent | c4da0adbbd4f83bf47b71046f01cd9f12742ec7e (diff) | |
download | sapd-52fada92f5e502f77ad19486a98b896fdf667d85.tar.gz sapd-52fada92f5e502f77ad19486a98b896fdf667d85.zip |
fix fragmentation header parsing
Diffstat (limited to 'saprotocol.cc')
-rw-r--r-- | saprotocol.cc | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/saprotocol.cc b/saprotocol.cc index 00c083f..b27c01e 100644 --- a/saprotocol.cc +++ b/saprotocol.cc @@ -229,14 +229,17 @@ QByteArray SAProtocol::packFrame(quint16 sessionId, const QByteArray &data, Fram return packFrame(frame); } -SAProtocol::DataFrame SAProtocol::unpackDataFrame(const QByteArray &data, bool withSeqNum) +SAProtocol::DataFrame SAProtocol::unpackDataFrame(const QByteArray &data, bool withSeqNum, bool withFragStatus) { DataFrame frame; int offset = 0; frame.withSeqNum = withSeqNum; + frame.withFragStatus = withFragStatus; if (withSeqNum) { frame.seqNum = read<quint16>(data, offset); - frame.unk_1 = read<quint8>(data, offset); + } + if (withFragStatus) { + frame.fragStatus = static_cast<SAProtocol::FragmentStatus>(read<quint8>(data, offset)); } frame.data = data.mid(offset); return frame; @@ -247,7 +250,9 @@ QByteArray SAProtocol::packDataFrame(const DataFrame &frame) QByteArray data; if (frame.withSeqNum) { append<quint16>(data, frame.seqNum); - append<quint8>(data, frame.unk_1); + } + if (frame.withFragStatus) { + append<quint8>(data, frame.fragStatus); } data.append(frame.data); return data; |