summaryrefslogtreecommitdiff
path: root/saprotocol.cc
diff options
context:
space:
mode:
Diffstat (limited to 'saprotocol.cc')
-rw-r--r--saprotocol.cc11
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;