diff options
Diffstat (limited to 'sappeer.cc')
-rw-r--r-- | sappeer.cc | 22 |
1 files changed, 13 insertions, 9 deletions
@@ -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); |