summaryrefslogtreecommitdiff
path: root/sappeer.cc
diff options
context:
space:
mode:
authorJavier <dev.git@javispedro.com>2015-12-14 01:52:17 +0100
committerJavier <dev.git@javispedro.com>2015-12-14 01:52:17 +0100
commit702e018ca9e780bb076033ce5d1d370d4eb7319e (patch)
tree2012493213c630d7281718aadd1a6fa9a2c92885 /sappeer.cc
parentce8a092a235c8d59f01631c80786f920eb6a777b (diff)
downloadsapd-702e018ca9e780bb076033ce5d1d370d4eb7319e.tar.gz
sapd-702e018ca9e780bb076033ce5d1d370d4eb7319e.zip
properly handle data frames with sequence numbers
Diffstat (limited to 'sappeer.cc')
-rw-r--r--sappeer.cc18
1 files changed, 11 insertions, 7 deletions
diff --git a/sappeer.cc b/sappeer.cc
index b9f0136..4660522 100644
--- a/sappeer.cc
+++ b/sappeer.cc
@@ -66,8 +66,7 @@ SAPConnection * SAPPeer::createServiceConnection(const QString &profile, const Q
request.sessions.append(session);
- SAPSocket *socket = new SAPSocket(conn, sessionId);
- // TODO set socket QoS parameters
+ SAPSocket *socket = new SAPSocket(conn, sessionId, cInfo);
conn->setSocket(session.channelId, socket);
_sessions.insert(sessionId, socket);
@@ -184,9 +183,8 @@ void SAPPeer::handleConnected()
void SAPPeer::handleDisconnected()
{
- // TODO
+ // TODO Figure out who should actually reconnect
emit disconnected();
- deleteLater();
}
int SAPPeer::findUnusedSessionId() const
@@ -253,12 +251,18 @@ void SAPPeer::handleDefaultSessionMessage(const QByteArray &message)
SAPConnection *conn = new SAPConnection(this, req.profile);
foreach (const SAProtocol::ServiceConnectionRequestSession &s, req.sessions) {
- SAPSocket *socket = new SAPSocket(conn, s.sessionId);
- // TODO set socket QoS parameters
+ SAPChannelInfo cInfo;
+ cInfo.setChannelId(s.channelId);
+ cInfo.setQoSType(static_cast<SAPChannelInfo::QoSType>(s.qosType));
+ cInfo.setQoSDataRate(static_cast<SAPChannelInfo::QoSDataRate>(s.qosDataRate));
+ cInfo.setQoSPriority(static_cast<SAPChannelInfo::QoSPriority>(s.qosPriority));
+ cInfo.setPayloadType(static_cast<SAPChannelInfo::PayloadType>(s.payloadType));
+
+ SAPSocket *socket = new SAPSocket(conn, s.sessionId, cInfo);
conn->setSocket(s.channelId, socket);
qDebug() << " opening channel" << s.channelId << "as session" << s.sessionId;
- qDebug() << " payload=" << s.payloadType << "qos=" << s.qosType << "prio=" << s.qosPriority << "rate=" << s.qosDataRate;
+ qDebug() << " " << cInfo;
_sessions.insert(s.sessionId, socket);
}