summaryrefslogtreecommitdiff
path: root/sappeer.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sappeer.cc')
-rw-r--r--sappeer.cc22
1 files changed, 13 insertions, 9 deletions
diff --git a/sappeer.cc b/sappeer.cc
index 960e515..7f570eb 100644
--- a/sappeer.cc
+++ b/sappeer.cc
@@ -132,7 +132,6 @@ CapabilityPeer *SAPPeer::capabilityPeer()
void SAPPeer::writeDataToSession(int session, const QByteArray &data)
{
- qDebug() << "frame size" << data.size();
sendFrame(SAProtocol::packFrame(session, data, SAProtocol::FrameData));
}
@@ -141,14 +140,6 @@ void SAPPeer::writeControlToSession(int session, const QByteArray &data)
sendFrame(SAProtocol::packFrame(session, data, SAProtocol::FrameControl));
}
-void SAPPeer::writeAckToSession(int session, int seqNum)
-{
- SAProtocol::ControlFrame frame;
- frame.type = SAProtocol::ControlFrameBlockAck;
- frame.seqNum = seqNum;
- writeControlToSession(session, SAProtocol::packControlFrame(frame));
-}
-
void SAPPeer::acceptServiceConnection(SAPConnectionRequest *connReq, int statusCode)
{
SAPConnection *conn = connReq->connection();
@@ -206,6 +197,17 @@ void SAPPeer::handleSessionData(int session, const QByteArray &data)
}
}
+void SAPPeer::handleSessionControl(int session, const QByteArray &data)
+{
+ // Default session ID should not receive control messages, so we don't check for it
+ SAPSocket *socket = _sessions.value(session, 0);
+ if (socket && socket->isOpen()) {
+ socket->acceptIncomingControl(data);
+ } else {
+ qWarning() << "Got information for a session that's not yet open!" << session;
+ }
+}
+
void SAPPeer::handleConnected()
{
emit connected();
@@ -301,6 +303,8 @@ void SAPPeer::handleDefaultSessionMessage(const QByteArray &message)
_sessions.insert(s.sessionId, socket);
}
+ _conns.insert(req.profile, conn);
+
SAPConnectionRequest *connReq = new SAPConnectionRequest(conn, req.initiatorId, req.acceptorId);
agent->requestConnection(connReq);